source-engine/common/quicktime_win32/PMCore.h
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

1756 lines
46 KiB
C

/*
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__ */