?? ole2.pas
字號:
{ 64-bit large integer }
Largeint = Comp;
{ Globally unique ID }
PGUID = ^TGUID;
TGUID = record
D1: LongWord;
D2: Word;
D3: Word;
D4: array[0..7] of Byte;
end;
{ Interface ID }
PIID = PGUID;
TIID = TGUID;
{ Class ID }
PCLSID = PGUID;
TCLSID = TGUID;
{ Object ID }
PObjectID = ^TObjectID;
{$EXTERNALSYM _OBJECTID}
_OBJECTID = record
Lineage: TGUID;
Uniquifier: Longint;
end;
TObjectID = _OBJECTID;
{$EXTERNALSYM OBJECTID}
OBJECTID = _OBJECTID;
{ Locale ID }
TLCID = DWORD;
{ Forward declarations }
{$EXTERNALSYM IStream}
IStream = class;
{$EXTERNALSYM IRunningObjectTable }
IRunningObjectTable = class;
{$EXTERNALSYM IEnumString }
IEnumString = class;
{$EXTERNALSYM IMoniker}
IMoniker = class;
{$EXTERNALSYM IAdviseSink}
IAdviseSink = class;
{$EXTERNALSYM IDispatch }
IDispatch = class;
{$EXTERNALSYM ITypeInfo}
ITypeInfo = class;
{$EXTERNALSYM ITypeComp }
ITypeComp = class;
{$EXTERNALSYM ITypeLib}
ITypeLib = class;
{$EXTERNALSYM IEnumOleVerb }
IEnumOleVerb = class;
{$EXTERNALSYM IOleInPlaceActiveObject}
IOleInPlaceActiveObject = class;
{ IUnknown interface }
{$EXTERNALSYM IUnknown }
IUnknown = class
public
function QueryInterface(const iid: TIID; var obj): HResult; virtual; stdcall; abstract;
function AddRef: Longint; virtual; stdcall; abstract;
function Release: Longint; virtual; stdcall; abstract;
end;
{ IClassFactory interface }
{$EXTERNALSYM IClassFactory }
IClassFactory = class(IUnknown)
public
function CreateInstance(unkOuter: IUnknown; const iid: TIID;
var obj): HResult; virtual; stdcall; abstract;
function LockServer(fLock: BOOL): HResult; virtual; stdcall; abstract;
end;
{ IMarshal interface }
{$EXTERNALSYM IMarshal }
IMarshal = class(IUnknown)
public
function GetUnmarshalClass(const iid: TIID; pv: Pointer;
dwDestContext: Longint; pvDestContext: Pointer; mshlflags: Longint;
var cid: TCLSID): HResult; virtual; stdcall; abstract;
function GetMarshalSizeMax(const iid: TIID; pv: Pointer;
dwDestContext: Longint; pvDestContext: Pointer; mshlflags: Longint;
var size: Longint): HResult; virtual; stdcall; abstract;
function MarshalInterface(stm: IStream; const iid: TIID; pv: Pointer;
dwDestContext: Longint; pvDestContext: Pointer;
mshlflags: Longint): HResult; virtual; stdcall; abstract;
function UnmarshalInterface(stm: IStream; const iid: TIID;
var pv): HResult; virtual; stdcall; abstract;
function ReleaseMarshalData(stm: IStream): HResult;
virtual; stdcall; abstract;
function DisconnectObject(dwReserved: Longint): HResult;
virtual; stdcall; abstract;
end;
{ IMalloc interface }
{$EXTERNALSYM IMalloc}
IMalloc = class(IUnknown)
public
function Alloc(cb: Longint): Pointer; virtual; stdcall; abstract;
function Realloc(pv: Pointer; cb: Longint): Pointer; virtual; stdcall; abstract;
procedure Free(pv: Pointer); virtual; stdcall; abstract;
function GetSize(pv: Pointer): Longint; virtual; stdcall; abstract;
function DidAlloc(pv: Pointer): Integer; virtual; stdcall; abstract;
procedure HeapMinimize; virtual; stdcall; abstract;
end;
{ IMallocSpy interface }
{$EXTERNALSYM IMallocSpy }
IMallocSpy = class(IUnknown)
public
function PreAlloc(cbRequest: Longint): Longint; virtual; stdcall; abstract;
function PostAlloc(pActual: Pointer): Pointer; virtual; stdcall; abstract;
function PreFree(pRequest: Pointer; fSpyed: BOOL): Pointer; virtual; stdcall; abstract;
procedure PostFree(fSpyed: BOOL); virtual; stdcall; abstract;
function PreRealloc(pRequest: Pointer; cbRequest: Longint;
var ppNewRequest: Pointer; fSpyed: BOOL): Longint; virtual; stdcall; abstract;
function PostRealloc(pActual: Pointer; fSpyed: BOOL): Pointer; virtual; stdcall; abstract;
function PreGetSize(pRequest: Pointer; fSpyed: BOOL): Pointer; virtual; stdcall; abstract;
function PostGetSize(pActual: Pointer; fSpyed: BOOL): Longint; virtual; stdcall; abstract;
function PostDidAlloc(pRequest: Pointer; fSpyed: BOOL; fActual: Integer): Integer; virtual; stdcall; abstract;
procedure PreHeapMinimize; virtual; stdcall; abstract;
procedure PostHeapMinimize; virtual; stdcall; abstract;
end;
{ IStdMarshalInfo interface }
{$EXTERNALSYM IStdMarshalInfo }
IStdMarshalInfo = class(IUnknown)
public
function GetClassForHandler(dwDestContext: Longint; pvDestContext: Pointer;
var clsid: TCLSID): HResult; virtual; stdcall; abstract;
end;
{ IExternalConnection interface }
{$EXTERNALSYM IExternalConnection }
IExternalConnection = class(IUnknown)
public
function AddConnection(extconn: Longint; reserved: Longint): Longint;
virtual; stdcall; abstract;
function ReleaseConnection(extconn: Longint; reserved: Longint;
fLastReleaseCloses: BOOL): Longint; virtual; stdcall; abstract;
end;
{ IWeakRef interface }
{$EXTERNALSYM IWeakRef }
IWeakRef = class(IUnknown)
public
function ChangeWeakCount(delta: Longint): Longint; virtual; stdcall; abstract;
function ReleaseKeepAlive(unkReleased: IUnknown;
reserved: Longint): Longint; virtual; stdcall; abstract;
end;
{ IEnumUnknown interface }
{$EXTERNALSYM IEnumUnknown }
IEnumUnknown = class(IUnknown)
public
function Next(celt: Longint; var elt;
pceltFetched: PLongint): HResult; virtual; stdcall; abstract;
function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
function Reset: HResult; virtual; stdcall; abstract;
function Clone(var enm: IEnumUnknown): HResult; virtual; stdcall; abstract;
end;
{ IBindCtx interface }
PBindOpts = ^TBindOpts;
{$EXTERNALSYM tagBIND_OPTS}
tagBIND_OPTS = record
cbStruct: Longint;
grfFlags: Longint;
grfMode: Longint;
dwTickCountDeadline: Longint;
end;
TBindOpts = tagBIND_OPTS;
{$EXTERNALSYM BIND_OPTS}
BIND_OPTS = tagBIND_OPTS;
{$EXTERNALSYM IBindCtx }
IBindCtx = class(IUnknown)
public
function RegisterObjectBound(unk: IUnknown): HResult; virtual; stdcall; abstract;
function RevokeObjectBound(unk: IUnknown): HResult; virtual; stdcall; abstract;
function ReleaseBoundObjects: HResult; virtual; stdcall; abstract;
function SetBindOptions(var bindopts: TBindOpts): HResult; virtual; stdcall; abstract;
function GetBindOptions(var bindopts: TBindOpts): HResult; virtual; stdcall; abstract;
function GetRunningObjectTable(var rot: IRunningObjectTable): HResult;
virtual; stdcall; abstract;
function RegisterObjectParam(pszKey: POleStr; unk: IUnknown): HResult;
virtual; stdcall; abstract;
function GetObjectParam(pszKey: POleStr; var unk: IUnknown): HResult;
virtual; stdcall; abstract;
function EnumObjectParam(var Enum: IEnumString): HResult; virtual; stdcall; abstract;
function RevokeObjectParam(pszKey: POleStr): HResult; virtual; stdcall; abstract;
end;
{ IEnumMoniker interface }
{$EXTERNALSYM IEnumMoniker }
IEnumMoniker = class(IUnknown)
public
function Next(celt: Longint; var elt;
pceltFetched: PLongint): HResult; virtual; stdcall; abstract;
function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
function Reset: HResult; virtual; stdcall; abstract;
function Clone(var enm: IEnumMoniker): HResult; virtual; stdcall; abstract;
end;
{ IRunnableObject interface }
{$EXTERNALSYM IRunnableObject }
IRunnableObject = class(IUnknown)
public
function GetRunningClass(var clsid: TCLSID): HResult; virtual; stdcall; abstract;
function Run(bc: IBindCtx): HResult; virtual; stdcall; abstract;
function IsRunning: BOOL; virtual; stdcall; abstract;
function LockRunning(fLock: BOOL; fLastUnlockCloses: BOOL): HResult;
virtual; stdcall; abstract;
function SetContainedObject(fContained: BOOL): HResult; virtual; stdcall; abstract;
end;
{ IRunningObjectTable interface }
{$EXTERNALSYM IRunningObjectTable }
IRunningObjectTable = class(IUnknown)
public
function Register(grfFlags: Longint; var unkObject: IUnknown;
mkObjectName: IMoniker; var dwRegister: Longint): HResult; virtual; stdcall; abstract;
function Revoke(dwRegister: Longint): HResult; virtual; stdcall; abstract;
function IsRunning(mkObjectName: IMoniker): HResult; virtual; stdcall; abstract;
function GetObject(mkObjectName: IMoniker;
var unkObject: IUnknown): HResult; virtual; stdcall; abstract;
function NoteChangeTime(dwRegister: Longint;
var filetime: TFileTime): HResult; virtual; stdcall; abstract;
function GetTimeOfLastChange(mkObjectName: IMoniker;
var filetime: TFileTime): HResult; virtual; stdcall; abstract;
function EnumRunning(var enumMoniker: IEnumMoniker): HResult; virtual; stdcall; abstract;
end;
{ IPersist interface }
{$EXTERNALSYM IPersist }
IPersist = class(IUnknown)
public
function GetClassID(var classID: TCLSID): HResult; virtual; stdcall; abstract;
end;
{ IPersistStream interface }
{$EXTERNALSYM IPersistStream }
IPersistStream = class(IPersist)
public
function IsDirty: HResult; virtual; stdcall; abstract;
function Load(stm: IStream): HResult; virtual; stdcall; abstract;
function Save(stm: IStream; fClearDirty: BOOL): HResult; virtual; stdcall; abstract;
function GetSizeMax(var cbSize: Largeint): HResult; virtual; stdcall; abstract;
end;
{ IMoniker interface }
{$EXTERNALSYM IMoniker}
IMoniker = class(IPersistStream)
public
function BindToObject(bc: IBindCtx; mkToLeft: IMoniker;
const iidResult: TIID; var vResult): HResult; virtual; stdcall; abstract;
function BindToStorage(bc: IBindCtx; mkToLeft: IMoniker;
const iid: TIID; var vObj): HResult; virtual; stdcall; abstract;
function Reduce(bc: IBindCtx; dwReduceHowFar: Longint;
var mkToLeft: IMoniker; var mkReduced: IMoniker): HResult; virtual; stdcall; abstract;
function ComposeWith(mkRight: IMoniker; fOnlyIfNotGeneric: BOOL;
var mkComposite: IMoniker): HResult; virtual; stdcall; abstract;
function Enum(fForward: BOOL; var enumMoniker: IEnumMoniker): HResult;
virtual; stdcall; abstract;
function IsEqual(mkOtherMoniker: IMoniker): HResult; virtual; stdcall; abstract;
function Hash(var dwHash: Longint): HResult; virtual; stdcall; abstract;
function IsRunning(bc: IBindCtx; mkToLeft: IMoniker;
mkNewlyRunning: IMoniker): HResult; virtual; stdcall; abstract;
function GetTimeOfLastChange(bc: IBindCtx; mkToLeft: IMoniker;
var filetime: TFileTime): HResult; virtual; stdcall; abstract;
function Inverse(var mk: IMoniker): HResult; virtual; stdcall; abstract;
function CommonPrefixWith(mkOther: IMoniker;
var mkPrefix: IMoniker): HResult; virtual; stdcall; abstract;
function RelativePathTo(mkOther: IMoniker;
var mkRelPath: IMoniker): HResult; virtual; stdcall; abstract;
function GetDisplayName(bc: IBindCtx; mkToLeft: IMoniker;
var pszDisplayName: POleStr): HResult; virtual; stdcall; abstract;
function ParseDisplayName(bc: IBindCtx; mkToLeft: IMoniker;
pszDisplayName: POleStr; var chEaten: Longint;
var mkOut: IMoniker): HResult; virtual; stdcall; abstract;
function IsSystemMoniker(var dwMksys: Longint): HResult; virtual; stdcall; abstract;
end;
{ IEnumString interface }
{$EXTERNALSYM IEnumString }
IEnumString = class(IUnknown)
public
function Next(celt: Longint; var elt;
pceltFetched: PLongint): HResult; virtual; stdcall; abstract;
function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
function Reset: HResult; virtual; stdcall; abstract;
function Clone(var enm: IEnumString): HResult; virtual; stdcall; abstract;
end;
{ IStream interface }
PStatStg = ^TStatStg;
{$EXTERNALSYM tagSTATSTG}
tagSTATSTG = record
pwcsName: POleStr;
dwType: Longint;
cbSize: Largeint;
mtime: TFileTime;
ctime: TFileTime;
atime: TFileTime;
grfMode: Longint;
grfLocksSupported: Longint;
clsid: TCLSID;
grfStateBits: Longint;
reserved: Longint;
end;
TStatStg = tagSTATSTG;
{$EXTERNALSYM STATSTG}
STATSTG = tagSTATSTG;
{$EXTERNALSYM IStream}
IStream = class(IUnknown)
public
function Read(pv: Pointer; cb: Longint; pcbRead: PLongint): HResult;
virtual; stdcall; abstract;
function Write(pv: Pointer; cb: Longint; pcbWritten: PLongint): HResult;
virtual; stdcall; abstract;
function Seek(dlibMove: Largeint; dwOrigin: Longint;
var libNewPosition: Largeint): HResult; virtual; stdcall; abstract;
function SetSize(libNewSize: Largeint): HResult; virtual; stdcall; abstract;
function CopyTo(stm: IStream; cb: Largeint; var cbRead: Largeint;
var cbWritten: Largeint): HResult; virtual; stdcall; abstract;
function Commit(grfCommitFlags: Longint): HResult; virtual; stdcall; abstract;
function Revert: HResult; virtual; stdcall; abstract;
function LockRegion(libOffset: Largeint; cb: Largeint;
dwLockType: Longint): HResult; virtual; stdcall; abstract;
function UnlockRegion(libOffset: Largeint; cb: Largeint;
dwLockType: Longint): HResult; virtual; stdcall; abstract;
function Stat(var statstg: TStatStg; grfStatFlag: Longint): HResult;
virtual; stdcall; abstract;
function Clone(var stm: IStream): HResult; virtual; stdcall; abstract;
end;
{ IEnumStatStg interface }
{$EXTERNALSYM IEnumStatStg }
IEnumStatStg = class(IUnknown)
public
function Next(celt: Longint; var elt;
pceltFetched: PLongint): HResult; virtual; stdcall; abstract;
function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
function Reset: HResult; virtual; stdcall; abstract;
function Clone(var enm: IEnumStatStg): HResult; virtual; stdcall; abstract;
end;
{ IStorage interface }
TSNB = ^POleStr;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -