diff options
Diffstat (limited to 'common/quicktime_win32/PMCore.h')
| -rw-r--r-- | common/quicktime_win32/PMCore.h | 1755 |
1 files changed, 1755 insertions, 0 deletions
diff --git a/common/quicktime_win32/PMCore.h b/common/quicktime_win32/PMCore.h new file mode 100644 index 0000000..8327b2d --- /dev/null +++ b/common/quicktime_win32/PMCore.h @@ -0,0 +1,1755 @@ +/* + File: PMCore.h + + Contains: Carbon Printing Manager Interfaces. + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1998-2001 by Apple Computer, Inc., all rights reserved + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef __PMCORE__ +#define __PMCORE__ + +#ifndef __MACERRORS__ +#include <MacErrors.h> +#endif + +#ifndef __FILES__ +#include <Files.h> +#endif + +#ifndef __CFSTRING__ +#include <CFString.h> +#endif + +#ifndef __CFURL__ +#include <CFURL.h> +#endif + +#ifndef __QUICKDRAW__ +#include <Quickdraw.h> +#endif + +#ifndef __CMAPPLICATION__ +#include <CMApplication.h> +#endif + +#ifndef __PMDEFINITIONS__ +#include <PMDefinitions.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#ifndef PM_USE_SESSION_APIS +#define PM_USE_SESSION_APIS 1 +#endif /* !defined(PM_USE_SESSION_APIS) */ + +/* Callbacks */ +typedef CALLBACK_API( void , PMIdleProcPtr )(void); +typedef STACK_UPP_TYPE(PMIdleProcPtr) PMIdleUPP; +/* + * NewPMIdleUPP() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( PMIdleUPP ) +NewPMIdleUPP(PMIdleProcPtr userRoutine); + +/* + * DisposePMIdleUPP() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +DisposePMIdleUPP(PMIdleUPP userUPP); + +/* + * InvokePMIdleUPP() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +InvokePMIdleUPP(PMIdleUPP userUPP); + +#if PM_USE_SESSION_APIS +/* + * PMSessionCreatePrinterList() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.4 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PMSessionCreatePrinterList( + PMPrintSession printSession, + CFArrayRef * printerList, + CFIndex * currentIndex, + PMPrinter * currentPrinter); + + +/* + * PMSessionSetCurrentPrinter() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.4 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PMSessionSetCurrentPrinter( + PMPrintSession session, + CFStringRef printerName); + + +/* + * PMSessionSetDestination() + * + * Summary: + * Alter a print session and print settings so that an associated + * print job is sent to the provided destination type in the, + * optional, MIME document format. + * + * Discussion: + * This function is most useful when an application would like to + * write its print output to disk without requiring user + * interaction. The list of MIME types that can be sent to the + * provided destination can be obtained from + * PMSessionCopyOutputFormatList and one of these passed to this + * function. + * + * Parameters: + * + * printSession: + * The session to be used for a print job. The session holds the + * preview setting which can override the destination type in the + * print settings. + * + * printSettings: + * The print settings to be used for a print job. The print + * settings specify whether a job will be directed toward a + * printer or to file. It also holds the requested MIME output + * type. + * + * destType: + * The destiation type for a print job associated with the + * provided print session and print settings. Fax is currently not + * supported, but kPMDestinationPrinter, kPMDestinationFile, and + * kPMDestinationPreview can be set. + * + * destFormat: + * The MIME type to be generated for the provided destination + * type. This parameter can be NULL in which the default format + * for the requested destination type is used. To obtain a list of + * valid formats for a given destiation type, use the function + * PMSessionCopyOutputFormatList. + * + * destLocation: + * Some destination types support a destination location. The + * clearest example is the kPMDestinationFile destination type + * which allows a caller to also supply a file URL specifying + * where the output file is to be created. + * + * SPECIAL_AVAILABILITY_NOTE: + * This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.1 and later. On Mac OS X it is available to + * CFM applications through CarbonLib starting with Mac OS X + * version 10.2 and later. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.5 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PMSessionSetDestination( + PMPrintSession printSession, + PMPrintSettings printSettings, + PMDestinationType destType, + CFStringRef destFormat, + CFURLRef destLocation); + + +/* + * PMSessionGetDestinationType() + * + * Summary: + * Hand back the destination type that will be used for a print job + * with the specified print settings and print session. + * + * Discussion: + * Currently there are four destination types: + * kPMDestinationPrinter, kPMDestinationFile, kPMDestinationFax and + * kPMDestinationPreview. The first three destination types are + * stored in the print settings. The switch for preview is stored in + * the print session and, if enabled, overrides the destination in + * the print setting. This function is preferred over + * PMGetDestination as the latter does not take a print session + * parameter and therefore can not indicate whether preview has been + * selected as the destination. + * + * Parameters: + * + * printSession: + * The session to be used for a print job. The session holds the + * preview setting which can override the destination type in the + * print settings. + * + * printSettings: + * The print settings to be used for a print job. The print + * settings specify whether a job will be directed toward a + * printer or to file. + * + * destTypeP: + * A pointer to a caller supplied PMDestinationType variable. If + * this function succeeds then *'destTypeP' will be filled in with + * the destination type for a print job that used the specified + * session and print settings. If this function fails, then + * *'destType' will be set to kPMDestinationInvalid. + * + * SPECIAL_AVAILABILITY_NOTE: + * This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.1 and later. On Mac OS X it is available to + * CFM applications through CarbonLib starting with Mac OS X + * version 10.2 and later. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.5 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PMSessionGetDestinationType( + PMPrintSession printSession, + PMPrintSettings printSettings, + PMDestinationType * destTypeP); + + +/* + * PMSessionCopyDestinationFormat() + * + * Summary: + * Hand back the destination output MIME type associated with the + * provided print session and print settings. + * + * Parameters: + * + * printSession: + * A currently open print session. + * + * printSettings: + * The print settings that are to be searched. + * + * destFormatP: + * A pointer to a caller allocated CFStringRef variable. If this + * routine returns noErr then *'destFormatP' will either be a copy + * of a CFStringRef specifying the output format for the print + * job, or NULL indicating that the default output format will be + * used. If this function return an error, then *'destFormatP' + * will be set to NULL. + * + * SPECIAL_AVAILABILITY_NOTE: + * This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.1 and later. On Mac OS X it is available to + * CFM applications through CarbonLib starting with Mac OS X + * version 10.2 and later. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.5 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PMSessionCopyDestinationFormat( + PMPrintSession printSession, + PMPrintSettings printSettings, + CFStringRef * destFormatP); + + +/* + * PMSessionCopyDestinationLocation() + * + * Summary: + * Hand back the URL destination location given a print session and + * print settings. + * + * Discussion: + * Some destination type support a destination location which + * further defines where the output from a pritn job should be sent. + * The kPMDestinationFile destiation type, for example, will use a + * file URL to determine where a new file should be created. + * + * Parameters: + * + * printSession: + * A currently open print session. + * + * printSettings: + * The print settings that are to be searched. + * + * destLocationP: + * A pointer to a caller allocated CFURLRef variable. If this + * routine returns noErr then *'outputFileP' will either be NULL + * indicating that the job is using the default destination + * location for the current destination type or a copy of a + * CFURLRef will be placed in *'destLocationP'. If this function + * returns an error then 'destLocationP' will be set to NULL. + * + * SPECIAL_AVAILABILITY_NOTE: + * This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.1 and later. On Mac OS X it is available to + * CFM applications through CarbonLib starting with Mac OS X + * version 10.2 and later. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.5 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PMSessionCopyDestinationLocation( + PMPrintSession printSession, + PMPrintSettings printSettings, + CFURLRef * destLocationP); + + +/* + * PMSessionCopyOutputFormatList() + * + * Summary: + * Hands back an an array of MIME types describing the possible + * output formats for the printer module associated with the current + * printer. + * + * Parameters: + * + * printSession: + * This session's current printer's printer module will be queried + * for its supported output MIME types. + * + * destType: + * A print job can have one of several possible destination types. + * The list of valid output formats is dependent upon the + * destination type. This parameter specifies destination type of + * interest when retrieving the output formats list. + * + * documentFormatP: + * A pointer to a caller's CFArrayRef variable. If this routine + * completes successfully, then *'documentFormatP' will be set to + * a CFArrayRef containing CFStringRefs. Each CFStringRef in the + * array is a MIME type specifying a type of output that can be + * generated by the printer module associated with the current + * printer. + * + * SPECIAL_AVAILABILITY_NOTE: + * This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.1 and later. On Mac OS X it is available to + * CFM applications through CarbonLib starting with Mac OS X + * version 10.2 and later. On Mac OS 8/9 using CarbonLib, this + * routine returns kPMNotImplemented + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.6 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PMSessionCopyOutputFormatList( + PMPrintSession printSession, + PMDestinationType destType, + CFArrayRef * documentFormatP); + + + +/* + * PMSessionCreatePageFormatList() + * + * Summary: + * Hand back a list of page format instances. Each page format + * instance describes a paper size available on the specified + * printer. + * + * Parameters: + * + * printSession: + * A currently open print session. + * + * printer: + * The printer whose page size list should be enumerated. To get + * the session's current printer, see PMSessionGetCurrentPrinter(). + * + * pageFormatList: + * If this function is successful then noErr will be returned and + * *'pageFormatList' will be set to a newly created CFArray. Each + * element in the array will be a PMPageFormat describing an + * available paper size for the specified printer. If this + * function fails then a non-zero error code will be returned and + * *'pageFormatList' will be set to NULL. + * + * SPECIAL_AVAILABILITY_NOTE: + * This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.1 and later. On Mac OS X it is available to + * CFM applications through CarbonLib starting with Mac OS X + * version 10.2 and later. On Mac OS 8/9 using CarbonLib, this + * routine returns kPMNotImplemented + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.6 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PMSessionCreatePageFormatList( + PMPrintSession printSession, + PMPrinter printer, + CFArrayRef * pageFormatList); + + +/* + * SPECIAL AVAILABILITY note: This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.0 and later. On Mac OS X it is available to CFM applications through CarbonLib + * starting with Mac OS X version 10.2 and later. + * + * On Mac OS 8/9 using CarbonLib, this routine returns kPMNotImplemented + */ +/* + * PMSessionBeginDocumentNoDialog() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.6 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSessionBeginDocumentNoDialog( + PMPrintSession printSession, + PMPrintSettings printSettings, + PMPageFormat pageFormat); + + +/* + * SPECIAL AVAILABILITY note: This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.0 and later. On Mac OS X it is available to CFM applications through CarbonLib + * starting with Mac OS X version 10.2 and later. + * + * On Mac OS 8/9 using CarbonLib, this routine returns kPMNotImplemented + */ +/* + * PMSessionEndDocumentNoDialog() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.6 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSessionEndDocumentNoDialog(PMPrintSession printSession); + + +/* + * SPECIAL AVAILABILITY note: This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.0 and later. On Mac OS X it is available to CFM applications through CarbonLib + * starting with Mac OS X version 10.2 and later. + * + * On Mac OS 8/9 using CarbonLib, this routine returns kPMNotImplemented + */ +/* + * PMSessionBeginPageNoDialog() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.6 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSessionBeginPageNoDialog( + PMPrintSession printSession, + PMPageFormat pageFormat, + const PMRect * pageFrame); + + +/* + * SPECIAL AVAILABILITY note: This routine is available in ApplicationsServices.framework in + * Mac OS X version 10.0 and later. On Mac OS X it is available to CFM applications through CarbonLib + * starting with Mac OS X version 10.2 and later. + * + * On Mac OS 8/9 using CarbonLib, this routine returns kPMNotImplemented + */ +/* + * PMSessionEndPageNoDialog() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.6 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSessionEndPageNoDialog(PMPrintSession printSession); + + +#else +/* + * PMSetIdleProc() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetIdleProc(PMIdleUPP idleProc); + + +/* Print loop */ +/* + * PMBegin() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMBegin(void); + + +/* + * PMEnd() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMEnd(void); + + +/************************/ +/* Valid only within a PMBeginPage/PMEndPage block. You should retrieve the printing */ +/* port with this call and set it before imaging a page. */ +/************************/ +/* + * PMGetGrafPtr() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetGrafPtr( + PMPrintContext printContext, + GrafPtr * grafPort); + + +/* PMPageFormat */ +/* + * PMNewPageFormat() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMNewPageFormat(PMPageFormat * pageFormat); + + +/* + * PMDisposePageFormat() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMDisposePageFormat(PMPageFormat pageFormat); + + +/* + * PMDefaultPageFormat() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMDefaultPageFormat(PMPageFormat pageFormat); + + +/* + * PMValidatePageFormat() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMValidatePageFormat( + PMPageFormat pageFormat, + Boolean * result); + + +/* PMPrintSettings */ +/* + * PMNewPrintSettings() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMNewPrintSettings(PMPrintSettings * printSettings); + + +/* + * PMDisposePrintSettings() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMDisposePrintSettings(PMPrintSettings printSettings); + + +/* + * PMDefaultPrintSettings() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMDefaultPrintSettings(PMPrintSettings printSettings); + + +/* + * PMValidatePrintSettings() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMValidatePrintSettings( + PMPrintSettings printSettings, + Boolean * result); + + +/* Classic Support */ +/* + * PMGeneral() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGeneral(Ptr pData); + + +/* + * PMConvertOldPrintRecord() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMConvertOldPrintRecord( + Handle printRecordHandle, + PMPrintSettings * printSettings, + PMPageFormat * pageFormat); + + +/* + * PMMakeOldPrintRecord() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMMakeOldPrintRecord( + PMPrintSettings printSettings, + PMPageFormat pageFormat, + Handle * printRecordHandle); + + +/* Driver Information */ +/* + * PMIsPostScriptDriver() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMIsPostScriptDriver(Boolean * isPostScript); + + +/* + * PMGetLanguageInfo() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetLanguageInfo(PMLanguageInfo * info); + + +/* + * PMGetDriverCreator() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetDriverCreator(OSType * creator); + + +/* + * PMGetDriverReleaseInfo() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetDriverReleaseInfo(VersRec * release); + + +/* + * PMGetPrinterResolutionCount() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetPrinterResolutionCount(UInt32 * count); + + +/* + * PMGetPrinterResolution() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetPrinterResolution( + PMTag tag, + PMResolution * res); + + +/* + * PMGetIndexedPrinterResolution() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetIndexedPrinterResolution( + UInt32 index, + PMResolution * res); + + +/************************/ +/* PMEnableColorSync and PMDisableColorSync are valid within */ +/* BeginPage/EndPage block */ +/************************/ +/* ColorSync & PostScript Support */ +/* + * PMEnableColorSync() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMEnableColorSync(void); + + +/* + * PMDisableColorSync() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMDisableColorSync(void); + + +/************************/ +/* The PMPostScriptxxx calls are valid within a */ +/* BeginPage/EndPage block */ +/************************/ +/* + * PMPostScriptBegin() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMPostScriptBegin(void); + + +/* + * PMPostScriptEnd() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMPostScriptEnd(void); + + +/************************/ +/* These PMPostScriptxxx calls are valid within a */ +/* PMPostScriptBegin/PMPostScriptEnd block */ +/************************/ +/* + * PMPostScriptHandle() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMPostScriptHandle(Handle psHandle); + + +/* + * PMPostScriptData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMPostScriptData( + Ptr psPtr, + Size len); + + +/* + * PMPostScriptFile() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMPostScriptFile(FSSpec * psFile); + + +/* Error */ +/* + * PMError() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMError(void); + + +/* + * PMSetError() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetError(OSStatus printError); + + +#endif /* PM_USE_SESSION_APIS */ + +/* PMPageFormat */ +/* + * PMCopyPageFormat() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMCopyPageFormat( + PMPageFormat formatSrc, + PMPageFormat formatDest); + + +/************************/ +/* Flattening a page format should only be necessary if you intend to preserve */ +/* the object settings along with a document. A page format will persist outside of a */ +/* PMBegin/PMEnd block. This will allow you to use any accessors on the object without */ +/* the need to flatten and unflatten. Keep in mind accessors make no assumption */ +/* on the validity of the value you set. This can only be done thru PMValidatePageFormat */ +/* in a PMBegin/PMEnd block or with PMSessionValidatePageFormat with a valid session. */ +/* It is your responsibility for disposing of the handle. */ +/************************/ +/* + * PMFlattenPageFormat() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMFlattenPageFormat( + PMPageFormat pageFormat, + Handle * flatFormat); + + +/* + * PMUnflattenPageFormat() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMUnflattenPageFormat( + Handle flatFormat, + PMPageFormat * pageFormat); + + +/* PMPageFormat Accessors */ +/************************/ +/* PMSetxxx calls only saves the value inside the printing object. They make no assumption on the */ +/* validity of the value. This should be done using PMValidatePageFormat/PMSessionValidatePageFormat */ +/* Any dependant settings are also updated during a validate call. */ +/* For example: */ +/* PMGetAdjustedPaperRect - returns a rect of a certain size */ +/* PMSetScale( aPageFormat, 500.0 ) */ +/* PMGetAdjustedPaperRect - returns the SAME rect as the first call */ +/**/ +/* PMGetAdjustedPaperRect - returns a rect of a certain size */ +/* PMSetScale( aPageFormat, 500.0 ) */ +/* PMValidatePageFormat or PMSessionValidatePageFormat */ +/* PMGetAdjustedPaperRect - returns a rect thats scaled 500% from the first call */ +/************************/ +/* + * PMGetPageFormatExtendedData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetPageFormatExtendedData( + PMPageFormat pageFormat, + OSType dataID, + UInt32 * size, + void * extendedData); + + +/* + * PMSetPageFormatExtendedData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetPageFormatExtendedData( + PMPageFormat pageFormat, + OSType dataID, + UInt32 size, + void * extendedData); + + +/************************/ +/* A value of 100.0 means 100% (no scaling). 50.0 means 50% scaling */ +/************************/ +/* + * PMGetScale() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetScale( + PMPageFormat pageFormat, + double * scale); + + +/* + * PMSetScale() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetScale( + PMPageFormat pageFormat, + double scale); + + +/************************/ +/* This is the drawing resolution of an app. This should not be confused with */ +/* the resolution of the printer. You can call PMGetPrinterResolution to see */ +/* what resolutions are avaliable for the current printer. */ +/************************/ +/* + * PMGetResolution() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetResolution( + PMPageFormat pageFormat, + PMResolution * res); + + +/* + * PMSetResolution() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetResolution( + PMPageFormat pageFormat, + const PMResolution * res); + + +/************************/ +/* This is the physical size of the paper without regard to resolution, orientation */ +/* or scaling. It is returned as a 72dpi value. */ +/************************/ +/* + * PMGetPhysicalPaperSize() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetPhysicalPaperSize( + PMPageFormat pageFormat, + PMRect * paperSize); + + +/* + * PMSetPhysicalPaperSize() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetPhysicalPaperSize( + PMPageFormat pageFormat, + const PMRect * paperSize); + + +/************************/ +/* This is the physical size of the page without regard to resolution, orientation */ +/* or scaling. It is returned as a 72dpi value. */ +/************************/ +/* + * PMGetPhysicalPageSize() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetPhysicalPageSize( + PMPageFormat pageFormat, + PMRect * pageSize); + + +/* + * PMGetAdjustedPaperRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetAdjustedPaperRect( + PMPageFormat pageFormat, + PMRect * paperRect); + + +/* + * PMGetAdjustedPageRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetAdjustedPageRect( + PMPageFormat pageFormat, + PMRect * pageRect); + + +/* + * PMGetUnadjustedPaperRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.1 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetUnadjustedPaperRect( + PMPageFormat pageFormat, + PMRect * paperRect); + + +/* + * PMSetUnadjustedPaperRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.1 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetUnadjustedPaperRect( + PMPageFormat pageFormat, + const PMRect * paperRect); + + +/* + * PMGetUnadjustedPageRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.1 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetUnadjustedPageRect( + PMPageFormat pageFormat, + PMRect * pageRect); + + +/* + * PMSetAdjustedPageRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.1 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetAdjustedPageRect( + PMPageFormat pageFormat, + const PMRect * pageRect); + + +/* + * PMGetOrientation() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetOrientation( + PMPageFormat pageFormat, + PMOrientation * orientation); + + +/* + * PMSetOrientation() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetOrientation( + PMPageFormat pageFormat, + PMOrientation orientation, + Boolean lock); + + +/* PMPrintSettings */ +/* + * PMCopyPrintSettings() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMCopyPrintSettings( + PMPrintSettings settingSrc, + PMPrintSettings settingDest); + + +/************************/ +/* Flattening a print settings should only be necessary if you intend to preserve */ +/* the object settings along with a document. A print settings will persist outside of a */ +/* PMBegin/PMEnd block. This allows you to use any accessors on the object without */ +/* the need to flatten and unflatten. Keep in mind the accessors make no assumption */ +/* on the validity of the value. This can only be done thru PMValidatePrintSettings */ +/* in a PMBegin/PMEnd block or with PMSessionValidatePrintSettings with a valid session. */ +/* It is your responsibility for disposing of the handle. */ +/************************/ +/* + * PMFlattenPrintSettings() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMFlattenPrintSettings( + PMPrintSettings printSettings, + Handle * flatSettings); + + +/* + * PMUnflattenPrintSettings() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMUnflattenPrintSettings( + Handle flatSettings, + PMPrintSettings * printSettings); + + +/* PMPrintSettings Accessors */ +/* + * PMGetPrintSettingsExtendedData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetPrintSettingsExtendedData( + PMPrintSettings printSettings, + OSType dataID, + UInt32 * size, + void * extendedData); + + +/* + * PMSetPrintSettingsExtendedData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetPrintSettingsExtendedData( + PMPrintSettings printSettings, + OSType dataID, + UInt32 size, + void * extendedData); + + +/* + * PMGetDestination() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.1 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetDestination( + PMPrintSettings printSettings, + PMDestinationType * destType, + CFURLRef * fileURL); + + +/* + * PMGetJobName() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetJobName( + PMPrintSettings printSettings, + StringPtr name); + + +/* + * PMSetJobName() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetJobName( + PMPrintSettings printSettings, + StringPtr name); + + +/* + * PMGetCopies() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetCopies( + PMPrintSettings printSettings, + UInt32 * copies); + + +/* + * PMSetCopies() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetCopies( + PMPrintSettings printSettings, + UInt32 copies, + Boolean lock); + + +/* + * PMGetFirstPage() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetFirstPage( + PMPrintSettings printSettings, + UInt32 * first); + + +/* + * PMSetFirstPage() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetFirstPage( + PMPrintSettings printSettings, + UInt32 first, + Boolean lock); + + +/* + * PMGetLastPage() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetLastPage( + PMPrintSettings printSettings, + UInt32 * last); + + +/* + * PMSetLastPage() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetLastPage( + PMPrintSettings printSettings, + UInt32 last, + Boolean lock); + + +/************************/ +/* The default page range is from 1-32000. The page range is something that is */ +/* set by the application. It is NOT the first and last page to print. It serves */ +/* as limits for setting the first and last page. You may pass kPMPrintAllPages for */ +/* the maxPage value to specified that all pages are available for printing. */ +/************************/ +/* + * PMGetPageRange() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMGetPageRange( + PMPrintSettings printSettings, + UInt32 * minPage, + UInt32 * maxPage); + + +/************************/ +/* The first and last page are immediately clipped to the new range */ +/************************/ +/* + * PMSetPageRange() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetPageRange( + PMPrintSettings printSettings, + UInt32 minPage, + UInt32 maxPage); + + +/* + * PMSetProfile() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +PMSetProfile( + PMPrintSettings printSettings, + PMTag tag, + const CMProfileLocation * profile); + + +/* + * PMSetCollate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.6 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( OSStatus ) +PMSetCollate( + PMPrintSettings printSettings, + Boolean collate); + + +/* + * PMGetCollate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.6 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( OSStatus ) +PMGetCollate( + PMPrintSettings printSettings, + Boolean * collate); + + +/* + * PMServerCreatePrinterList() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( OSStatus ) +PMServerCreatePrinterList( + PMServer server, + CFArrayRef * printerList); + + +/* + * PMPrinterGetName() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( CFStringRef ) +PMPrinterGetName(PMPrinter printer); + + +/* + * PMPrinterGetID() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( CFStringRef ) +PMPrinterGetID(PMPrinter printer); + + +/* + * PMPrinterIsDefault() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( Boolean ) +PMPrinterIsDefault(PMPrinter printer); + + +/* + * PMPrinterGetLocation() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( CFStringRef ) +PMPrinterGetLocation(PMPrinter printer); + + +/* + * PMPrinterGetState() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( OSStatus ) +PMPrinterGetState( + PMPrinter printer, + PMPrinterState * state); + + +/* + * PMPrinterGetDeviceURI() + * + * Summary: + * Hand back the URI of the printer's device. + * + * Discussion: + * If defined on OS 9 this function returns kPMNotImplemented. + * + * Parameters: + * + * printer: + * The printer whose device URI is to be retrieved. + * + * deviceURI: + * On exit, if successful *'deviceURI' will contain a reference to + * a CFURL describing the printer's device. The caller is + * responsible for releasing this reference. If this call returns + * an error, then *'deviceURI' will be set to NULL. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( OSStatus ) +PMPrinterGetDeviceURI( + PMPrinter printer, + CFURLRef * deviceURI); + + + +/* + * PMPrinterIsFavorite() + * + * Summary: + * Return true if the printer is in the user's favorite printer list. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( Boolean ) +PMPrinterIsFavorite(PMPrinter printer); + + +/* + * PMCGImageCreateWithEPSDataProvider() + * + * Summary: + * Create an image reference that references both the PostScript + * contents of an EPS file and a preview (proxy) image for that EPS + * file. + * + * Discussion: + * For OS X 10.1.0, this function ignores the passed in data + * provider. The passed in image reference is retained and then + * returned. For 10.1.1 and later, then the data provider is used + * and the returned image reference is different than the passed in + * image reference, so please be careful with your use of these + * references. It is likely that the data will not be read from the + * EPS data provider until well after this function returns. The + * caller should be careful not to free the underlying EPS data + * until the provider's release routine is invoked. Similarly the + * preview image's data may be needed long after you think it should + * be. Do not free the image data until the image data provider's + * release data function has been called. To make sure these data + * providers are properly reference counted, release your reference + * the EPS data provider and on the EPS image preview when they are + * no longer needed by your application. For Mac OS X 10.2 and + * later, the contents of the EPS provider at the time of this call + * can be dumped to a file if you first do the following, BEFORE + * running your application. From the command line in terminal: + * defaults write NSGlobalDomain com.apple.print.eps.testProvider + * /tmp/dump.eps causes a dump of the EPS data into a file + * /tmp/dump.eps. + * + * Parameters: + * + * epsDataProvider: + * A Core Graphics data provider that can supply the PostScript + * contents of the EPS file. Post OS X 10.1, there will be some + * checking done on the EPS data provided to the + * PMCGImageCreateWithEPSDataProvider() call. It is important that + * the EPS data begin with the EPSF required header and bounding + * box DSC comments. + * + * epsPreview: + * A Core Graphics image reference to the proxy image for the EPS + * file. When the image reference result of this function is + * rendered on screen or printed to a printer that can not render + * PostScript this proxy image is drawn instead. + * + * Result: + * an image reference capable of rendering either the EPS content or + * the proxy image depending upon the capabilities of the targeted + * context. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CGImageRef ) +PMCGImageCreateWithEPSDataProvider( + CGDataProviderRef epsDataProvider, + CGImageRef epsPreview); + + + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __PMCORE__ */ + |