diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/PMTicket.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/PMTicket.h')
| -rw-r--r-- | common/quicktime_win32/PMTicket.h | 2076 |
1 files changed, 2076 insertions, 0 deletions
diff --git a/common/quicktime_win32/PMTicket.h b/common/quicktime_win32/PMTicket.h new file mode 100644 index 0000000..26ed0fa --- /dev/null +++ b/common/quicktime_win32/PMTicket.h @@ -0,0 +1,2076 @@ +/* + File: PMTicket.h + + Contains: Mac OS X Printing Manager Job Ticket Interfaces. + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1999-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 __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __CFSTRING__ +#include <CFString.h> +#endif + +#ifndef __CFNUMBER__ +#include <CFNumber.h> +#endif + +#ifndef __CFDATE__ +#include <CFDate.h> +#endif + +#ifndef __PMERRORS__ +#include <PMErrors.h> +#endif + +#ifndef __PMDEFINITIONS__ +#include <PMDefinitions.h> +#endif + +#include <stdio.h> + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/* SECTION I: DATA TYPES, STUCTURES, and CONSTANTS */ +/* General opaque Ticket object reference. This is returned when you create a PageFormat, */ +/* PrintSettings, DocumentInfo, JobInfo, or JobTicket. A list of Job Tickets or other */ +/* tickets can be saved as a list of references. */ +typedef struct OpaquePMTicketRef* PMTicketRef; +typedef struct OpaquePMTemplateRef* PMTemplateRef; +/* A few constants that will be useful in calling Job Ticket functions. */ +enum { + kPMUnlocked = false, + kPMLocked = true +}; + +#define kPMDontFetchItem NULL /* Used to ask GetItem if an item exists. */ +/* The following constant determines if the ticket code sets an item in the top level ticket */ +/* or down in some sub-ticket within the top level ticket. If passed as the document number, */ +/* the ticket code will simply set the item in the ticket passed. If the document number is */ +/* non "kTopLevel" but the page number is "kTopLevel", the ticket code will set the item in the */ +/* document level sub-ticket. If both parameters are non "kTopLevel", the ticket code will set */ +/* the item in the correct sub ticket for the document and page. */ +/* For now, all calls should use kPMTopLevel for document and page numbers, or the passed in */ +/* docment and page numbers if they are available. In the future we expect to enable embedded */ +/* document and page tickets. */ +enum { + kPMTopLevel = 0 +}; + +/* There are several different types of tickets that use the same accessor functions and */ +/* allow the programmer to use different keys to access the proper fields in each ticket. */ +/* A Job Ticket has the following structure: */ +/* Job Ticket */ +/* Job Ticket Fields */ +/* Page Format Ticket (required) */ +/* Paper Info Ticket (required) */ +/* Print Settings Ticket (required) */ +/* Paper Info Ticket (required) */ +/* DOWNSTREAM TICKETS - Heading from PC or PJC to other modules. */ +#define kPMJobTicket CFSTR("com.apple.print.JobTicket") +#define kPMDocumentTicket CFSTR("com.apple.print.DocumentTicket") +#define kPMPageTicket CFSTR("com.apple.print.PageTicket") +#define kPMPageFormatTicket CFSTR("com.apple.print.PageFormatTicket") +#define kPMPrintSettingsTicket CFSTR("com.apple.print.PrintSettingsTicket") +#define kPMDestinationTicket CFSTR("com.apple.print.DestinationTicket") +#define kPMConverterSetupTicket CFSTR("com.apple.print.ConverterSetupTicket") +/* UPSTREAM TICKETS - Expected to be created by low level modules and passed up. */ +#define kPMPrinterInfoTicket CFSTR("com.apple.print.PrinterInfoTicket") +#define kPMModuleInfoTicket CFSTR("com.apple.print.ModuleInfoTicket") +/* OTHER TICKETS, going either direction */ +#define kPMTicketList CFSTR("com.apple.print.TicketList") +#define kPMPaperInfoTicket CFSTR("com.apple.print.PaperInfoTicket") +/* An enum to keep track in a programmatic way of which type of ticket we're working */ +/* with. These do not need to match up with the order of tickets listed in the ticket */ +/* types in PMTicket.h because we convert from string to enum in an internal function. */ +/* Warning: Don't use these tags when creating tickets. Use the CFSTRs above. */ +typedef SInt16 PMTicketType; +enum { + kPMTicketTypeUnknown = -1, + kPMJobTicketType = 1, + kPMDocumentTicketType = 2, + kPMPageTicketType = 3, + kPMPageFormatTicketType = 4, + kPMPrintSettingsTicketType = 5, + kPMPrinterInfoTicketType = 6, + kPMDestinationTicketType = 7, + kPMConverterSetupTicketType = 8, + kPMModuleInfoTicketType = 9, + kPMTicketListType = 10, + kPMPaperInfoTicketType = 11 +}; + + +/* + * PMPrintingPhaseType + * + * Discussion: + * An enum to demark where in the printing process we are. This + * value will be stored in the print settings ticket at the top + * level in the Job Ticket. It will be used to signal shift from one + * phase to the next and may be set by just about any part of the + * system. Users will want to check for ">" (greater than) or "<" + * (less than) conditions when possible, allowing for additional + * phases to be defined later on. + */ +typedef UInt16 PMPrintingPhaseType; +enum { + kPMPhaseUnknown = 0, /* Not clear what phase we're in yet. */ + kPMPhasePreDialog = 1, /* Just before we execute the code to open the dialog. */ + kPMPhaseDialogsUp = 2, /* One of the dialogs is in front of the user. */ + kPMPhasePostDialogs = 3, /* Dialogs are down, not yet spooling. */ + kPMPhasePreAppDrawing = 4, /* Just before we begin to spool */ + kPMPhaseAppDrawing = 5, /* We're spooling drawing commands from the app. */ + kPMPhasePostAppDrawing = 6, /* Finished with spooling, not yet rendering or converting. */ + kPMPhasePreConversion = 7, /* Just before we begin to convert to PS, Raster, or other final format. */ + kPMPhaseConverting = 8, /* Converting from Spool file to final printer format. */ + kPMPhasePostConversion = 9, /* Done with printer ready data, waiting for completion. */ + kPMPhasePrinting = 10 /* In the process of waiting for the printer. */ +}; + +typedef SInt16 PMTicketErrors; +/* BATCH PROCESSING ENUMS AND STRUCTURES */ +/* - Look in this section for help creating statically defined tickets. */ +/* We have the ability to create a Ticket from an array of key/item pairs that define */ +/* the keys and items for the entries in the ticket. To facilitate easy conversion of */ +/* these key/item pairs, we've defined a few constants to help in the batch processing of */ +/* these arrays. These are basically key types that are allowed for batch processing. */ +typedef UInt16 PMTicketItemType; +enum { + kPMItemInvalidType = 0, + kPMItemCStringType = 1, /* a C string pointed to by a char* */ + kPMItemSInt32Type = 2, /* a C signed 32 bit integer. */ + kPMItemBooleanType = 3, /* A Boolean */ + kPMItemCStrListType = 4, /* A list of c-strings. */ + kPMItemPMRectType = 5, /* A pointer to a PMRect */ + kPMItemSInt32ListType = 6, /* A pointer to a SInt32List */ + kPMItemPMRectListType = 7 /* A pointer to a PMRectList */ +}; + + +/* A structure that holds a list of CString pointers, along with a definition for a constant list. */ +struct CStrList { + SInt32 count; /* Number of CString pointers in the array. */ + const char ** strArray; /* Pointer to first CString pointer. */ +}; +typedef struct CStrList CStrList; +typedef const CStrList ConstCStrList; +/* A structure to hold a list of Signed 32 bit integers. */ +struct SInt32List { + SInt32 count; /* Number of Signed 32 bit values in array. */ + const SInt32 * sInt32Array; /* Pointer to the first 32 bit value in array. */ +}; +typedef struct SInt32List SInt32List; +typedef const SInt32List ConstSInt32List; +/* A structure to hold a list of PMRect structures. PMRect is defined in PMDefinitions.h */ +/* and is basically a set of four doubles (top, left, bottom, and right). */ +struct PMRectList { + SInt32 count; /* Number of PMRect pointers in the array. */ + const PMRect ** pmRectArray; /* Pointer to the first PMRect pointer. */ +}; +typedef struct PMRectList PMRectList; +typedef const PMRectList ConstPMRectList; +/* CF types can't be statically initialized, but CString and Pascal strings can be. */ +/* We have created utilities to convert from static C and Pascal based data into CF types. */ +/* The structure below will serve as a statically defined "Ticket Item" that can then be */ +/* converted into a job ticket item. An array of these structures would be made into a ticket. */ +struct PMTicketItemStruct { + char * key; /* The CString for the key. */ + PMTicketItemType itemType; /* What type of item is being defined in union below. */ + Boolean locked; /* Can other callers change this after it's entered in a ticket? */ + union { /* The item data itself. */ + const void * GenericData; /* Generic data */ + const char * cString; /* kPMItemCStringType */ + SInt32 sInt32; /* kPMItemSInt32Type */ + UInt32 boolean; /* kPMItemBooleanType */ + ConstCStrList * cStrlist; /* kPMItemCStrListType */ + PMRect * rect; /* kPMItemPMRectType */ + ConstSInt32List * sInt32List; /* kPMItemSInt32ListType */ + ConstPMRectList * pmRectList; /* kPMItemPMRectListType */ + } value; +}; +typedef struct PMTicketItemStruct PMTicketItemStruct; +/* END OF BATCH PROCESSING ENUMS AND STRUCTURES */ +/* ENUMS for Ticket Values */ +/* The values for kPMDuplexingKey */ +enum { + kPMDuplexNone = 1, + kPMDuplexNoTumble = 2, /* Print on both sides of the paper, pages flip from left to right.*/ + kPMDuplexTumble = 3, /* Print on both sides of the paper, tumbling on so pages flip top to bottom.*/ + kPMSimplexTumble = 4, /* Print on only one side of the paper, but tumble the images while printing.*/ + kPMDuplexDefault = kPMDuplexNone /* If the kPMDuplexingKey is not in a ticket then kPMDuplexDefault should be assumed.*/ +}; + + +/* Values for the kPMPSErrorHandlerKey */ +enum { + kPSNoErrorHandler = 0, + kPSErrorHandler = 1 +}; + +/* If the kPMCopyCollateKey is not present, then kPMCopyCollateDefault should be assumed. */ +enum { + kPMCopyCollateDefault = true +}; + + + +/* END OF SECTION I: DATA TYPES, STUCTURES, and CONSTANTS */ + +/* SECTION II: TICKET KEYS */ +/* - Look in this section for particular predefined keys for various tickets. */ +/* Each key is defined to store it's data as a particular CF type, but there are some */ +/* utilities defined to fetch data in different formats. For instance, it would be simple */ +/* to read in the Job Name as a CFString, or as a 'C' string. */ +/* Ticket: PAPER INFO TICKET + This ticket contains a single Paper Info set, with all the information necessary to + describe a paper type available from the Printer Module. +*/ +#define kPMPaperInfoPrelude "com.apple.print.PaperInfo." +/* CFString for the name of the paper displayed in UI */ +#define kPMPaperNameStr "com.apple.print.PaperInfo.PMPaperName" +#define kPMPaperNameKey CFSTR("com.apple.print.PaperInfo.PMPaperName") +/* CFArray of 4 CFNumbers of kCFNumberDoubleType for paper size in points. */ +#define kPMUnadjustedPaperRectStr "com.apple.print.PaperInfo.PMUnadjustedPaperRect" +#define kPMUnadjustedPaperRectKey CFSTR("com.apple.print.PaperInfo.PMUnadjustedPaperRect") +/* CFArray of 4 CFNumbers of kCFNumberDoubleType for page size within the paper, in points. */ +#define kPMUnadjustedPageRectStr "com.apple.print.PaperInfo.PMUnadjustedPageRect" +#define kPMUnadjustedPageRectKey CFSTR("com.apple.print.PaperInfo.PMUnadjustedPageRect") +/* CFBoolean tells if we need to find a closest match for this paper */ +#define kPMMatchPaperStr "com.apple.print.PaperInfo.PMMatchPaper" +#define kPMMatchPaperKey CFSTR("com.apple.print.PaperInfo.PMMatchPaper") + +/* Ticket: PAGE FORMAT TICKET + Describes the application's drawing environment, including resolution, scaling, and + orientation. All information in the page format ticket is saved with the user's document, + so the single paper info stored inside the page format ticket describes the logical page + an application may draw to. This logical page is then mapped to a physical page defined + in the Print Settings Ticket. +*/ +#define kPMPageFormatPrelude "com.apple.print.PageFormat." +/* CFArray of 4 CFNumbers of kCFNumberDoubleType for scaled and rotated page rectangle. */ +#define kPMAdjustedPaperRectStr "com.apple.print.PageFormat.PMAdjustedPaperRect" +#define kPMAdjustedPaperRectKey CFSTR("com.apple.print.PageFormat.PMAdjustedPaperRect") +/* CFArray of 4 CFNumbers of kCFNumberDoubleType for scaled and rotated page rectangle, in points. */ +#define kPMAdjustedPageRectStr "com.apple.print.PageFormat.PMAdjustedPageRect" +#define kPMAdjustedPageRectKey CFSTR("com.apple.print.PageFormat.PMAdjustedPageRect") +/* CFNumber - kCFNumberDoubleType, Drawing resolution in horizontal direction. */ +#define kPMDrawingResHorizontalStr "com.apple.print.PageFormat.PMHorizontalRes" +#define kPMDrawingResHorizontalKey CFSTR("com.apple.print.PageFormat.PMHorizontalRes") +/* CFNumber - kCFNumberDoubleType, Drawing resolution in vertical direction. */ +#define kPMDrawingResVerticalStr "com.apple.print.PageFormat.PMVerticalRes" +#define kPMDrawingResVerticalKey CFSTR("com.apple.print.PageFormat.PMVerticalRes") +/* CFNumber - kCFNumberDoubleType, Horizontal scaling factor applied to original page size - 1 = 100% */ +#define kPMPageScalingHorizontalStr "com.apple.print.PageFormat.PMScaling" +#define kPMPageScalingHorizontalKey CFSTR("com.apple.print.PageFormat.PMScaling") +/* CFNumber - kCFNumberDoubleType, Vertical scaling factor applied to original page size - 1 = 100%. */ +#define kPMPageScalingVerticalStr "com.apple.print.PageFormat.PMVerticalScaling" +#define kPMPageScalingVerticalKey CFSTR("com.apple.print.PageFormat.PMVerticalScaling") +/* CFNumber - kCFNumberSInt32Type, PMOrientation, 1 = portrait, 2 = landscape, 3 = reverse landscape, 4 = reverse portrait. */ +#define kPMPageOrientationStr "com.apple.print.PageFormat.PMOrientation" +#define kPMPageOrientationKey CFSTR("com.apple.print.PageFormat.PMOrientation") +/* CFData - Print record handle, allowing easy access during most calls. Not used when flattened. (OS8 Only) */ +#define kPMPageBackupRecordHdlStr "com.apple.print.PageFormat.BackupPrintRecordHandle" +#define kPMPageBackupRecordHdlKey CFSTR("com.apple.print.PageFormat.BackupPrintRecordHandle") +/* CFData - Print record stored in complete form - used when flattening Ticket w/ record. (OS8 only) */ +#define kPMPageBackupRecordDataStr "com.apple.print.PageFormat.BackupPrintRecord" +#define kPMPageBackupRecordDataKey CFSTR("com.apple.print.PageFormat.BackupPrintRecord") +/* CFData - Handle to the print record using for custom dialog calls. Not stored when flattened. (OS8 Only) */ +#define kPMPageCustomDialogHdlStr "com.apple.print.PageFormat.CustomDialogRecord" +#define kPMPageCustomDialogHdlKey CFSTR("com.apple.print.PageFormat.CustomDialogRecord") +/* CFString - name of the formating printer */ +#define kPMFormattingPrinterStr "com.apple.print.PageFormat.FormattingPrinter" +#define kPMFormattingPrinterKey CFSTR("com.apple.print.PageFormat.FormattingPrinter") +/* Ticket: PRINT SETTINGS TICKET + Contains the user's print dialog selections. Includes items set by the application to + further refine the output produced on the printer. Information in this ticket may also + be saved with the decument, but are likely to be overwritten by any saved settings. + Logical page information is mapped to the physical page defined in this ticket. +*/ +#define kPMPrintSettingsPrelude "com.apple.print.PrintSettings." +/* CFNumber, kCFNumberSInt32Type kPMDestinationPrinter kPMDestinationFile kPMDestinationFax. */ +#define kPMDestinationTypeStr "com.apple.print.PrintSettings.PMDestinationType" +#define kPMDestinationTypeKey CFSTR("com.apple.print.PrintSettings.PMDestinationType") +/* CFString - URL for the output filename. */ +#define kPMOutputFilenameStr "com.apple.print.PrintSettings.PMOutputFilename" +#define kPMOutputFilenameKey CFSTR("com.apple.print.PrintSettings.PMOutputFilename") +/* CFNumber, kCFNumberSInt32Type, number of copies to print. */ +#define kPMCopiesStr "com.apple.print.PrintSettings.PMCopies" +#define kPMCopiesKey CFSTR("com.apple.print.PrintSettings.PMCopies") +/* CFBoolean, Turns on collating */ +#define kPMCopyCollateStr "com.apple.print.PrintSettings.PMCopyCollate" +#define kPMCopyCollateKey CFSTR("com.apple.print.PrintSettings.PMCopyCollate") +/* CFBoolean, If true, we print sheets back to front. All layout options are unaffected by reverse order. */ +#define kPMReverseOrderStr "com.apple.print.PrintSettings.PMReverseOrder" +#define kPMReverseOrderKey CFSTR("com.apple.print.PrintSettings.PMReverseOrder") +/* CFArray of kCFNumberSInt32Type, each pair indicating valid range of pages that the application is able to print. Does not signify user choices. */ +#define kPMPageRangeStr "com.apple.print.PrintSettings.PMPageRange" +#define kPMPageRangeKey CFSTR("com.apple.print.PrintSettings.PMPageRange") +/* CFNumber - kCFNumberSInt32Type, first page selected by user to print. */ +#define kPMFirstPageStr "com.apple.print.PrintSettings.PMFirstPage" +#define kPMFirstPageKey CFSTR("com.apple.print.PrintSettings.PMFirstPage") +/* CFNumber - kCFNumberSInt32Type, last page selected by user to print. */ +#define kPMLastPageStr "com.apple.print.PrintSettings.PMLastPage" +#define kPMLastPageKey CFSTR("com.apple.print.PrintSettings.PMLastPage") +/* CFBoolean - If true, we do borders. */ +#define kPMBorderStr "com.apple.print.PrintSettings.PMBorder" +#define kPMBorderKey CFSTR("com.apple.print.PrintSettings.PMBorder") +/* CFNumber - kCFNumberSInt32Type, Enum (PMBorderType) */ +#define kPMBorderTypeStr "com.apple.print.PrintSettings.PMBorderType" +#define kPMBorderTypeKey CFSTR("com.apple.print.PrintSettings.PMBorderType") +/* CFBoolean, Turns on N-Up layout. */ +#define kPMLayoutNUpStr "com.apple.print.PrintSettings.PMLayoutNUp" +#define kPMLayoutNUpKey CFSTR("com.apple.print.PrintSettings.PMLayoutNUp") +/* CFNumber - kCFNumberSInt32Type, indicates number of layout rows. */ +#define kPMLayoutRowsStr "com.apple.print.PrintSettings.PMLayoutRows" +#define kPMLayoutRowsKey CFSTR("com.apple.print.PrintSettings.PMLayoutRows") +/* CFNumber - kCFNumberSInt32Type, indicates number of layout columns. */ +#define kPMLayoutColumnsStr "com.apple.print.PrintSettings.PMLayoutColumns" +#define kPMLayoutColumnsKey CFSTR("com.apple.print.PrintSettings.PMLayoutColumns") +/* CFNumber - kCFNumberSInt32Type, Enum (PMLayoutDirection) */ +#define kPMLayoutDirectionStr "com.apple.print.PrintSettings.PMLayoutDirection" +#define kPMLayoutDirectionKey CFSTR("com.apple.print.PrintSettings.PMLayoutDirection") +/* CFNumber - kCFNumberSInt32Type, PMOrientation, 1 = portrait, 2 = landscape, etc. */ +#define kPMLayoutTileOrientationStr "com.apple.print.PrintSettings.PMLayoutTileOrientation" +#define kPMLayoutTileOrientationKey CFSTR("com.apple.print.PrintSettings.PMLayoutTileOrientation") +/* CFNumber - kCFNumberSInt32Type, Enum, draft, normal, best */ +#define kPMQualityStr "com.apple.print.PrintSettings.PMQuality" +#define kPMQualityKey CFSTR("com.apple.print.PrintSettings.PMQuality") +/* CFNumber - kCFNumberSInt32Type, Enum, draft, normal, best */ +#define kPMPaperTypeStr "com.apple.print.PrintSettings.PMPaperType" +#define kPMPaperTypeKey CFSTR("com.apple.print.PrintSettings.PMPaperType") +/* CFNumber - kCFNumberSInt32Type, Enum, active = 0, pending, hold until, hold indefinitely, aborted, finished */ +#define kPMJobStateStr "com.apple.print.PrintSettings.PMJobState" +#define kPMJobStateKey CFSTR("com.apple.print.PrintSettings.PMJobState") +/* CFDate - Time we expect to print the job. */ +#define kPMJobHoldUntilTimeStr "com.apple.print.PrintSettings.PMJobHoldUntilTime" +#define kPMJobHoldUntilTimeKey CFSTR("com.apple.print.PrintSettings.PMJobHoldUntilTime") +/* CFNumber - kCFNumberSInt32Type, Enum, Low = 0, normal, urgent */ +#define kPMJobPriorityStr "com.apple.print.PrintSettings.PMJobPriority" +#define kPMJobPriorityKey CFSTR("com.apple.print.PrintSettings.PMJobPriority") +/* CFNUmber - kCFNumberSInt32Type, Enum, paper sources. */ +#define kPMPaperSourceStr "com.apple.print.PrintSettings.PMPaperSource" +#define kPMPaperSourceKey CFSTR("com.apple.print.PrintSettings.PMPaperSource") +/* CFNumber - kCFNumberSInt32Type, Enum, kPMDuplexNone, kPMDuplexNoTumble, kPMDuplexTumble, kPMSimplexTumble */ +#define kPMDuplexingStr "com.apple.print.PrintSettings.PMDuplexing" +#define kPMDuplexingKey CFSTR("com.apple.print.PrintSettings.PMDuplexing") +/* CFNumber - kCFNumberSInt32Type, Enum, B/W, Grayscale, Color, HiFi Color. */ +#define kPMColorModeStr "com.apple.print.PrintSettings.PMColorMode" +#define kPMColorModeKey CFSTR("com.apple.print.PrintSettings.PMColorMode") +/* CFNumber - kCFNumberSInt32Type, ID of profile to use. */ +#define kPMColorSyncProfileIDStr "com.apple.print.PrintSettings.PMColorSyncProfileID" +#define kPMColorSyncProfileIDKey CFSTR("com.apple.print.PrintSettings.PMColorSyncProfileID") +/* CFString - path of system profile. */ +#define kPMColorSyncSystemProfilePathStr "com.apple.print.PrintSettings.PMColorSyncSystemProfilePath" +#define kPMColorSyncSystemProfilePathKey CFSTR("com.apple.print.PrintSettings.PMColorSyncSystemProfilePath") +/* CFNumber - kCFNumberDoubleType, Horizontal scaling factor applied to original page size. */ +#define kPMPrintScalingHorizontalStr "com.apple.print.PrintSettings.PMScaling" +#define kPMPrintScalingHorizontalKey CFSTR("com.apple.print.PrintSettings.PMScaling") +/* CFNumber - kCFNumberDoubleType, Vertical scaling factor applied to original page size. */ +#define kPMPrintScalingVerticalStr "com.apple.print.PrintSettings.PMVerticalScaling" +#define kPMPrintScalingVerticalKey CFSTR("com.apple.print.PrintSettings.PMVerticalScaling") +/* CFNumber - kCFNumberSInt32Type, Enum (PMScalingAlignment) */ +#define kPMPrintScalingAlignmentStr "com.apple.print.PrintSettings.PMScalingAlignment" +#define kPMPrintScalingAlignmentKey CFSTR("com.apple.print.PrintSettings.PMScalingAlignment") +/* CFNumber - kCFNumberSInt32Type, PMOrientation, 1 = portrait, 2 = landscape, etc. */ +#define kPMPrintOrientationStr "com.apple.print.PrintSettings.PMOrientation" +#define kPMPrintOrientationKey CFSTR("com.apple.print.PrintSettings.PMOrientation") +/* CFString - YES means the user clicked on the Preview button */ +#define kPMPreviewStr "com.apple.print.PrintSettings.PMPreview" +#define kPMPreviewKey CFSTR("com.apple.print.PrintSettings.PMPreview") +/* CFData - Print record handle, allowing easy access during most calls. Not used when flattened. (OS8 Only) */ +#define kPMPrintBackupRecordHdlStr "com.apple.print.PrintSettings.BackupPrintRecordHandle" +#define kPMPrintBackupRecordHdlKey CFSTR("com.apple.print.PrintSettings.BackupPrintRecordHandle") +/* CFData - Print record stored in complete form - used when flattening Ticket w/ record. (OS8 only) */ +#define kPMPrintBackupRecordDataStr "com.apple.print.PrintSettings.BackupPrintRecord" +#define kPMPrintBackupRecordDataKey CFSTR("com.apple.print.PrintSettings.BackupPrintRecord") +/* CFData - Handle to the print record using for custom dialog calls. Not stored when flattened. (OS8 Only) */ +#define kPMPrintCustomDialogHdlStr "com.apple.print.PrintSettings.CustomDialogRecord" +#define kPMPrintCustomDialogHdlKey CFSTR("com.apple.print.PrintSettings.CustomDialogRecord") +/* CFArray - main & option PPD key for input paper feed */ +#define kPMPrimaryPaperFeedStr "com.apple.print.PrintSettings.PMPrimaryPaperFeed" +#define kPMPrimaryPaperFeedKey CFSTR("com.apple.print.PrintSettings.PMPrimaryPaperFeed") +/* CFArray - main & option PPD key for input paper feed */ +#define kPMSecondaryPaperFeedStr "com.apple.print.PrintSettings.PMSecondaryPaperFeed" +#define kPMSecondaryPaperFeedKey CFSTR("com.apple.print.PrintSettings.PMSecondaryPaperFeed") +/* CFNumber - kCFNumberSInt32Type */ +#define kPMPSErrorHandlerStr "com.apple.print.PrintSettings.PMPSErrorHandler" +#define kPMPSErrorHandlerKey CFSTR("com.apple.print.PrintSettings.PMPSErrorHandler") +/* CFBoolean, Turns on PS error on screen notification. */ +#define kPMPSErrorOnScreenStr "com.apple.print.PrintSettings.PMPSErrorOnScreen" +#define kPMPSErrorOnScreenKey CFSTR("com.apple.print.PrintSettings.PMPSErrorOnScreen") +/* CFArray - main & option PPD key for tray switching */ +#define kPMPSTraySwitchStr "com.apple.print.PrintSettings.PMPSTraySwitch" +#define kPMPSTraySwitchKey CFSTR("com.apple.print.PrintSettings.PMPSTraySwitch") +/* CFDictionary - main & option PPD keys for additional features */ +#define kPMPPDDictStr "com.apple.print.PrintSettings.kPMPPDDictStr" +#define kPMPPDDictKey CFSTR("com.apple.print.PrintSettings.kPMPPDDictStr") +/* Ticket: PAGE TICKET + Future Feature. Intended to hold Page Format and Print Settings ticket for a single + page of the document. Not yet implemented. +*/ +#define kPMPageTicketPrelude "com.apple.print.PageTicket." +/* Ticket: DOCUMENT TICKET + Future Feature. Intended to hold multiple Page Tickets and separate Page Format + and Print Settings tickets for a single document. Not yet implemented. For now, + the keys listed here will be included at the Job Ticket Level. +*/ +#define kPMDocumentTicketPrelude "com.apple.print.DocumentTicket." +/* CFString. Indicates format of data stored in the spool file. */ +#define kPMSpoolFormatStr "com.apple.print.DocumentTicket.PMSpoolFormat" +#define kPMSpoolFormatKey CFSTR("com.apple.print.DocumentTicket.PMSpoolFormat") +/* CFString. Indicates format of data going to the Printer Module. */ +#define kPMPrinterModuleFormatStr "com.apple.print.DocumentTicket.PMDocPMInputFormat" +#define kPMPrinterModuleFormatKey CFSTR("com.apple.print.DocumentTicket.PMDocPMInputFormat") +/* Ticket: JOB TICKET + Holds a Page Format and Print Settings ticket, as well as a few other fields that + are Job Specific, such as information about the user that submitted the job. The + fidelity bit controls what happens when the system encounters settings that can't + be obeyed. + In the future a Job Ticket may hold multiple document tickets in addition to the + Print Settings and Page Format tickets. +*/ +#define kPMJobTicketPrelude "com.apple.print.JobInfo." +/* CFString, The name of the job to be displayed in the queue window. */ +#define kPMJobNameStr "com.apple.print.JobInfo.PMJobName" +#define kPMJobNameKey CFSTR("com.apple.print.JobInfo.PMJobName") +/* CFString, The application's name */ +#define kPMApplicationNameStr "com.apple.print.JobInfo.PMApplicationName" +#define kPMApplicationNameKey CFSTR("com.apple.print.JobInfo.PMApplicationName") +/* CFNumber - kCFNumberSInt32Type, TBD how this is interpreted. */ +#define kPMUserLanguageStr "com.apple.print.JobInfo.PMUserLanguage" +#define kPMUserLanguageKey CFSTR("com.apple.print.JobInfo.PMUserLanguage") +/* CFString - Name of the user who submitted the job. */ +#define kPMJobOwnerStr "com.apple.print.JobInfo.PMJobOwner" +#define kPMJobOwnerKey CFSTR("com.apple.print.JobInfo.PMJobOwner") +/* CFDictionary - PMTemplateRef, actually. See PMTemplate.h */ +#define kPMJobTemplateStr "com.apple.print.JobInfo.PMJobTemplate" +#define kPMJobTemplateKey CFSTR("com.apple.print.JobInfo.PMJobTemplate") +/* CFNumber, kCFNumberSInt32Type, Enum - Spooling, RIPing, etc. */ +#define kPMPhaseStr "com.apple.print.JobInfo.PMPrintingPhase" +#define kPMPhaseKey CFSTR("com.apple.print.JobInfo.PMPrintingPhase") +/* CFString, Mime type from the kPMOutputTypeListKey array the printer module should generate. */ +#define kPMOutputTypeStr "com.apple.print.JobInfo.PMOutputType" +#define kPMOutputTypeKey CFSTR("com.apple.print.JobInfo.PMOutputType") +/* Ticket: LIST TICKET + Contains a list of other tickets. There is no restriction on the type of tickets + that can be stored in a list, any ticket will do. +*/ +#define kPMTicketListPrelude "com.apple.print.TicketList." + + +/* Ticket: Printer Info Ticket + Created by the Printer Module to describe features and settings of the current + printer. This is information largely used by the Printer Module itself and the Print + Dialog Extensions associated with the PM. All "range" type values that would be + verified at dialog time should go in a separate Template. +*/ +#define kPMPrinterInfoPrelude "com.apple.print.PrinterInfo." +/* CFString, Full name of the printer. */ +#define kPMPrinterLongNameStr "com.apple.print.PrinterInfo.PMPrinterLongName" +#define kPMPrinterLongNameKey CFSTR("com.apple.print.PrinterInfo.PMPrinterLongName") +/* CFString, Shorter name to use when you have less space. */ +#define kPMPrinterShortNameStr "com.apple.print.PrinterInfo.PMPrinterShortName" +#define kPMPrinterShortNameKey CFSTR("com.apple.print.PrinterInfo.PMPrinterShortName") +/* CFString, Product name is used for ???? */ +#define kPMMakeAndModelNameStr "com.apple.print.PrinterInfo.PMMakeAndModelName" +#define kPMMakeAndModelNameKey CFSTR("com.apple.print.PrinterInfo.PMMakeAndModelName") +/* CFData, Product address. */ +#define kPMPrinterAddressStr "com.apple.print.PrinterInfo.PMPrinterAddress" +#define kPMPrinterAddressKey CFSTR("com.apple.print.PrinterInfo.PMPrinterAddress") +/* CFBoolean, If Non-zero, printer/PM can do color. */ +#define kPMSupportsColorStr "com.apple.print.PrinterInfo.PMSupportsColor" +#define kPMSupportsColorKey CFSTR("com.apple.print.PrinterInfo.PMSupportsColor") +/* CFBoolean, If Non-zero, printer/PM can do copies */ +#define kPMDoesCopiesStr "com.apple.print.PrinterInfo.PMDoesCopies" +#define kPMDoesCopiesKey CFSTR("com.apple.print.PrinterInfo.PMDoesCopies") +/* CFBoolean, If Non-zero, printer/PM can collate. */ +#define kPMDoesCopyCollateStr "com.apple.print.PrinterInfo.PMDoesCopyCollate" +#define kPMDoesCopyCollateKey CFSTR("com.apple.print.PrinterInfo.PMDoesCopyCollate") +/* CFBoolean, If Non-zero, printer/PM can reverse the printing order. */ +#define kPMDoesReverseOrderStr "com.apple.print.PrinterInfo.PMDoesReverseOrderK" +#define kPMDoesReverseOrderKey CFSTR("com.apple.print.PrinterInfo.PMDoesReverseOrderK") +/* CFArray of CFStrings indicating file types. See PMDefinitions.h for complete list. */ +#define kPMInputFileTypeListStr "com.apple.print.PrinterInfo.PMInputFileTypeList" +#define kPMInputFileTypeListKey CFSTR("com.apple.print.PrinterInfo.PMInputFileTypeList") +/* CFArray of CFStrings indicating the MIME type for the data is can send to an IO module. */ +#define kPMOutputTypeListStr "com.apple.print.PrinterInfo.PMOutputTypeList" +#define kPMOutputTypeListKey CFSTR("com.apple.print.PrinterInfo.PMOutputTypeList") +/* Postscript printing related tags */ +/* CFNumber - kCFNumberSInt32Type, indicates PostScript Language level. Contains one of the values from the enum below */ +#define kPMPostScriptLevelStr "com.apple.print.PrinterInfo.PMPostScriptLevel" +#define kPMPostScriptLevelKey CFSTR("com.apple.print.PrinterInfo.PMPostScriptLevel") +/* CFString e.g."2040.113"*/ +#define kPMPostScriptVersionStr "com.apple.print.PrinterInfo.PMPSVersion" +#define kPMPostScriptVersionKey CFSTR("com.apple.print.PrinterInfo.PMPSVersion") +/* CFNumber - kCFNumberSInt32Type, contains the PostScript revision which is an integer.*/ +#define kPMPostScriptRevisionStr "com.apple.print.PrinterInfo.PMPSRevision" +#define kPMPostScriptRevisionKey CFSTR("com.apple.print.PrinterInfo.PMPSRevision") +/* CFNumber - kCFNumberSInt32Type, contains one of the values from the enum below.*/ +#define kPMPostScriptTrueTypeFontRasterizerStr "com.apple.print.PrinterInfo.PMPSTTRasterizer" +#define kPMPostScriptTrueTypeFontRasterizerKey CFSTR("com.apple.print.PrinterInfo.PMPSTTRasterizer") + +/* Enum for the possible font rasterizers. */ +enum { + kPMPSTTRasterizerUnknown = 0, /* unknown*/ + kPMPSTTRasterizerNone = 1, /* none*/ + kPMPSTTRasterizerAccept68K = 2, /* accept 68k*/ + kPMPSTTRasterizerType42 = 3 /* type 42*/ +}; + +/* Enum for possible PostScript Language Levels. */ +enum { + kPMPSTargetLanguageLevel2and3 = -3, /* Level 2 Compatible, may take advantage of Level 3 features*/ + kPMPSTargetLanguageLevel1and2 = -2, /* Level 1 Compatible, may take advantage of Level 2 and 3 features*/ + kPMPSTargetLanguageLevelUnknown = -1, /* language level of target is unknown*/ + kPMPSTargetLanguageLevel1 = 1, /* level 1*/ + kPMPSTargetLanguageLevel2 = 2, /* level 2*/ + kPMPSTargetLanguageLevel3 = 3, /* level 3*/ + kPMPSTargetLanguageLevelDefault = kPMPSTargetLanguageLevelUnknown /* default*/ +}; + + +/* Note, we've removed the PMLanguageInfoKey because it's not valid to store strings or structures, everything needs to be a CFType.*/ +/* CFNumber - kCFNumberSInt32Type, Memory on the Printer itself. */ +#define kPMTotalMemInstalledStr "com.apple.print.PrinterInfo.PMTotalMemInstalled" +#define kPMTotalMemInstalledKey CFSTR("com.apple.print.PrinterInfo.PMTotalMemInstalled") +/* CFNumber - kCFNumberSInt32Type, Remaining memory available for use. */ +#define kPMTotalMemAvailableStr "com.apple.print.PrinterInfo.PMTotalMemAvailable" +#define kPMTotalMemAvailableKey CFSTR("com.apple.print.PrinterInfo.PMTotalMemAvailable") +/* PPD related tags */ +/* CFString, PPD file name or other description file. */ +#define kPMDescriptionFileStr "com.apple.print.PrinterInfo.PMDescriptionFile" +#define kPMDescriptionFileKey CFSTR("com.apple.print.PrinterInfo.PMDescriptionFile") +/* CFData, Compiled PPD file to ease parsing after the fact. Not sure we need. */ +#define kPMCompiledPPDStr "com.apple.print.PrinterInfo.PMCompiledPPD" +#define kPMCompiledPPDKey CFSTR("com.apple.print.PrinterInfo.PMCompiledPPD") +/* ColorSync related tags */ +/* CFString, representing a CFUUID - must be unique per device */ +#define kPMColorDeviceIDStr "com.apple.print.PrinterInfo.PMColorDeviceID" +#define kPMColorDeviceIDKey CFSTR("com.apple.print.PrinterInfo.PMColorDeviceID") +/* CFArray - of CFDicts, one for each factory profile. */ +#define kPMColorSyncProfilesStr "com.apple.print.PrinterInfo.PMColorSyncProfiles" +#define kPMColorSyncProfilesKey CFSTR("com.apple.print.PrinterInfo.PMColorSyncProfiles") +/* Installable options string. */ +/* CFData, Installable options from PPD file. */ +#define kPMInstallableOptionStr "com.apple.print.PrinterInfo.PMInstallableOption" +#define kPMInstallableOptionKey CFSTR("com.apple.print.PrinterInfo.PMInstallableOption") +/* Suggested app drawing resolutions */ +/* CFArray - array of pairs of kCFNumberDoubleType - One pair for each recommended resolution*/ +#define kPMPrinterSuggestedResStr "com.apple.print.PrinterInfo.PMPrinterSuggestedRes" +#define kPMPrinterSuggestedResKey CFSTR("com.apple.print.PrinterInfo.PMPrinterSuggestedRes") +/* Min and max range of resolutions */ +/* CFArray - 2 CFNumber, kCFNumberDoubleType, min resolution of printer */ +#define kPMPrinterMinResStr "com.apple.print.PrinterInfo.PMPrinterMinRes" +#define kPMPrinterMinResKey CFSTR("com.apple.print.PrinterInfo.PMPrinterMinRes") +/* CFArray - 2 CFNumber, kCFNumberDoubleType, max resolution of printer */ +#define kPMPrinterMaxResStr "com.apple.print.PrinterInfo.PMPrinterMaxRes" +#define kPMPrinterMaxResKey CFSTR("com.apple.print.PrinterInfo.PMPrinterMaxRes") +/* driver creator code */ +/* CFNumber - kCFNumberSInt32Type creator signiture for driver*/ +#define kPMDriverCreatorStr "com.apple.print.PrinterInfo.PMDriverCreator" +#define kPMDriverCreatorKey CFSTR("com.apple.print.PrinterInfo.PMDriverCreator") +/* Printer Resident font data handle */ +/* CFData, Printer resident fonts from printer query. */ +#define kPMPrinterFontStr "com.apple.print.PrinterInfo.Printer Fonts" +#define kPMPrinterFontKey CFSTR("com.apple.print.PrinterInfo.Printer Fonts") +/* CFBoolean - PJCIsPostScriptDriver*/ +#define kPMPrinterIsPostScriptDriverStr "com.apple.print.PrinterInfo.PMIsPostScriptDriver" +#define kPMPrinterIsPostScriptDriverKey CFSTR("com.apple.print.PrinterInfo.PMIsPostScriptDriver") +#define kPMIsBinaryOKStr "com.apple.print.PrinterInfo.PMIsBinaryOK" +#define kPMIsBinaryOKKey CFSTR("com.apple.print.PrinterInfo.PMIsBinaryOK") +/* CFBoolean - Can the comm channel take bytes with the high bit set?*/ +#define kPM8BitCommStr "com.apple.print.PrinterInfo.PM8BitComm" +#define kPM8BitCommKey CFSTR("com.apple.print.PrinterInfo.PM8BitComm") +#define kPMTransparentCommStr "com.apple.print.PrinterInfo.PMTransparentComm" +#define kPMTransparentCommKey CFSTR("com.apple.print.PrinterInfo.PMTransparentComm") +/* Ticket: Converter Setup Ticket + Contains controls for converter. Generally, the Printer Module and Job Manager will set + tags in this ticket to control the various settings of the conversion process. +*/ +#define kPMConverterSetupPrelude "com.apple.print.ConverterSetup." +/* CFBoolean, turns on banding if it's available. */ +#define kPMBandingRequestedStr "com.apple.print.ConverterSetup.PMBandingRequested" +#define kPMBandingRequestedKey CFSTR("com.apple.print.ConverterSetup.PMBandingRequested") +/* CFNumber, number of scan lines needed for each band. Could be whole page, in which case banding is disabled. */ +#define kPMRequiredBandHeightStr "com.apple.print.ConverterSetup.PMRequiredBandHeight" +#define kPMRequiredBandHeightKey CFSTR("com.apple.print.ConverterSetup.PMRequiredBandHeight") +/* CFBoolean. If true, the printer module wants converter to switch between b/w bands and color bands when possible. */ +#define kPMDepthSwitchingEnabledStr "com.apple.print.ConverterSetup.PMDepthSwitching" +#define kPMDepthSwitchingEnabledKey CFSTR("com.apple.print.ConverterSetup.PMDepthSwitching") +/* CFBoolean. If true, the printer module wants converter to skip over white space if possible. */ +#define kPMWhiteSkippingEnabledStr "com.apple.print.ConverterSetup.PMWhiteSpaceSkipping" +#define kPMWhiteSkippingEnabledKey CFSTR("com.apple.print.ConverterSetup.PMWhiteSpaceSkipping") +/* CFNumber, CFNumberDoubleType indicating horizontal final rendering resolution. */ +#define kPMConverterResHorizontalStr "com.apple.print.ConverterSetup.PMConversionResHorizontal" +#define kPMConverterResHorizontalKey CFSTR("com.apple.print.ConverterSetup.PMConversionResHorizontal") +/* CFNumber, CFNumberDoubleType indicating vertical final rendering resolution. */ +#define kPMConverterResVerticalStr "com.apple.print.ConverterSetup.PMConversionResVertcial" +#define kPMConverterResVerticalKey CFSTR("com.apple.print.ConverterSetup.PMConversionResVertcial") +/* CFNumber, CFNumberLongType, indicates the pixel format requested of the converter. */ +#define kPMRequestedPixelFormatStr "com.apple.print.ConverterSetup.PMPixelFormat" +#define kPMRequestedPixelFormatKey CFSTR("com.apple.print.ConverterSetup.PMPixelFormat") +/* CFNumber, CFNumberLongType, indicates the pixel layout requested of the converter. */ +#define kPMRequestedPixelLayoutStr "com.apple.print.ConverterSetup.PMPixelLayout" +#define kPMRequestedPixelLayoutKey CFSTR("com.apple.print.ConverterSetup.PMPixelLayout") +/* CFNumber, kCFNumberSInt32Type, the profile ID for the profile to be used with this job. */ +#define kPMCVColorSyncProfileIDStr "com.apple.print.ConverterSetup.PMProfileID" +#define kPMCVColorSyncProfileIDKey CFSTR("com.apple.print.ConverterSetup.PMProfileID") + +/* END OF SECTION II: TICKET KEYS */ +/* SECTION III, FUNCTIONS: */ +/* Create, or copy a Ticket. As a Ticket is created, its type is stored in the object itself */ +/* and used to help the programmer make sure they are adding the correct fields to the object. */ +/* + * PMTicketCreate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketCreate( + CFAllocatorRef allocator, + CFStringRef ticketType, + PMTicketRef * newTicket); + + +/* + * PMTicketCopy() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketCopy( + CFAllocatorRef allocator, + PMTicketRef sourceTicket, + PMTicketRef * destinationTicket); + + +/* Retain, release, or get retain count of a Ticket. The behavior is modelled after */ +/* CoreFoundation's CFRetain, CFRelease, and CFGetRetainCount APIs. */ +/* + * PMTicketGetRetainCount() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetRetainCount( + PMTicketRef ticket, + CFIndex * retainCount); + + +/* + * PMTicketRetain() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketRetain(PMTicketRef ticket); + + +/* + * PMTicketRelease() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketRelease(PMTicketRef ticket); + + + +/* + * PMTicketReleaseAndClear() + * + * Discussion: + * PMTicketReleaseAndClear does the same thing as PMTicketRelease + * except that it sets the passed in pointer to NULL, which we think + * is good programming practice. Other references to the ticket may + * still be valid, but this one is no longer expected to be used. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketReleaseAndClear(PMTicketRef * ticket); + + + + +/* + * PMTicketGetLockedState() + * + * Discussion: + * Tickets may be locked by the printing system, so we provide a + * function to determine if the ticket is indeed locked. Any + * attempted changes to a locked ticket will result in + * "kPMTicketLocked" error. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetLockedState( + PMTicketRef ticket, + Boolean * lockedState); + + + +/* + * PMTicketConfirmTicket() + * + * Discussion: + * To confirm that we have a real ticket, this short function gets + * called. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketConfirmTicket(PMTicketRef ticket); + + + +/* + * PMTicketValidate() + * + * Discussion: + * We validate an entire ticket by calling our PMTicketValidate + * function, passing a template which contains constraints for all + * the values in the ticket. Those entries in the ticket that don't + * have constraints will not be checked, so developers can add their + * own custom data. For now we have to verify a single ticket at a + * time. Future updates will allow the caller to confirm an entire + * tree of tickets. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketValidate( + PMTicketRef ticket, + PMTemplateRef verifyingTemplate, + CFArrayRef * invalidItems); + + + +/* A couple of utility functions to find out what type of ticket is references, as well */ +/* as access to the allocator function passed in for a ticket. We also provide a function */ +/* to check the API version for a ticket, to protect against future conversion problems */ +/* from old to new tickets. */ +/* + * PMTicketGetType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetType( + PMTicketRef ticket, + CFStringRef * ticketType); + + +/* + * PMTicketGetEnumType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetEnumType( + PMTicketRef ticket, + PMTicketType * ticketType); + + +/* + * PMTicketGetAllocator() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetAllocator( + PMTicketRef ticket, + CFAllocatorRef * allocator); + + +/* + * PMTicketGetAPIVersion() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetAPIVersion( + PMTicketRef ticket, + CFStringRef * apiVersion); + + + +/* To store a Ticket object it needs to be converted to XML, a serialization that */ +/* creates human readable text. If the data is to be written to file anyway, a second */ +/* function is provided to go "all the way." */ +/* + * PMTicketToXML() + * + * Discussion: + * Convert to XML + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketToXML( + PMTicketRef ticket, + CFDataRef * anXMLTicket); + + +/* + * PMTicketWriteXMLToFile() + * + * Discussion: + * Convert to XML and write to file + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketWriteXMLToFile( + PMTicketRef ticket, + const char * path); + + +/* + * PMTicketWriteXML() + * + * Discussion: + * Convert to XML and write to FILE stream + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketWriteXML( + PMTicketRef ticket, + FILE * xmlFile); + + +/* + * PMXMLToTicket() + * + * Discussion: + * Convert from XML + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMXMLToTicket( + CFAllocatorRef allocator, + CFDataRef anXMLTicket, + PMTicketRef * ticket, + CFStringRef * conversionError); + + +/* + * PMTicketReadXMLFromFile() + * + * Discussion: + * Read from XML file + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketReadXMLFromFile( + CFAllocatorRef allocator, + const char * path, + PMTicketRef * ticket, + CFStringRef * errorString); + + + +/* To add an item to a ticket, the "SetItem" call for the specific data type is used whenever */ +/* possible. This adds a new item if one doesn't exist and updates a previous item if it */ +/* already exists. The "locked" field will determine if subsequent updates are allowed. */ +/* Strings: */ +/* CFString */ +/* + * PMTicketSetCFString() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCFString( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + CFStringRef item, + Boolean locked); + + +/* Pascal String */ +/* + * PMTicketSetPString() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetPString( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + ConstStringPtr value, + Boolean locked); + + +/* 'C' String */ +/* + * PMTicketSetCString() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCString( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + const char * value, + Boolean locked); + + +/* Array of 'C' Strings */ +/* + * PMTicketSetCStringArray() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCStringArray( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + const char ** cStringArray, + UInt32 count, + Boolean locked); + + + +/* Numbers: */ +/* CFNumber */ +/* + * PMTicketSetCFNumber() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCFNumber( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + CFNumberRef item, + Boolean locked); + + +/* SInt32 */ +/* + * PMTicketSetSInt32() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetSInt32( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + SInt32 value, + Boolean locked); + + +/* Array of SInt32 */ +/* + * PMTicketSetSInt32Array() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetSInt32Array( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + const SInt32 * sInt32Array, + UInt32 count, + Boolean locked); + + +/* UInt32 */ +/* NOTE: The underlying code uses SInt32s in the CF code, so this function can't set -1 */ +/* as the largest unsigned number. Please avoid setting the high bit */ +/* + * PMTicketSetUInt32() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetUInt32( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + UInt32 value, + Boolean locked); + + +/* Array of UInt32 */ +/* NOTE: The underlying code uses SInt32s in the CF code, so this function can't set -1 */ +/* as the largest unsigned number. Please avoid setting the high bit */ +/* + * PMTicketSetUInt32Array() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetUInt32Array( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + const UInt32 * uInt32Array, + UInt32 count, + Boolean locked); + + +/* Double */ +/* + * PMTicketSetDouble() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetDouble( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + double value, + Boolean locked); + + +/* Array of doubles */ +/* + * PMTicketSetDoubleArray() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetDoubleArray( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + const double * doubleArray, + UInt32 count, + Boolean changeable); + + +/* PMResolution - Array of 2 Doubles */ +/* + * PMTicketSetPMResolution() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetPMResolution( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + PMResolution * value, + Boolean locked); + + +/* Array of PMResolution */ +/* + * PMTicketSetPMResolutionArray() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetPMResolutionArray( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + PMResolution * pmResolutionArray, + UInt32 count, + Boolean locked); + + +/* PMRect - Array of 4 Doubles */ +/* + * PMTicketSetPMRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetPMRect( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + PMRect * value, + Boolean locked); + + +/* Array of PMRects */ +/* + * PMTicketSetPMRectArray() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetPMRectArray( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + PMRect * pmRectArray, + UInt32 count, + Boolean locked); + + +/* Raw Data */ +/* CFData */ +/* + * PMTicketSetCFData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCFData( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + CFDataRef item, + Boolean locked); + + +/* UInt8 - 'C' Bytes */ +/* + * PMTicketSetBytes() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetBytes( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + const UInt8 * data, + UInt32 size, + Boolean locked); + + +/* Booleans */ +/* CFBoolean */ +/* + * PMTicketSetCFBoolean() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCFBoolean( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + CFBooleanRef item, + Boolean locked); + + +/* 'C' Boolean */ +/* + * PMTicketSetBoolean() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetBoolean( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + Boolean value, + Boolean locked); + + + +/* Dates */ +/* + * PMTicketSetCFDate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCFDate( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + CFDateRef item, + Boolean locked); + + +/* Arrays */ +/* + * PMTicketSetCFArray() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCFArray( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + CFArrayRef item, + Boolean locked); + + +/* Dictionaries */ +/* + * PMTicketSetCFDictionary() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetCFDictionary( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + CFDictionaryRef item, + Boolean locked); + + +/* Templates, which are defined to be opaque. */ +/* + * PMTicketSetTemplate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetTemplate( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + PMTemplateRef item, + Boolean locked); + + +/* Generic CF Type */ +/* + * PMTicketSetItem() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetItem( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key, + CFTypeRef item, + Boolean locked); + + + +/* + * PMTicketSetMetaItem() + * + * Discussion: + * To add an item that doesn't need to be stored in the XML file, + * use the PMTicketSetMetaItem() call. It allows simple addition of + * an item, but that item won't be written to XML when the rest of + * the ticket is stored. By definition, all meta items are not + * locked, simply because we have no easy mechanism for keeping + * track of a locked state for a meta item. Our intent is to allow a + * caller to add items temporarily to a ticket, perhaps to keep + * track of the "default" ticket in a list of tickets, or the + * "current" paper info in a list of papers. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetMetaItem( + PMTicketRef ticket, + CFStringRef key, + CFTypeRef item); + + + +/* + * PMTicketFillFromArray() + * + * Discussion: + * Convert an array of static item structures into entries for a + * ticket and add them one at a time to the ticket. Could fail part + * way through. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketFillFromArray( + PMTicketRef ticket, + CFStringRef clientID, + const PMTicketItemStruct * items, + UInt32 itemCount); + + + +/* + * PMTicketCopyItem() + * + * Discussion: + * If an item must be copied from one ticket to another, use the + * "CopyItem" call to make the simple transfer. This will update the + * recorded date and client ID for the item. The "locked" field will + * determine if subsequent updates may be made. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketCopyItem( + PMTicketRef sourceTicket, + PMTicketRef destTicket, + CFStringRef clientID, + CFStringRef key, + Boolean locked); + + + +/* A couple of functions that will help in managing the "locked" state of any ticket */ +/* item. These functions only work for items directly stored in the current ticket, not */ +/* for items in sub-tickets. */ +/* + * PMTicketIsItemLocked() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketIsItemLocked( + PMTicketRef ticket, + CFStringRef key, + Boolean * locked); + + +/* + * PMTicketLockItem() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketLockItem( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key); + + +/* + * PMTicketUnlockItem() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketUnlockItem( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key); + + + +/* + * PMTicketDeleteItem() + * + * Discussion: + * Disable an item using PMTicketDelete. Future callers will see + * "ItemNotFound" errors. This call actually tags a new set of + * structures to the end of an item's dictionary, in order to keep a + * history of the item. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketDeleteItem( + PMTicketRef ticket, + CFStringRef clientID, + CFStringRef key); + + +/* + * PMTicketReleaseItem() + * + * Discussion: + * Release an item (quite different from delete) when you want it + * completely removed from the ticket. This can only be done if the + * item is unlocked. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketReleaseItem( + PMTicketRef ticket, + CFStringRef key); + + +/* + * PMTicketContainsItem() + * + * Discussion: + * Fetching an item back out of the ticket requires the "GetItem" + * call for the particular type of data you're fetching. In some + * cases, the caller doesn't know what type of data is being + * returned, so we have a generic "GetItem" call, but for all other + * cases developers are encouraged to use the specific call for the + * data they need, thus enabling type checking and reducing errors. + * Returns true if item exists. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( Boolean ) +PMTicketContainsItem( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key); + + +/* Strings */ +/* CFString */ +/* + * PMTicketGetCFString() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetCFString( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + CFStringRef * item); + + +/* Pascal String */ +/* + * PMTicketGetPString() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetPString( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + UInt32 bufferSize, + CFStringEncoding encoding, + StringPtr value); + + +/* 'C' String */ +/* + * PMTicketGetCString() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetCString( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + UInt32 bufferSize, + CFStringEncoding encoding, + char * value); + + + +/* Numbers */ +/* CFNumber */ +/* + * PMTicketGetCFNumber() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetCFNumber( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + CFNumberRef * item); + + +/* SInt32 */ +/* + * PMTicketGetSInt32() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetSInt32( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + SInt32 * value); + + +/* UInt32 */ +/* + * PMTicketGetUInt32() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetUInt32( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + UInt32 * value); + + +/* Double */ +/* + * PMTicketGetDouble() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetDouble( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + double * value); + + +/* PMResolution - Array of 2 doubles */ +/* + * PMTicketGetPMResolution() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetPMResolution( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + PMResolution * res); + + +/* + * PMTicketGetIndexPMResolution() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetIndexPMResolution( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + UInt32 index, + PMResolution * res); + + +/* PMRect - Array of 4 doubles */ +/* + * PMTicketGetPMRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetPMRect( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + PMRect * value); + + + +/* Raw Data */ +/* CFData */ +/* + * PMTicketGetCFData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetCFData( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + CFDataRef * item); + + +/* UInt8 - 'C' Bytes */ +/* NOTE: Caller is expected to call twice if size is unknown, passing null for data pointer */ +/* and a valid pointer for the size before allocating space and calling back with both pointers */ +/* set, this time with valid data pointer and valid size pointer pointing to # of bytes requested. */ +/* + * PMTicketGetBytes() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetBytes( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + UInt8 * data, + UInt32 * size); + + +/* Booleans */ +/* CFBoolean */ +/* + * PMTicketGetCFBoolean() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetCFBoolean( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + CFBooleanRef * item); + + +/* 'C' Boolean */ +/* + * PMTicketGetBoolean() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetBoolean( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + Boolean * value); + + +/* Dates */ +/* + * PMTicketGetCFDate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetCFDate( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + CFDateRef * item); + + +/* Non-numeric Arrays */ +/* + * PMTicketGetCFArray() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetCFArray( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + CFArrayRef * item); + + +/* Dictionaries */ +/* + * PMTicketGetCFDictionary() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetCFDictionary( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + CFDictionaryRef * item); + + +/* PMTemplates, which are defined to be opaque. */ +/* + * PMTicketCreateTemplate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketCreateTemplate( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + PMTemplateRef * item); + + + +/* The generic calls for regular items and meta items. See notes on "SetMetaItem" for more details. */ +/* + * PMTicketGetItem() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetItem( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFStringRef key, + CFTypeRef * item); + + +/* Meta items don't get saved to XML. */ +/* + * PMTicketGetMetaItem() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetMetaItem( + PMTicketRef ticket, + CFStringRef key, + CFTypeRef * item); + + + +/* Any ticket can contain another ticket, allowing us to store multiple PageFormat tickets */ +/* (one for each page) and multiple Document Info tickets (for multi-document jobs). The following */ +/* functions allow us to put a ticket into another ticket as a sub-ticket, and retreive it */ +/* later on. */ +/* + * PMTicketSetTicket() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketSetTicket( + PMTicketRef ticket, + PMTicketRef ticketToAdd, + UInt32 index); + + +/* + * PMTicketContainsTicket() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketContainsTicket( + PMTicketRef ticket, + CFStringRef requestedType, + UInt32 index, + Boolean * exists); + + +/* + * PMTicketGetTicket() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetTicket( + PMTicketRef ticket, + CFStringRef requestedType, + UInt32 index, + PMTicketRef * retreivedTicket); + + +/* + * PMTicketRemoveTicket() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketRemoveTicket( + PMTicketRef ticket, + CFStringRef typeToRemove, + UInt32 index); + + +/* + * PMTicketGetPPDDict() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +PMTicketGetPPDDict( + PMTicketRef ticket, + UInt32 nodeIndex1, + UInt32 nodeIndex2, + CFMutableDictionaryRef * dict); + + + + + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif |