Editions.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:24k
- /*
- File: Editions.h
-
- Contains: Edition Manager Interfaces.
-
- Version: Technology: System 7.5
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1989-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 __EDITIONS__
- #define __EDITIONS__
- #ifndef __MACTYPES__
- #include "MacTypes.h"
- #endif
- #ifndef __MIXEDMODE__
- #include "MixedMode.h"
- #endif
- #ifndef __FILES__
- #include "Files.h"
- #endif
- #ifndef __ALIASES__
- #include "Aliases.h"
- #endif
- #ifndef __DIALOGS__
- #include "Dialogs.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
- enum {
- /* resource types */
- rSectionType = FOUR_CHAR_CODE('sect'), /* ResType of saved SectionRecords */
- /* Finder types for edition files */
- kPICTEditionFileType = FOUR_CHAR_CODE('edtp'),
- kTEXTEditionFileType = FOUR_CHAR_CODE('edtt'),
- ksndEditionFileType = FOUR_CHAR_CODE('edts'),
- kUnknownEditionFileType = FOUR_CHAR_CODE('edtu'),
- kPublisherDocAliasFormat = FOUR_CHAR_CODE('alis'),
- kPreviewFormat = FOUR_CHAR_CODE('prvw'),
- kFormatListFormat = FOUR_CHAR_CODE('fmts')
- };
- enum {
- /* section types */
- stSubscriber = 0x01,
- stPublisher = 0x0A
- };
- enum {
- sumAutomatic = 0, /* subscriber update mode - Automatically */
- sumManual = 1, /* subscriber update mode - Manually */
- pumOnSave = 0, /* publisher update mode - OnSave */
- pumManual = 1 /* publisher update mode - Manually */
- };
- enum {
- kPartsNotUsed = 0,
- kPartNumberUnknown = -1
- };
- enum {
- kPreviewWidth = 120,
- kPreviewHeight = 120
- };
- enum {
- /* bits for formatsMask */
- kPICTformatMask = 1,
- kTEXTformatMask = 2,
- ksndFormatMask = 4
- };
- enum {
- /* pseudo-item hits for dialogHooks the first is for NewPublisher or NewSubscriber Dialogs */
- emHookRedrawPreview = 150, /* the following are for SectionOptions Dialog */
- emHookCancelSection = 160,
- emHookGoToPublisher = 161,
- emHookGetEditionNow = 162,
- emHookSendEditionNow = 162,
- emHookManualUpdateMode = 163,
- emHookAutoUpdateMode = 164
- };
- enum {
- /* the refcon field of the dialog record during a modalfilter or dialoghook contains one the following */
- emOptionsDialogRefCon = FOUR_CHAR_CODE('optn'),
- emCancelSectionDialogRefCon = FOUR_CHAR_CODE('cncl'),
- emGoToPubErrDialogRefCon = FOUR_CHAR_CODE('gerr')
- };
- enum {
- kFormatLengthUnknown = -1
- };
- /* one byte, stSubscriber or stPublisher */
- typedef SignedByte SectionType;
- /* seconds since 1904 */
- typedef unsigned long TimeStamp;
- /* similar to ResType */
- typedef FourCharCode FormatType;
- /* used in Edition I/O */
- typedef Handle EditionRefNum;
- /* update modes */
- /* sumAutomatic, pumSuspend, etc */
- typedef short UpdateMode;
- typedef struct SectionRecord SectionRecord;
- typedef SectionRecord * SectionPtr;
- typedef SectionPtr * SectionHandle;
- struct SectionRecord {
- SignedByte version; /* always 0x01 in system 7.0 */
- SectionType kind; /* stSubscriber or stPublisher */
- UpdateMode mode; /* auto or manual */
- TimeStamp mdDate; /* last change in document */
- long sectionID; /* app. specific, unique per document */
- long refCon; /* application specific */
- AliasHandle alias; /* handle to Alias Record */
- long subPart; /* which part of container file */
- SectionHandle nextSection; /* for linked list of app's Sections */
- Handle controlBlock; /* used internally */
- EditionRefNum refNum; /* used internally */
- };
- struct EditionContainerSpec {
- FSSpec theFile;
- ScriptCode theFileScript;
- long thePart;
- Str31 thePartName;
- ScriptCode thePartScript;
- };
- typedef struct EditionContainerSpec EditionContainerSpec;
- typedef EditionContainerSpec * EditionContainerSpecPtr;
- struct EditionInfoRecord {
- TimeStamp crDate; /* date EditionContainer was created */
- TimeStamp mdDate; /* date of last change */
- OSType fdCreator; /* file creator */
- OSType fdType; /* file type */
- EditionContainerSpec container; /* the Edition */
- };
- typedef struct EditionInfoRecord EditionInfoRecord;
- struct NewPublisherReply {
- Boolean canceled; /* O */
- Boolean replacing;
- Boolean usePart; /* I */
- SInt8 filler;
- Handle preview; /* I */
- FormatType previewFormat; /* I */
- EditionContainerSpec container; /* I/O */
- };
- typedef struct NewPublisherReply NewPublisherReply;
- struct NewSubscriberReply {
- Boolean canceled; /* O */
- SignedByte formatsMask;
- EditionContainerSpec container; /*I/O*/
- };
- typedef struct NewSubscriberReply NewSubscriberReply;
- struct SectionOptionsReply {
- Boolean canceled; /* O */
- Boolean changed; /* O */
- SectionHandle sectionH; /* I */
- ResType action; /* O */
- };
- typedef struct SectionOptionsReply SectionOptionsReply;
- typedef CALLBACK_API( Boolean , ExpModalFilterProcPtr )(DialogPtr theDialog, EventRecord *theEvent, short itemOffset, short *itemHit, Ptr yourDataPtr);
- typedef CALLBACK_API( short , ExpDlgHookProcPtr )(short itemOffset, short itemHit, DialogPtr theDialog, Ptr yourDataPtr);
- typedef STACK_UPP_TYPE(ExpModalFilterProcPtr) ExpModalFilterUPP;
- typedef STACK_UPP_TYPE(ExpDlgHookProcPtr) ExpDlgHookUPP;
- #if OPAQUE_UPP_TYPES
- #if CALL_NOT_IN_CARBON
- EXTERN_API(ExpModalFilterUPP)
- NewExpModalFilterUPP (ExpModalFilterProcPtr userRoutine);
- EXTERN_API(ExpDlgHookUPP)
- NewExpDlgHookUPP (ExpDlgHookProcPtr userRoutine);
- EXTERN_API(void)
- DisposeExpModalFilterUPP (ExpModalFilterUPP userUPP);
- EXTERN_API(void)
- DisposeExpDlgHookUPP (ExpDlgHookUPP userUPP);
- EXTERN_API(Boolean)
- InvokeExpModalFilterUPP (DialogPtr theDialog,
- EventRecord * theEvent,
- short itemOffset,
- short * itemHit,
- Ptr yourDataPtr,
- ExpModalFilterUPP userUPP);
- EXTERN_API(short)
- InvokeExpDlgHookUPP (short itemOffset,
- short itemHit,
- DialogPtr theDialog,
- Ptr yourDataPtr,
- ExpDlgHookUPP userUPP);
- #endif /* CALL_NOT_IN_CARBON */
- #else
- enum { uppExpModalFilterProcInfo = 0x0000FBD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes) */
- enum { uppExpDlgHookProcInfo = 0x00003EA0 }; /* pascal 2_bytes Func(2_bytes, 2_bytes, 4_bytes, 4_bytes) */
- #define NewExpModalFilterUPP(userRoutine) (ExpModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppExpModalFilterProcInfo, GetCurrentArchitecture())
- #define NewExpDlgHookUPP(userRoutine) (ExpDlgHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppExpDlgHookProcInfo, GetCurrentArchitecture())
- #define DisposeExpModalFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeExpDlgHookUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeExpModalFilterUPP(theDialog, theEvent, itemOffset, itemHit, yourDataPtr, userUPP) (Boolean)CALL_FIVE_PARAMETER_UPP((userUPP), uppExpModalFilterProcInfo, (theDialog), (theEvent), (itemOffset), (itemHit), (yourDataPtr))
- #define InvokeExpDlgHookUPP(itemOffset, itemHit, theDialog, yourDataPtr, userUPP) (short)CALL_FOUR_PARAMETER_UPP((userUPP), uppExpDlgHookProcInfo, (itemOffset), (itemHit), (theDialog), (yourDataPtr))
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewExpModalFilterProc(userRoutine) NewExpModalFilterUPP(userRoutine)
- #define NewExpDlgHookProc(userRoutine) NewExpDlgHookUPP(userRoutine)
- #define CallExpModalFilterProc(userRoutine, theDialog, theEvent, itemOffset, itemHit, yourDataPtr) InvokeExpModalFilterUPP(theDialog, theEvent, itemOffset, itemHit, yourDataPtr, userRoutine)
- #define CallExpDlgHookProc(userRoutine, itemOffset, itemHit, theDialog, yourDataPtr) InvokeExpDlgHookUPP(itemOffset, itemHit, theDialog, yourDataPtr, userRoutine)
- typedef SInt8 FormatIOVerb;
- enum {
- ioHasFormat = 0,
- ioReadFormat = 1,
- ioNewFormat = 2,
- ioWriteFormat = 3
- };
- typedef SInt8 EditionOpenerVerb;
- enum {
- eoOpen = 0,
- eoClose = 1,
- eoOpenNew = 2,
- eoCloseNew = 3,
- eoCanSubscribe = 4
- };
- struct FormatIOParamBlock {
- long ioRefNum;
- FormatType format;
- long formatIndex;
- unsigned long offset;
- Ptr buffPtr;
- unsigned long buffLen;
- };
- typedef struct FormatIOParamBlock FormatIOParamBlock;
- typedef struct EditionOpenerParamBlock EditionOpenerParamBlock;
- typedef CALLBACK_API( short , FormatIOProcPtr )(FormatIOVerb selector, FormatIOParamBlock *PB);
- typedef CALLBACK_API( short , EditionOpenerProcPtr )(EditionOpenerVerb selector, EditionOpenerParamBlock *PB);
- typedef STACK_UPP_TYPE(FormatIOProcPtr) FormatIOUPP;
- typedef STACK_UPP_TYPE(EditionOpenerProcPtr) EditionOpenerUPP;
- struct EditionOpenerParamBlock {
- EditionInfoRecord info;
- SectionHandle sectionH;
- const FSSpec * document;
- OSType fdCreator;
- long ioRefNum;
- FormatIOUPP ioProc;
- Boolean success;
- SignedByte formatsMask;
- };
- #if OPAQUE_UPP_TYPES
- #if CALL_NOT_IN_CARBON
- EXTERN_API(FormatIOUPP)
- NewFormatIOUPP (FormatIOProcPtr userRoutine);
- EXTERN_API(EditionOpenerUPP)
- NewEditionOpenerUPP (EditionOpenerProcPtr userRoutine);
- #endif /* CALL_NOT_IN_CARBON */
- #else
- enum { uppFormatIOProcInfo = 0x00000360 }; /* pascal 2_bytes Func(1_byte, 4_bytes) */
- enum { uppEditionOpenerProcInfo = 0x00000360 }; /* pascal 2_bytes Func(1_byte, 4_bytes) */
- #define NewFormatIOUPP(userRoutine) (FormatIOUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFormatIOProcInfo, GetCurrentArchitecture())
- #define NewEditionOpenerUPP(userRoutine) (EditionOpenerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppEditionOpenerProcInfo, GetCurrentArchitecture())
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewFormatIOProc(userRoutine) NewFormatIOUPP(userRoutine)
- #define NewEditionOpenerProc(userRoutine) NewEditionOpenerUPP(userRoutine)
- /*
- Section events now arrive in the message buffer using the AppleEvent format.
- The direct object parameter is an aeTemporaryIDParamType ('tid '). The temporary
- ID's type is rSectionType ('sect') and the 32-bit value is a SectionHandle.
- The following is a sample buffer
-
- name offset contents
- ---- ------ --------
- header 0 'aevt'
- majorVersion 4 0x01
- minorVersion 6 0x01
- endOfMetaData 8 ';;;;'
- directObjKey 12 '----'
- paramType 16 'tid '
- paramLength 20 0x0008
- tempIDType 24 'sect'
- tempID 28 the SectionHandle <-- this is want you want
- */
- enum {
- sectionEventMsgClass = FOUR_CHAR_CODE('sect'),
- sectionReadMsgID = FOUR_CHAR_CODE('read'),
- sectionWriteMsgID = FOUR_CHAR_CODE('writ'),
- sectionScrollMsgID = FOUR_CHAR_CODE('scrl'),
- sectionCancelMsgID = FOUR_CHAR_CODE('cncl')
- };
- enum {
- currentEditionMgrVers = 0x0011
- };
- #if TARGET_RT_MAC_CFM
- #define InitEditionPack() InitEditionPackVersion(currentEditionMgrVers)
- #else
- #if CALL_NOT_IN_CARBON
- EXTERN_API( OSErr )
- InitEditionPack (void) FIVEWORDINLINE(0x3F3C, 0x0011, 0x303C, 0x0100, 0xA82D);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* TARGET_RT_MAC_CFM */
- #if CALL_NOT_IN_CARBON
- EXTERN_API( OSErr )
- InitEditionPackVersion (short curEditionMgrVers) THREEWORDINLINE(0x303C, 0x0100, 0xA82D);
- EXTERN_API( OSErr )
- NewSection (const EditionContainerSpec * container,
- const FSSpec * sectionDocument, /* can be NULL */
- SectionType kind,
- long sectionID,
- UpdateMode initalMode,
- SectionHandle * sectionH) THREEWORDINLINE(0x303C, 0x0A02, 0xA82D);
- EXTERN_API( OSErr )
- RegisterSection (const FSSpec * sectionDocument,
- SectionHandle sectionH,
- Boolean * aliasWasUpdated) THREEWORDINLINE(0x303C, 0x0604, 0xA82D);
- EXTERN_API( OSErr )
- UnRegisterSection (SectionHandle sectionH) THREEWORDINLINE(0x303C, 0x0206, 0xA82D);
- EXTERN_API( OSErr )
- IsRegisteredSection (SectionHandle sectionH) THREEWORDINLINE(0x303C, 0x0208, 0xA82D);
- EXTERN_API( OSErr )
- AssociateSection (SectionHandle sectionH,
- const FSSpec * newSectionDocument) THREEWORDINLINE(0x303C, 0x040C, 0xA82D);
- EXTERN_API( OSErr )
- CreateEditionContainerFile (const FSSpec * editionFile,
- OSType fdCreator,
- ScriptCode editionFileNameScript) THREEWORDINLINE(0x303C, 0x050E, 0xA82D);
- EXTERN_API( OSErr )
- DeleteEditionContainerFile (const FSSpec * editionFile) THREEWORDINLINE(0x303C, 0x0210, 0xA82D);
- EXTERN_API( OSErr )
- OpenEdition (SectionHandle subscriberSectionH,
- EditionRefNum * refNum) THREEWORDINLINE(0x303C, 0x0412, 0xA82D);
- EXTERN_API( OSErr )
- OpenNewEdition (SectionHandle publisherSectionH,
- OSType fdCreator,
- const FSSpec * publisherSectionDocument, /* can be NULL */
- EditionRefNum * refNum) THREEWORDINLINE(0x303C, 0x0814, 0xA82D);
- EXTERN_API( OSErr )
- CloseEdition (EditionRefNum whichEdition,
- Boolean successful) THREEWORDINLINE(0x303C, 0x0316, 0xA82D);
- EXTERN_API( OSErr )
- EditionHasFormat (EditionRefNum whichEdition,
- FormatType whichFormat,
- Size * formatSize) THREEWORDINLINE(0x303C, 0x0618, 0xA82D);
- EXTERN_API( OSErr )
- ReadEdition (EditionRefNum whichEdition,
- FormatType whichFormat,
- void * buffPtr,
- Size * buffLen) THREEWORDINLINE(0x303C, 0x081A, 0xA82D);
- EXTERN_API( OSErr )
- WriteEdition (EditionRefNum whichEdition,
- FormatType whichFormat,
- const void * buffPtr,
- Size buffLen) THREEWORDINLINE(0x303C, 0x081C, 0xA82D);
- EXTERN_API( OSErr )
- GetEditionFormatMark (EditionRefNum whichEdition,
- FormatType whichFormat,
- unsigned long * currentMark) THREEWORDINLINE(0x303C, 0x061E, 0xA82D);
- EXTERN_API( OSErr )
- SetEditionFormatMark (EditionRefNum whichEdition,
- FormatType whichFormat,
- unsigned long setMarkTo) THREEWORDINLINE(0x303C, 0x0620, 0xA82D);
- EXTERN_API( OSErr )
- GetEditionInfo (SectionHandle sectionH,
- EditionInfoRecord * editionInfo) THREEWORDINLINE(0x303C, 0x0422, 0xA82D);
- EXTERN_API( OSErr )
- GoToPublisherSection (const EditionContainerSpec * container) THREEWORDINLINE(0x303C, 0x0224, 0xA82D);
- EXTERN_API( OSErr )
- GetLastEditionContainerUsed (EditionContainerSpec * container) THREEWORDINLINE(0x303C, 0x0226, 0xA82D);
- EXTERN_API( OSErr )
- GetStandardFormats (const EditionContainerSpec * container,
- FormatType * previewFormat,
- Handle preview,
- Handle publisherAlias,
- Handle formats) THREEWORDINLINE(0x303C, 0x0A28, 0xA82D);
- EXTERN_API( OSErr )
- GetEditionOpenerProc (EditionOpenerUPP * opener) THREEWORDINLINE(0x303C, 0x022A, 0xA82D);
- EXTERN_API( OSErr )
- SetEditionOpenerProc (EditionOpenerUPP opener) THREEWORDINLINE(0x303C, 0x022C, 0xA82D);
- EXTERN_API( OSErr )
- CallEditionOpenerProc (EditionOpenerVerb selector,
- EditionOpenerParamBlock * PB,
- EditionOpenerUPP routine) THREEWORDINLINE(0x303C, 0x052E, 0xA82D);
- EXTERN_API( OSErr )
- CallFormatIOProc (FormatIOVerb selector,
- FormatIOParamBlock * PB,
- FormatIOUPP routine) THREEWORDINLINE(0x303C, 0x0530, 0xA82D);
- EXTERN_API( OSErr )
- NewSubscriberDialog (NewSubscriberReply * reply) THREEWORDINLINE(0x303C, 0x0232, 0xA82D);
- EXTERN_API( OSErr )
- NewSubscriberExpDialog (NewSubscriberReply * reply,
- Point where,
- short expansionDITLresID,
- ExpDlgHookUPP dlgHook,
- ExpModalFilterUPP filter,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0B34, 0xA82D);
- EXTERN_API( OSErr )
- NewPublisherDialog (NewPublisherReply * reply) THREEWORDINLINE(0x303C, 0x0236, 0xA82D);
- EXTERN_API( OSErr )
- NewPublisherExpDialog (NewPublisherReply * reply,
- Point where,
- short expansionDITLresID,
- ExpDlgHookUPP dlgHook,
- ExpModalFilterUPP filter,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0B38, 0xA82D);
- EXTERN_API( OSErr )
- SectionOptionsDialog (SectionOptionsReply * reply) THREEWORDINLINE(0x303C, 0x023A, 0xA82D);
- EXTERN_API( OSErr )
- SectionOptionsExpDialog (SectionOptionsReply * reply,
- Point where,
- short expansionDITLresID,
- ExpDlgHookUPP dlgHook,
- ExpModalFilterUPP filter,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0B3C, 0xA82D);
- #endif /* CALL_NOT_IN_CARBON */
- #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 /* __EDITIONS__ */