2019-06-29 22:17:03 +08:00

388 lines
11 KiB
OpenEdge ABL

{
Created: Sunday, January 6, 1991 at 10:55 PM
PPCToolBox.p
Pascal Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1989-1990
All rights reserved
}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT PPCToolBox;
INTERFACE
{$ENDC}
{$IFC UNDEFINED UsingPPCToolBox}
{$SETC UsingPPCToolBox := 1}
{$I+}
{$SETC PPCToolBoxIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED UsingAppleTalk}
{$I $$Shell(PInterfaces)AppleTalk.p}
{$ENDC}
{$IFC UNDEFINED UsingMemory}
{$I $$Shell(PInterfaces)Memory.p}
{$ENDC}
{$IFC UNDEFINED UsingTypes}
{$I $$Shell(PInterfaces)Types.p}
{$ENDC}
{$SETC UsingIncludes := PPCToolBoxIncludes}
TYPE
PPCServiceType = SignedByte;
CONST
{ service Type }
ppcServiceRealTime = 1;
TYPE
PPCLocationKind = INTEGER;
CONST
{ lookup Type }
ppcNoLocation = 0; { There is no PPCLocName }
ppcNBPLocation = 1; { Use AppleTalk NBP }
ppcNBPTypeLocation = 2; { Used for specifying a location name type during PPCOpen only }
TYPE
PPCPortKinds = INTEGER;
CONST
{ port Types }
ppcByCreatorAndType = 1; { PortType is specified as colloquial Mac creator and type }
ppcByString = 2; { Port Type is in pascal string format }
TYPE
PPCSessionOrigin = SignedByte; { Values returned for request field in PPCInform call }
CONST
{ Values returned for requestType field in PPCInform call }
ppcLocalOrigin = 1; { session originated from this machine }
ppcRemoteOrigin = 2; { session originated from remote machine }
TYPE
PPCPortRefNum = INTEGER;
PPCSessRefNum = LONGINT;
PPCPortPtr = ^PPCPortRec;
PPCPortRec = RECORD
nameScript: ScriptCode; { script of name }
name: Str32; { name of port as seen in browser }
portKindSelector: PPCPortKinds; { which variant }
CASE PPCPortKinds OF
ppcByString:
(portTypeStr: Str32);
ppcByCreatorAndType:
(portCreator: OSType;
portType: OSType);
END;
LocationNamePtr = ^LocationNameRec;
LocationNameRec = RECORD
locationKindSelector: PPCLocationKind; { which variant }
CASE PPCLocationKind OF
ppcNBPLocation:
(nbpEntity: EntityName); { NBP name entity }
ppcNBPTypeLocation:
(nbpType: Str32); { just the NBP type string, for PPCOpen }
END;
PortInfoPtr = ^PortInfoRec;
PortInfoRec = RECORD
filler1: SignedByte;
authRequired: BOOLEAN;
name: PPCPortRec;
END;
PortInfoArrayPtr = ^PortInfoArray;
PortInfoArray = ARRAY [0..0] OF PortInfoRec;
PPCFilterProcPtr = ProcPtr;
{Procedures you will need to write
ex: void MyCompletionRoutine(PPCParamBlkPtr pb)
ex: pascal Boolean MyPortFilter(LocationNamePtr locationName, PortInfoPtr
thePortInfo)}
PPCCompProcPtr = ProcPtr;
PPCOpenPBPtr = ^PPCOpenPBRec;
PPCOpenPBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT; { reserved }
portRefNum: PPCPortRefNum; { Port Reference }
filler1: LONGINT;
serviceType: PPCServiceType;
resFlag: SignedByte ;
portName: PPCPortPtr; { PortName for PPC }
locationName: LocationNamePtr;
networkVisible: BOOLEAN;
nbpRegistered: BOOLEAN;
END;
PPCInformPBPtr = ^PPCInformPBRec;
PPCInformPBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
portRefNum: PPCPortRefNum;
sessRefNum: PPCSessRefNum;
serviceType: PPCServiceType;
autoAccept: BOOLEAN;
portName: PPCPortPtr;
locationName: LocationNamePtr;
userName: StringPtr;
userData: LONGINT;
requestType: PPCSessionOrigin;
END;
PPCStartPBPtr = ^PPCStartPBRec;
PPCStartPBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
portRefNum: PPCPortRefNum;
sessRefNum: PPCSessRefNum;
serviceType: PPCServiceType;
resFlag: SignedByte;
portName: PPCPortPtr;
locationName: LocationNamePtr;
rejectInfo: LONGINT;
userData: LONGINT;
userRefNum: LONGINT;
END;
PPCAcceptPBPtr = ^PPCAcceptPBRec;
PPCAcceptPBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
filler1: INTEGER;
sessRefNum: PPCSessRefNum;
END;
PPCRejectPBPtr = ^PPCRejectPBRec;
PPCRejectPBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
filler1: INTEGER;
sessRefNum: PPCSessRefNum;
filler2: INTEGER;
filler3: LONGINT;
filler4: LONGINT;
rejectInfo: LONGINT;
END;
PPCWritePBPtr = ^PPCWritePBRec;
PPCWritePBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
filler1: INTEGER;
sessRefNum: PPCSessRefNum;
bufferLength: Size;
actualLength: Size;
bufferPtr: Ptr;
more: BOOLEAN;
filler2: SignedByte;
userData: LONGINT;
blockCreator: OSType;
blockType: OSType;
END;
PPCReadPBPtr = ^PPCReadPBRec;
PPCReadPBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
filler1: INTEGER;
sessRefNum: PPCSessRefNum;
bufferLength: Size;
actualLength: Size;
bufferPtr: Ptr;
more: BOOLEAN;
filler2: SignedByte;
userData: LONGINT;
blockCreator: OSType;
blockType: OSType;
END;
PPCEndPBPtr = ^PPCEndPBRec;
PPCEndPBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
filler1: INTEGER;
sessRefNum: PPCSessRefNum;
END;
PPCClosePBPtr = ^PPCClosePBRec;
PPCClosePBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
portRefNum: PPCPortRefNum;
END;
IPCListPortsPBPtr = ^IPCListPortsPBRec;
IPCListPortsPBRec = RECORD
qLink: Ptr;
csCode: INTEGER;
intUse: INTEGER;
intUsePtr: Ptr;
ioCompletion: PPCCompProcPtr;
ioResult: OSErr;
reserved: ARRAY [1..5] OF LONGINT;
filler1: INTEGER;
startIndex: INTEGER;
requestCount: INTEGER;
actualCount: INTEGER;
portName: PPCPortPtr;
locationName: LocationNamePtr;
bufferPtr: PortInfoArrayPtr;
END;
PPCParamBlockPtr = ^PPCParamBlockRec;
PPCParamBlockRec = RECORD
CASE Integer OF
0: (openParam: PPCOpenPBRec);
1: (informParam: PPCInformPBRec);
2: (startParam: PPCStartPBRec);
3: (acceptParam: PPCAcceptPBRec);
4: (rejectParam: PPCRejectPBRec);
5: (writeParam: PPCWritePBRec);
6: (readParam: PPCReadPBRec);
7: (endParam: PPCEndPBRec);
8: (closeParam: PPCClosePBRec);
9: (listPortsParam: IPCListPortsPBRec);
END;
{ PPC Calling Conventions }
FUNCTION PPCInit: OSErr;
INLINE $7000,$A0DD,$3E80;
FUNCTION PPCOpen(pb: PPCOpenPBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCOpenSync(pb: PPCOpenPBPtr): OSErr;
INLINE $205F,$7001,$A0DD,$3E80;
FUNCTION PPCOpenAsync(pb: PPCOpenPBPtr): OSErr;
INLINE $205F,$7001,$A4DD,$3E80;
FUNCTION PPCInform(pb: PPCInformPBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCInformSync(pb: PPCInformPBPtr): OSErr;
INLINE $205F,$7003,$A0DD,$3E80;
FUNCTION PPCInformAsync(pb: PPCInformPBPtr): OSErr;
INLINE $205F,$7003,$A4DD,$3E80;
FUNCTION PPCStart(pb: PPCStartPBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCStartSync(pb: PPCStartPBPtr): OSErr;
INLINE $205F,$7002,$A0DD,$3E80;
FUNCTION PPCStartAsync(pb: PPCStartPBPtr): OSErr;
INLINE $205F,$7002,$A4DD,$3E80;
FUNCTION PPCAccept(pb: PPCAcceptPBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCAcceptSync(pb: PPCAcceptPBPtr): OSErr;
INLINE $205F,$7004,$A0DD,$3E80;
FUNCTION PPCAcceptAsync(pb: PPCAcceptPBPtr): OSErr;
INLINE $205F,$7004,$A4DD,$3E80;
FUNCTION PPCReject(pb: PPCRejectPBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCRejectSync(pb: PPCRejectPBPtr): OSErr;
INLINE $205F,$7005,$A0DD,$3E80;
FUNCTION PPCRejectAsync(pb: PPCRejectPBPtr): OSErr;
INLINE $205F,$7005,$A4DD,$3E80;
FUNCTION PPCWrite(pb: PPCWritePBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCWriteSync(pb: PPCWritePBPtr): OSErr;
INLINE $205F,$7006,$A0DD,$3E80;
FUNCTION PPCWriteAsync(pb: PPCWritePBPtr): OSErr;
INLINE $205F,$7006,$A4DD,$3E80;
FUNCTION PPCRead(pb: PPCReadPBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCReadSync(pb: PPCReadPBPtr): OSErr;
INLINE $205F,$7007,$A0DD,$3E80;
FUNCTION PPCReadAsync(pb: PPCReadPBPtr): OSErr;
INLINE $205F,$7007,$A4DD,$3E80;
FUNCTION PPCEnd(pb: PPCEndPBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCEndSync(pb: PPCEndPBPtr): OSErr;
INLINE $205F,$7008,$A0DD,$3E80;
FUNCTION PPCEndAsync(pb: PPCEndPBPtr): OSErr;
INLINE $205F,$7008,$A4DD,$3E80;
FUNCTION PPCClose(pb: PPCClosePBPtr;async: BOOLEAN): OSErr;
FUNCTION PPCCloseSync(pb: PPCClosePBPtr): OSErr;
INLINE $205F,$7009,$A0DD,$3E80;
FUNCTION PPCCloseAsync(pb: PPCClosePBPtr): OSErr;
INLINE $205F,$7009,$A4DD,$3E80;
FUNCTION IPCListPorts(pb: IPCListPortsPBPtr;async: BOOLEAN): OSErr;
FUNCTION IPCListPortsSync(pb: IPCListPortsPBPtr): OSErr;
INLINE $205F,$700A,$A0DD,$3E80;
FUNCTION IPCListPortsAsync(pb: IPCListPortsPBPtr): OSErr;
INLINE $205F,$700A,$A4DD,$3E80;
FUNCTION DeleteUserIdentity(userRef: LONGINT): OSErr;
FUNCTION GetDefaultUser(VAR userRef: LONGINT;
VAR userName: Str32): OSErr;
FUNCTION StartSecureSession(pb: PPCStartPBPtr;
VAR userName: Str32;
useDefault: BOOLEAN;
allowGuest: BOOLEAN;
VAR guestSelected: BOOLEAN;
prompt: Str255): OSErr;
FUNCTION PPCBrowser(prompt: Str255;
applListLabel: Str255;
defaultSpecified: BOOLEAN;
VAR theLocation: LocationNameRec;
VAR thePortInfo: PortInfoRec;
portFilter: PPCFilterProcPtr;
theLocNBPType: Str32): OSErr;
INLINE $303C,$0D00,$A82B;
{$ENDC} { UsingPPCToolBox }
{$IFC NOT UsingIncludes}
END.
{$ENDC}