FilterResult enum { noDisplay = $0000, noSelect = $0001, displaySelect = $0002, } SFReplyRecPtr = ^SFReplyRec; SFReplyRec struct { good: bool; fileType: int16; auxFileType: int16; filename: String[15]; fullPathname: String[128]; } SFReplyRec2Hndl = ^SFReplyRec2Ptr; SFReplyRec2Ptr = ^SFReplyRec2; SFReplyRec2 struct { good: bool; filetype: int16; auxType: int32; nameDesc: RefDescriptor; nameRef: Ref; pathDesc: RefDescriptor; pathRef: Ref; } multiReplyRecord struct { good: bool; namesHandle: Handle; } SFTypeListHandle = ^SFTypeListPtr; SFTypeListPtr = ^SFTypeList; SFTypeList struct { numEntries: uint8; fileTypeEntries: uint8[5]; } TypeSelector2 struct { flags: int16; fileType: int16; auxType: int32; } SFTypeList2Ptr = ^SFTypeList2; SFTypeList2 struct { numEntries: int16; fileTypeEntries: TypeSelector2[5]; } SFBootInit() { $17, $01 } SFStartUp(userID: int16, dPageAddr: int16) { $17, $02 } SFShutDown() { $17, $03 } SFVersion(): int16 { $17, $04 } SFReset() { $17, $05 } SFStatus(): bool { $17, $06 } SFAllCaps(allCapsFlag: bool) { $17, $0d } SFGetFile(whereX: int16, whereY: int16, prompt: ^Str255, filterProcPtr: WordProcPtr, typeListPtr: SFTypeListPtr, replyPtr: ^SFReplyRec) { $17, $09 } SFGetFile2(whereX: int16, whereY: int16, promptDesc: RefDescriptor, promptRef: Ref, filterProcPtr: WordProcPtr, typeListPtr: SFTypeList2Ptr, replyPtr: ^SFReplyRec2) { $17, $0e } SFMultiGet2(whereX: int16, whereY: int16, promptDesc: RefDescriptor, promptRef: Ref, filterProcPtr: WordProcPtr, typeListPtr: SFTypeList2Ptr, replyPtr: ^SFReplyRec2) { $17, $14 } SFPGetFile(whereX: int16, whereY: int16, prompt: ^Str255, filterProcPtr: WordProcPtr, typeListPtr: SFTypeListPtr, dialogTempPtr: ^DialogTemplate, dialogHookPtr: VoidProcPtr, replyPtr: ^SFReplyRecPtr) { $17, $0b } SFPGetFile2(whereX: int16, whereY: int16, itemDrawPtr: ProcPtr, promptDesc: RefDescriptor, promptRef: Ref, filterProcPtr: WordProcPtr, typeListPtr: SFTypeList2Ptr, dialogTempPtr: ^DialogTemplate, dialogHookPtr: VoidProcPtr, replyPtr: ^SFReplyRec2) { $17, $10 } SFPMultiGet2(whereX: int16, whereY: int16, itemDrawPtr: ProcPtr, promptDesc: RefDescriptor, promptRef: Ref, filterProcPtr: WordProcPtr, typeListPtr: SFTypeList2Ptr, dialogTempPtr: ^DialogTemplate, dialogHookPtr: VoidProcPtr, replyPtr: ^SFReplyRec2) { $17, $15 } SFPPutFile(whereX: int16, whereY: int16, prompt: ^Str255, origName: ^Str255, maxLen: int16, dialogTempPtr: ^DialogTemplate, dialogHookPtr: VoidProcPtr, replyPtr: SFReplyRecPtr) { $17, $0c } SFPPutFile2(whereX: int16, whereY: int16, itemDrawPtr: ProcPtr, promptDesc: RefDescriptor, promptRef: Ref, origNameDesc: RefDescriptor, origNameRef: Ref, dialogTempPtr: ^DialogTemplate, dialogHookPtr: VoidProcPtr, replyPtr: ^SFReplyRec2) { $17, $11 } SFPutFile(whereX: int16, whereY: int16, prompt: ^Str255, origName: ^Str255, maxLen: int16, replyPtr: ^SFReplyRec) { $17, $0a } SFPutFile2(whereX: int16, whereY: int16, promptDesc: RefDescriptor, promptRef: Ref, origNameDesc: RefDescriptor, origNameRef: Ref, replyPtr: ^SFReplyRec2) { $17, $0f } SFShowInvisible(invisibleState: bool): bool { $17, $12 } SFReScan(filterProcPtr: ProcPtr, typeListPtr: SFTypeList2Ptr) { $17, $13 }