summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/PMTemplate.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/PMTemplate.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/PMTemplate.h')
-rw-r--r--common/quicktime_win32/PMTemplate.h944
1 files changed, 944 insertions, 0 deletions
diff --git a/common/quicktime_win32/PMTemplate.h b/common/quicktime_win32/PMTemplate.h
new file mode 100644
index 0000000..8eda957
--- /dev/null
+++ b/common/quicktime_win32/PMTemplate.h
@@ -0,0 +1,944 @@
+/*
+ File: PMTemplate.h
+
+ Contains: Mac OS X Printing Manager Job Template 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 __PMTEMPLATE__
+#define __PMTEMPLATE__
+
+#ifndef __CORESERVICES__
+#include <CoreServices.h>
+#endif
+
+#ifndef __PMTICKET__
+#include <PMTicket.h>
+#endif
+
+
+
+
+/* An enum to distinguish between different kinds of template entries. Each entry in a template */
+/* has a specific type that allows us to determine what other fields and functions are available. */
+
+
+#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
+
+typedef SInt32 PMValueType;
+enum {
+ kPMValueUndefined = 0, /* Template Entry is unknown or undefined */
+ kPMValueBoolean = 1, /* A CFBoolean of value true or false. */
+ kPMValueData = 2, /* A CFData, raw data converted to CFData. Has a default value, but no other constraints */
+ kPMValueString = 3, /* A CFString. Has a default value, but no other constraints */
+ kPMValueSInt32 = 4, /* A CFNumber of long type. */
+ kPMValueSInt32Range = 5, /* A pair of CFNumbers, SInt32s, defining a range. */
+ kPMValueUInt32 = 6, /* A CFNumber of unsigned long type (which isn't actually defined) */
+ kPMValueUInt32Range = 7, /* A pair of CFNumber, UInt32s, defining a range. */
+ kPMValueDouble = 8, /* A CFNumber of double type. */
+ kPMValueDoubleRange = 9, /* A pair of CFNumbers, doubles, defining a range of values. */
+ kPMValuePMRect = 10, /* A CFArray of 4 CFNumbers, all doubles. */
+ kPMValueDate = 11, /* A CFDate, holding date and time. */
+ kPMValueArray = 12, /* A CFArray, holding an array of values. No way to constrain these. */
+ kPMValueDict = 13, /* A CFDictionary, which has a default, but no constraints. */
+ kPMValueTicket = 14 /* A PMTicket will require each key/value be identical - only works for list constraints. */
+};
+
+
+typedef SInt32 PMConstraintType;
+enum {
+ kPMConstraintUndefined = 0, /* Undefined, no constraint checking required. */
+ kPMConstraintRange = 1, /* Range has a CFArray of two values, both CFTypeRefs */
+ kPMConstraintList = 2, /* List has an array CFTypeRefs, listing possible values. DefaultValues are CFNumberRef (zero-based index into the list) */
+ kPMConstraintPrivate = 3 /* Private constraint, not checked by the system. */
+};
+
+
+/* A couple of keys are defined as special cases for the template code, only because it's */
+/* a flat structure and the Job ticket is possibly a hierarchy of tickets. We need to be */
+/* able to fetch the PaperInfo template information, but the Job Ticket has a separate */
+/* ticket, so there is no key defined for fetching PaperInfo ticket from the Job Ticket. */
+/* Will fetch the default value and constraint list for valid papers. */
+#define kPMTemplatePrelude "com.apple.print.TemplateSpecific"
+#define kPMPaperInfoListStr "com.apple.print.TemplateSpecific.PMTemplatePaperInfoTicket"
+#define kPMPaperInfoList CFSTR("com.apple.print.TemplateSpecific.PMTemplatePaperInfoTicket")
+
+/* The PMTemplateRef is defined in PMTicket.h to avoid circular references */
+
+/* Functions to create or delete a template */
+/*
+ * PMTemplateCreate()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateCreate(PMTemplateRef * newTemplate);
+
+
+/*
+ * PMTemplateDelete()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateDelete(PMTemplateRef * oldTemplate);
+
+
+
+/* Functions to send to and from XML. Also a function to tell us if the template is locked and */
+/* can't be modified. */
+/*
+ * PMTemplateCreateXML()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateCreateXML(
+ PMTemplateRef srcTemplate,
+ CFDataRef * xmlData);
+
+
+/*
+ * PMTemplateLoadFromXML()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateLoadFromXML(
+ CFDataRef srcData,
+ PMTemplateRef * destTemplate);
+
+
+/*
+ * PMTemplateIsLocked()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateIsLocked(
+ PMTemplateRef srcTemplate,
+ Boolean * locked);
+
+
+
+/* Functions to add entries in a template. Each entry describes a value type and constraint */
+/* type as well as default and constraint values for a specific key. This key must match the */
+/* key we wish to validate in a PMTicket. */
+/*
+ * PMTemplateMakeFullEntry()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateMakeFullEntry(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMValueType valueType,
+ PMConstraintType constraintType,
+ CFTypeRef defaultValue,
+ CFTypeRef constraintValue);
+
+
+/* This function allows a caller to create the template entry in a series of calls, first to */
+/* establish what type of entry it is and then later to set default and constraint values. This */
+/* is especially useful for direct (non-cf) access to create template entries. There are various */
+/* specialized functions for adding the default and cosntraint values with standard "C" types. */
+/*
+ * PMTemplateMakeEntry()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateMakeEntry(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMValueType valueType,
+ PMConstraintType constraintType);
+
+
+
+/* The following functions update an already created entry. */
+/*
+ * PMTemplateSetCFDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetCFDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFTypeRef defaultValue);
+
+
+/*
+ * PMTemplateSetSInt32DefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetSInt32DefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ SInt32 defaultValue);
+
+
+/*
+ * PMTemplateSetSInt32RangeDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetSInt32RangeDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ SInt32 min,
+ SInt32 max);
+
+
+/*
+ * PMTemplateSetBooleanDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetBooleanDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ Boolean defaultValue);
+
+
+/*
+ * PMTemplateSetDoubleDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetDoubleDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ double defaultValue);
+
+
+/*
+ * PMTemplateSetDoubleRangeDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetDoubleRangeDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ double min,
+ double max);
+
+
+/*
+ * PMTemplateSetCFDataDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetCFDataDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFDataRef defaultValue);
+
+
+/*
+ * PMTemplateSetPMRectDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetPMRectDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMRect * defaultValue);
+
+
+/*
+ * PMTemplateSetPMTicketDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetPMTicketDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMTicketRef defaultValue);
+
+
+/* Functions to allow various constraints to be set up. */
+/*
+ * PMTemplateSetCFArrayConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetCFArrayConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFArrayRef constraintValue);
+
+
+/*
+ * PMTemplateSetCFRangeConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetCFRangeConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFTypeRef min,
+ CFTypeRef max);
+
+
+/*
+ * PMTemplateSetSInt32RangeConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetSInt32RangeConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ SInt32 min,
+ SInt32 max);
+
+
+/* Note - if the default value is a range, then the constraint should be a pair */
+/* of ranges. */
+/*
+ * PMTemplateSetSInt32RangesConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetSInt32RangesConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ SInt32 minForMin,
+ SInt32 maxForMin,
+ SInt32 minForMax,
+ SInt32 maxForMax);
+
+
+/*
+ * PMTemplateSetDoubleRangeConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetDoubleRangeConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ double min,
+ double max);
+
+
+/*
+ * PMTemplateSetDoubleRangesConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetDoubleRangesConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ double minForMin,
+ double maxForMin,
+ double minForMax,
+ double maxForMax);
+
+
+
+/* A List constraint could be a simple list of SInt32s. */
+/*
+ * PMTemplateSetSInt32ListConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetSInt32ListConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ int listSize,
+ SInt32 * sint32List);
+
+
+/* Or a list of doubles. */
+/*
+ * PMTemplateSetDoubleListConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetDoubleListConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ int listSize,
+ double * doubleList);
+
+
+/* A list of rectangles. */
+/*
+ * PMTemplateSetPMRectListConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetPMRectListConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ int listSize,
+ PMRect * rectList);
+
+
+/* Or a ticket list. */
+/*
+ * PMTemplateSetPMTicketListConstraint()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateSetPMTicketListConstraint(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMTicketRef listTicket);
+
+
+
+/* Boolean constraints don't need to be set - the constraint type is enough. */
+/* Accessors for reaching specific template entry info based on the key passed in. */
+/*
+ * PMTemplateGetValueType()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetValueType(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMValueType * valueType);
+
+
+/*
+ * PMTemplateGetConstraintType()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetConstraintType(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMConstraintType * constraintType);
+
+
+/* Fetch the various types of default values. */
+/*
+ * PMTemplateGetCFDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetCFDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFTypeRef * defaultValue);
+
+
+/*
+ * PMTemplateGetSInt32DefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetSInt32DefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ SInt32 * defaultValue);
+
+
+/*
+ * PMTemplateGetSInt32RangeDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetSInt32RangeDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ SInt32 * min,
+ SInt32 * max);
+
+
+/*
+ * PMTemplateGetBooleanDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetBooleanDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ Boolean * defaultValue);
+
+
+/*
+ * PMTemplateGetDoubleDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetDoubleDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ double * defaultValue);
+
+
+/*
+ * PMTemplateGetDoubleRangeDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetDoubleRangeDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ double * min,
+ double * max);
+
+
+/*
+ * PMTemplateGetCFDataDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetCFDataDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFDataRef * defaultValue);
+
+
+/*
+ * PMTemplateGetPMRectDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetPMRectDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMRect * defaultValue);
+
+
+/*
+ * PMTemplateGetPMTicketDefaultValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetPMTicketDefaultValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMTicketRef * defaultValue);
+
+
+/* Fetch the various flavors of constraint values. */
+/*
+ * PMTemplateGetCFArrayConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetCFArrayConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFArrayRef * constraintValue);
+
+
+/*
+ * PMTemplateGetCFRangeConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetCFRangeConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFTypeRef * min,
+ CFTypeRef * max);
+
+
+/*
+ * PMTemplateGetSInt32RangeConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetSInt32RangeConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ SInt32 * min,
+ SInt32 * max);
+
+
+/*
+ * PMTemplateGetSInt32RangesConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetSInt32RangesConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ SInt32 * minForMin,
+ SInt32 * maxForMin,
+ SInt32 * minForMax,
+ SInt32 * maxForMax);
+
+
+/*
+ * PMTemplateGetDoubleRangeConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetDoubleRangeConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ double * min,
+ double * max);
+
+
+/*
+ * PMTemplateGetDoubleRangesConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetDoubleRangesConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ double * minForMin,
+ double * maxForMin,
+ double * minForMax,
+ double * maxForMax);
+
+
+/* The following functions need to be called twice, first to determine the length of */
+/* the list and a second time, after allocating space, to actually fetch the list.*/
+/*
+ * PMTemplateGetSInt32ListConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetSInt32ListConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ int * listSize,
+ SInt32 * sint32List);
+
+
+/*
+ * PMTemplateGetDoubleListConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetDoubleListConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ int * listSize,
+ double * doubleList);
+
+
+/*
+ * PMTemplateGetPMRectListConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetPMRectListConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ int * listSize,
+ PMRect * rectList);
+
+
+/* The Ticket APIs support a "List Ticket" that can hold numerous other tickets, so there is */
+/* no need to allocate space for an array in this case. */
+/* Always returns length and list at one time. */
+/*
+ * PMTemplateGetListTicketConstraintValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateGetListTicketConstraintValue(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ PMTicketRef * listTicket);
+
+
+/* Remove an entry from our template. */
+/*
+ * PMTemplateRemoveEntry()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateRemoveEntry(
+ PMTemplateRef pmTemplate,
+ CFStringRef key);
+
+
+
+/* Validate a ticket item - passing in the key and the item data. */
+/*
+ * PMTemplateValidateItem()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateValidateItem(
+ PMTemplateRef pmTemplate,
+ CFStringRef key,
+ CFTypeRef item,
+ Boolean * validationResults);
+
+
+
+/* Move a set of template entries from one template to another. Any entry in the destination */
+/* template will be overwritten by an entry with the same key in the source template */
+/*
+ * PMTemplateMergeTemplates()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+PMTemplateMergeTemplates(
+ PMTemplateRef sourceTemplate,
+ PMTemplateRef destTemplate);
+
+
+/* NOTES:
+
+ A few comments about some special template entry types:
+
+ Rectangles - We assume a PMRect is four doubles. To verify a Rectangle, we allow the caller to
+ define a list of rectangles, of which one must match exactly, or, planned for the future, a
+ range constraint that defines the min and max for horizontal and vertical, as well as the
+ maximum width and height. For now, only a list of rectangles can be used to validate a rect.
+
+ Tickets - To facilitate validating a PaperInfo ticket, we provide a mechanism to construct a
+ list constraint for a ticket. A given ticket may then be validated by checking each key/value
+ pair to confirm that it holds exactly the same value as a ticket in the list. There won't be
+ any range checking for values within the ticket being validated, only a comparison with the
+ fixed values in the ticket list.
+
+ For other tickets, such as Print Settings, or Page Format, we call the validate functions to
+ confirm that each entry complies with the proper constraint in the template. This allows
+ for range constraints to be built for some entries, and list constraints for other entries.
+*/
+
+
+#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
+
+#endif /* __PMTEMPLATE__ */
+