; ; File: Editions.a ; ; Contains: Assembly Interface for Edition Manager ; ; Copyright: © 1990 by Apple Computer, Inc., all rights reserved. ; ;-------------------------------------------------------------------- IF &TYPE('__IncludingFSEqu__') = 'UNDEFINED' THEN ; get definition of FSSpec INCLUDE 'FSEqu.a' ENDIF IF &TYPE('__IncludingEditions__') = 'UNDEFINED' THEN __IncludingEditions__ SET 1 ; resource types rSectionType EQU 'sect' ; section types stSubscriber EQU $01 stPublisher EQU $0A ; Update Modes sumAutomatic EQU 0 ; subscriber update mode - Automatically sumManual EQU 1 ; subscriber update mode - Manually pumOnSave EQU 0 ; publisher update mode - On Save pumManual EQU 1 ; publisher update mode - Manually ; EditionContainer subpart usage kPartsNotUsed EQU 0 kPartNumberUnknown EQU -1 ; preview size kPreviewWidth EQU 120 kPreviewHeight EQU 120 ; special formats kPublisherDocAliasFormat EQU 'alis' ; same as rAliasType kPreviewFormat EQU 'prvw' kFormatListFormat EQU 'fmts' ; bits for formatsMask kPICTformatMask EQU 1 kTEXTformatMask EQU 2 ksndFormatMask EQU 4 ; Finder types for edition files kPICTEditionFileType EQU 'edtp' kTEXTEditionFileType EQU 'edtt' ksndEditionFileType EQU 'edts' kUnknownEditionFileType EQU 'edtu' ; pseudo-item hits for dialogHooks ; the first is for NewPublisher or NewSubscriber Dialogs emHookRedrawPreview EQU 150 ; the following are for SectionOptions Dialog emHookCancelSection EQU 160 emHookGoToPublisher EQU 161 emHookGetEditionNow EQU 162 emHookSendEditionNow EQU 162 emHookManualUpdateMode EQU 163 emHookAutoUpdateMode EQU 164 ; the refcon field of the dialog record in a modalfilter or ; dialoghook during SectionOptionsDialog contains one the following emOptionsDialogRefCon EQU 'optn' emCancelSectionDialogRefCon EQU 'cncl' emGoToPubErrDialogRefCon EQU 'gerr' ; misc kFormatLengthUnknown EQU -1 ; record definitions ; SectionRecord RECORD 0 version DS.B 1 ; SignedByte { always 1 in 7.0 release } kind DS.B 1 ; SectionType { publisher or subscriber } mode DS.W 1 ; UpdateMode { auto or manual } mdDate DS.L 1 ; TimeStamp { version of data in section } sectionID DS.L 1 ; LONGINT { application specific, unique per document } refCon DS.L 1 ; LONGINT { application specific } alias DS.L 1 ; AliasHandle { handle to Alias Record } ; the following fields are private and set up by RegisterSection subPart DS.L 1 ; LONGINT { which part of container, always kPartsNotUsed in 7.0 } nextSection DS.L 1 ; SectionHandle { for linked list of app's Sections } controlBlock DS.L 1 ; Handle { shared controlblock for this section. } refNum DS.L 1 ; EditionRefNum { NIL outside of Open/CloseEdition } size EQU * ENDR EditionContainerSpec RECORD 0 theFile DS FSSpec ; theFileScript DS.W 1 ; ScriptCode thePart DS.L 1 ; LONGINT thePartName DS.B 32 ; Str31 thePartScript DS.W 1 ; ScriptCode size EQU * ENDR EditionInfoRecord RECORD 0 crDate DS.L 1 ; Timestamp { date EditionContainer was created } mdDate DS.L 1 ; Timestamp { date of last change } fdCreator DS.B 4 ; OSType { file creator } fdType DS.B 4 ; OSType { file type, 'edtT', etc } container DS EditionContainerSpec; { the Edition } size EQU * ENDR NewPublisherReply RECORD 0 canceled DS.B 1 ; BOOLEAN { O } replacing DS.B 1 ; BOOLEAN { O } usePart DS.B 1 ; BOOLEAN { I } pad1 DS.B 1 ; preview DS.L 1 ; Handle { I } previewFormat DS.B 4 ; FormatType { I } container DS EditionContainerSpec; { I/O } size EQU * ENDR NewSubscriberReply RECORD 0 canceled DS.B 1 ; BOOLEAN { O } formatsMask DS.B 1 ; SignedByte { I } container DS EditionContainerSpec; { I/O } size EQU * ENDR SectionOptionsReply RECORD 0 canceled DS.B 1 ; BOOLEAN { O } changed DS.B 1 ; BOOLEAN { O } sectionH DS.L 1 ; SectionHandle { I } action DS.B 4 ; ResType { 0 } size EQU * ENDR ; FormatIOVerb's ioHasFormat EQU 0 ioReadFormat EQU 1 ioNewFormat EQU 2 ioWriteFormat EQU 3 FormatIOParamBlock RECORD 0 ioRefNum DS.L 1 ; LONGINT format DS.B 4 ; FormatType formatIndex DS.L 1 ; LONGINT offset DS.L 1 ; LONGINT buffPtr DS.L 1 ; Ptr buffLen DS.L 1 ; LONGINT size EQU * ENDR ; EditionOpenerVerb's eoOpen EQU 0 eoClose EQU 1 eoOpenNew EQU 2 eoCloseNew EQU 3 eoCanSubscribe EQU 4 EditionOpenerParamBlock RECORD 0 info DS EditionInfoRecord ; sectionH DS.L 1 ; SectionHandle document DS.L 1 ; FSSpecPtr fdCreator DS.B 4 ; OSType ioRefNum DS.L 1 ; LONGINT ioProc DS.L 1 ; FormatIOProcPtr success DS.B 1 ; BOOLEAN formatsMask DS.B 1 ; SignedByte size EQU * ENDR ; Section Events sectionEventMsgClass EQU 'sect' sectionReadMsgID EQU 'read' sectionWriteMsgID EQU 'writ' sectionScrollMsgID EQU 'scrl' sectionCancelMsgID EQU 'cncl' ; ; 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 $01 ; minorVersion 6 $01 ; endOfMetaData 8 ';;;;' ; directObjKey 12 '----' ; paramType 16 'tid ' ; paramLength 20 $0008 ; tempIDType 24 'sect' ; tempID 28 the SectionHandle <-- this is want you want ; ; FUNCTION InitEditionPack: OSErr; MACRO _InitEditionPack MOVE.W #$0011,-(SP) MOVE.W #$0100,D0 _Pack11 ENDM ; FUNCTION NewSection(container: EditionContainerSpec; ; sectionDocument: FSSpecPtr; ; kind: SectionType; ; sectionID: LONGINT; ; initalMode: UpdateMode; ; VAR sectionH: SectionHandle): OSErr; MACRO _NewSection MOVE.W #$0A02,D0 _Pack11 ENDM ; FUNCTION RegisterSection(sectionDocument: FSSpec; sectionH: SectionHandle; ; VAR aliasWasUpdated: BOOLEAN): OSErr; MACRO _RegisterSection MOVE.W #$0604,D0 _Pack11 ENDM ; FUNCTION UnRegisterSection(sectionH: SectionHandle): OSErr; MACRO _UnRegisterSection MOVE.W #$0206,D0 _Pack11 ENDM ; FUNCTION IsRegisteredSection(sectionH: SectionHandle): OSErr; MACRO _IsRegisteredSection MOVE.W #$0208,D0 _Pack11 ENDM ; FUNCTION AssociateSection(sectionH: SectionHandle; newSectionDocument: FSSpecPtr): OSErr; MACRO _AssociateSection MOVE.W #$040C,D0 _Pack11 ENDM ; FUNCTION CreateEditionContainerFile(editionFile: FSSpec; fdCreator: OSType; ; editionFileNameScript: ScriptCode): OSErr; MACRO _CreateEditionContainerFile MOVE.W #$050E,D0 _Pack11 ENDM ; FUNCTION DeleteEditionContainerFile(editionFile: FSSpec): OSErr; MACRO _DeleteEditionContainerFile MOVE.W #$0210,D0 _Pack11 ENDM ; FUNCTION OpenEdition(subscriberSectionH: SectionHandle; ; VAR refNum: EditionRefNum): OSErr; MACRO _OpenEdition MOVE.W #$0412,D0 _Pack11 ENDM ; FUNCTION OpenNewEdition(publisherSectionH: SectionHandle; fdCreator: OSType; ; publisherSectionDocument: FSSpecPtr; ; VAR refNum: EditionRefNum): OSErr; MACRO _OpenNewEdition MOVE.W #$0814,D0 _Pack11 ENDM ; FUNCTION CloseEdition(whichEdition: EditionRefNum; successful: BOOLEAN): OSErr; MACRO _CloseEdition MOVE.W #$0316,D0 _Pack11 ENDM ; FUNCTION EditionHasFormat(whichEdition: EditionRefNum; whichFormat: FormatType; ; VAR formatSize: Size): OSErr; MACRO _EditionHasFormat MOVE.W #$0618,D0 _Pack11 ENDM ; FUNCTION ReadEdition(whichEdition: EditionRefNum; whichFormat: FormatType; ; buffPtr: Ptr; VAR buffLen: Size): OSErr; MACRO _ReadEdition MOVE.W #$081A,D0 _Pack11 ENDM ; FUNCTION WriteEdition(whichEdition: EditionRefNum; whichFormat: FormatType; ; buffPtr: Ptr; buffLen: Size): OSErr; MACRO _WriteEdition MOVE.W #$081C,D0 _Pack11 ENDM ; FUNCTION GetEditionFormatMark(whichEdition: EditionRefNum; whichFormat: FormatType; ; VAR currentMark: LONGINT): OSErr; MACRO _GetEditionFormatMark MOVE.W #$061E,D0 _Pack11 ENDM ; FUNCTION SetEditionFormatMark(whichEdition: EditionRefNum; whichFormat: FormatType; ; setMarkTo: LONGINT): OSErr; MACRO _SetEditionFormatMark MOVE.W #$0620,D0 _Pack11 ENDM ; FUNCTION GetEditionInfo(sectionH: SectionHandle; VAR editionInfo: EditionInfoRecord): OSErr; MACRO _GetEditionInfo MOVE.W #$0422,D0 _Pack11 ENDM ; FUNCTION GoToPublisherSection(container: EditionContainerSpec): OSErr; MACRO _GoToPublisherSection MOVE.W #$0224,D0 _Pack11 ENDM ; FUNCTION GetLastEditionContainerUsed(VAR container: EditionContainerSpec): OSErr; MACRO _GetLastEditionContainerUsed MOVE.W #$0226,D0 _Pack11 ENDM ; FUNCTION GetStandardFormats(container: EditionContainerSpec; VAR previewFormat: FormatType; ; preview, publisherAlias, formats: Handle): OSErr; MACRO _GetStandardFormats MOVE.W #$0A28,D0 _Pack11 ENDM ; FUNCTION GetEditionOpenerProc(VAR opener: EditionOpenerProcPtr): OSErr; MACRO _GetEditionOpenerProc MOVE.W #$022A,D0 _Pack11 ENDM ; FUNCTION SetEditionOpenerProc(opener: EditionOpenerProcPtr): OSErr; MACRO _SetEditionOpenerProc MOVE.W #$022C,D0 _Pack11 ENDM ; FUNCTION CallEditionOpenerProc(selector: EditionOpenerVerb; VAR PB: EditionOpenerParamBlock; ; routine: EditionOpenerProcPtr): OSErr; MACRO _CallEditionOpenerProc MOVE.W #$052E,D0 _Pack11 ENDM ; FUNCTION CallFormatIOProc(selector: FormatIOVerb; VAR PB: FormatIOParamBlock; ; routine: FormatIOProcPtr): OSErr; MACRO _CallFormatIOProc MOVE.W #$0530,D0 _Pack11 ENDM ; FUNCTION NewSubscriberDialog(VAR reply: NewSubscriberReply): OSErr; MACRO _NewSubscriberDialog MOVE.W #$0232,D0 _Pack11 ENDM ; FUNCTION NewSubscriberExpDialog(VAR reply: NewSubscriberReply; where: Point; ; expansionDITLresID: INTEGER; dlgHook: ExpDlgHookProcPtr; ; filterProc: ExpModalFilterProcPtr; yourDataPtr: UNIV Ptr): OSErr; MACRO _NewSubscriberExpDialog MOVE.W #$0B34,D0 _Pack11 ENDM ; FUNCTION NewPublisherDialog(VAR reply: NewPublisherReply): OSErr; MACRO _NewPublisherDialog MOVE.W #$0236,D0 _Pack11 ENDM ; FUNCTION NewPublisherExpDialog(VAR reply: NewPublisherReply; where: Point; ; expansionDITLresID: INTEGER; dlgHook: ExpDlgHookProcPtr; ; filterProc: ExpModalFilterProcPtr; yourDataPtr: UNIV Ptr): OSErr; MACRO _NewPublisherExpDialog MOVE.W #$0B38,D0 _Pack11 ENDM ; FUNCTION SectionOptionsDialog(VAR reply: SectionOptionsReply): OSErr; MACRO _SectionOptionsDialog MOVE.W #$023A,D0 _Pack11 ENDM ; FUNCTION SectionOptionsExpDialog(VAR reply: SectionOptionsReply; where: Point; ; expansionDITLresID: INTEGER; dlgHook: ExpDlgHookProcPtr; ; filterProc: ExpModalFilterProcPtr; yourDataPtr: UNIV Ptr): OSErr; MACRO _SectionOptionsExpDialog MOVE.W #$0B3C,D0 _Pack11 ENDM ENDIF ; ...already included