summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/PMPrintingDialogExtensions.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/PMPrintingDialogExtensions.h')
-rw-r--r--common/quicktime_win32/PMPrintingDialogExtensions.h232
1 files changed, 232 insertions, 0 deletions
diff --git a/common/quicktime_win32/PMPrintingDialogExtensions.h b/common/quicktime_win32/PMPrintingDialogExtensions.h
new file mode 100644
index 0000000..98db1b0
--- /dev/null
+++ b/common/quicktime_win32/PMPrintingDialogExtensions.h
@@ -0,0 +1,232 @@
+/*
+ File: PMPrintingDialogExtensions.h
+
+ Contains: Mac OS X Printing Manager Print Dialog Extension 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 __PMAPPLICATION__
+#include <PMApplication.h>
+#endif
+
+#ifndef __PMTICKET__
+#include <PMTicket.h>
+#endif
+
+#ifndef __PMPLUGINHEADER__
+#include <PMPluginHeader.h>
+#endif
+
+
+
+#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
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Constants
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*
+Feature request flags...
+*/
+typedef UInt32 PMPDEFlags;
+enum {
+ kPMPDENoFlags = 0x00000000, /* Empty flag word. */
+ kPMPDENoSummary = 0x00000001, /* Won't provide summary string. */
+ kPMPDEAllFlags = (unsigned long)0xFFFFFFFF /* All flags set.*/
+};
+
+/*
+ Parameters for printing events:
+
+ kEventPrintingPDEResize
+ --> kEventParamDirectObject typeControlRef
+ --> kEventParamPDEHeight typeUInt32
+
+ When sent to the this event is sent to the PageSetup or Print Dialog, the PDE pane
+ will be resized to match the new height. The kEventParamDirectObject needs to be the
+ embedderUserPane that is passed into Initialize
+*/
+enum {
+ kEventClassPrinting = FOUR_CHAR_CODE('prnt'),
+ kEventPrintingPDEResize = FOUR_CHAR_CODE('rqsz'),
+ kEventParamPDEHeight = FOUR_CHAR_CODE('pdeh')
+};
+
+/*
+Define Printing Dialog Extensions CFPlugIn constants.
+
+First, the base string for all constants relating to Printing Dialog Extensions.
+*/
+#define kPMPDEBase "com.apple.printing.pde"
+/*
+Define the Type and Interface keys for Printing Dialog Extensions.
+*/
+#define kPMPDEAppType CFSTR("com.apple.printing.pde.app")
+#define KPMPDEPrinterType CFSTR("com.apple.printing.pde.pm")
+#define kPMPDEInterface CFSTR("com.apple.printing.pde.ui")
+/*
+Define the Kind IDs for Universal and Standard Printing Dialog Extensions.
+*/
+/* Implemented Universal */
+#define kPMPageAttributesKindID CFSTR("com.apple.print.pde.PageAttributesKind")
+#define kPMCopiesAndPagesPDEKindID CFSTR("com.apple.print.pde.CopiesAndPagesKind")
+#define kPMLayoutPDEKindID CFSTR("com.apple.print.pde.LayoutUserOptionKind")
+#define kPMOutputOptionsPDEKindID CFSTR("com.apple.print.pde.OutputOptionsKind")
+#define kPMDuplexPDEKindID CFSTR("com.apple.print.pde.DuplexKind")
+/* Unimplemented Universal */
+#define kPMCoverPagePDEKindID CFSTR("com.apple.print.pde.CoverPageKind")
+#define kPMPaperSourcePDEKindID CFSTR("com.apple.print.pde.PaperSourceKind")
+#define kPMPriorityPDEKindID CFSTR("com.apple.print.pde.PriorityKind")
+#define kPMRotationScalingPDEKindID CFSTR("com.apple.print.pde.RotationScalingKind")
+/* Implemented Standard */
+#define kPMPaperFeedPDEKindID CFSTR("com.apple.print.pde.PaperFeedKind")
+/* Unimplemented Standard */
+#define kPMColorPDEKindID CFSTR("com.apple.print.pde.ColorKind")
+#define kPMQualityMediaPDEKindID CFSTR("com.apple.print.pde.QualityMediaPDEKind")
+/* These constants are used by PDE's to obtain the PMTicketRef data for the corresponding
+ piece of data.
+*/
+#define kPDE_PMPrintSettingsRef CFSTR("PMPrintSettingsTicket")
+#define kPDE_PMPageFormatRef CFSTR("PMPageFormatTicket")
+#define kPDE_PMJobTemplateRef CFSTR("PMJobTemplateTicket")
+#define kPDE_PMPrinterInfoRef CFSTR("PMPrinterInfoTicket")
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Type Definitions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+/*
+Basic types...
+*/
+typedef struct OpaquePMPDERef* PMPDERef;
+typedef struct OpaquePMPDEContext* PMPDEContext;
+/* Just for testing this .... */
+/*#define TEST_PLUGINS_LINKED_IN 1 */
+/* Type and Interface IDs. */
+#define kDialogExtensionIntfIDStr CFSTR("A996FD7E-B738-11D3-8519-0050E4603277")
+#define kGeneralPageSetupDialogTypeIDStr CFSTR("6E6ED964-B738-11D3-952F-0050E4603277")
+#define kGeneralPrintDialogTypeIDStr CFSTR("C1BF838E-B72A-11D3-9644-0050E4603277")
+#define kAppPageSetupDialogTypeIDStr CFSTR("B9A0DA98-E57F-11D3-9E83-0050E4603277")
+#define kAppPrintDialogTypeIDStr CFSTR("BCB07250-E57F-11D3-8CA6-0050E4603277")
+#define kPrinterModuleTypeIDStr CFSTR("BDB091F4-E57F-11D3-B5CC-0050E4603277")
+/* Versioning info. */
+/* Update following values when you append new APIs to the end of interface: */
+#define kPDEBuildVersionMajor 1
+#define kPDEBuildVersionMinor 0
+/* Update following values when you obsolete some APIs in the interface. */
+/* Since this will break the upward compatibility chain such practice is */
+/* strongly discouraged - if it can be helped at all. */
+#define kPDEBaseVersionMajor 1
+#define kPDEBaseVersionMinor 0
+
+/* Interface layout - object and vtable: */
+typedef CALLBACK_API_C( OSStatus , PMPDEPrologueProcPtr )(PMPDEContext *context, OSType *creator, CFStringRef *userOptionKind, CFStringRef *title, UInt32 *maxH, UInt32 *maxV);
+typedef CALLBACK_API_C( OSStatus , PMPDEInitializeProcPtr )(PMPDEContext context, PMPDEFlags *flags, PMPDERef ref, ControlRef embedderUserPane, PMPrintSession printSession);
+typedef CALLBACK_API_C( OSStatus , PMPDESyncProcPtr )(PMPDEContext context, PMPrintSession printSession, Boolean reinitializePlugIn);
+typedef CALLBACK_API_C( OSStatus , PMPDEGetSummaryTextProcPtr )(PMPDEContext context, CFArrayRef *titleArray, CFArrayRef *summaryArray);
+typedef CALLBACK_API_C( OSStatus , PMPDEOpenProcPtr )(PMPDEContext context);
+typedef CALLBACK_API_C( OSStatus , PMPDECloseProcPtr )(PMPDEContext context);
+typedef CALLBACK_API_C( OSStatus , PMPDETerminateProcPtr )(PMPDEContext context, OSStatus status);
+struct PlugInIntfVTable {
+ /* ---- API 'IMMUTABLE' Begin: ----*/
+
+ /* The plugin header is required with all plugins.*/
+ /* This must lead object's layout.*/
+ PMPlugInHeader plugInHeader;
+
+ /* ---- API Version 1.0 Begin: ----*/
+
+ /* Entry points for Printing Dialog Extension modules...*/
+ PMPDEPrologueProcPtr Prologue;
+ PMPDEInitializeProcPtr Initialize;
+ PMPDESyncProcPtr Sync;
+ PMPDEGetSummaryTextProcPtr GetSummaryText;
+ PMPDEOpenProcPtr Open;
+ PMPDECloseProcPtr Close;
+ PMPDETerminateProcPtr Terminate;
+};
+typedef struct PlugInIntfVTable PlugInIntfVTable;
+struct PlugInIntf {
+ /* Plugin interface is an object containing vtable address:*/
+ PlugInIntfVTable * vtable;
+};
+typedef struct PlugInIntf PlugInIntf;
+/* Some commonly used routines used by PDEs */
+/*
+ * PMCreateLocalizedPaperSizeCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( CFStringRef )
+PMCreateLocalizedPaperSizeCFString(
+ PMTicketRef listofPaperTickets,
+ UInt16 paperToUse);
+
+
+/* Lower level version of the same function, this time passing the single PaperInfo.*/
+/*
+ * PMCreatePaperSizeCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.1 and later
+ */
+EXTERN_API_C( CFStringRef )
+PMCreatePaperSizeCFString(PMTicketRef selectedPaper);
+
+
+
+
+#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