?? ole2.pas
字號:
end;
TSafeArrayBound = tagSAFEARRAYBOUND;
{$EXTERNALSYM SAFEARRAYBOUND}
SAFEARRAYBOUND = tagSAFEARRAYBOUND;
PSafeArray = ^TSafeArray;
{$EXTERNALSYM tagSAFEARRAY}
tagSAFEARRAY = record
cDims: Word;
fFeatures: Word;
cbElements: Longint;
cLocks: Longint;
pvData: Pointer;
rgsabound: array[0..0] of TSafeArrayBound;
end;
TSafeArray = tagSAFEARRAY;
{$EXTERNALSYM SAFEARRAY}
SAFEARRAY = tagSAFEARRAY;
TOleDate = Double;
TCurrency = Comp;
TOleBool = WordBool;
TVarType = Word;
PVariantArg = ^TVariantArg;
{$EXTERNALSYM tagVARIANT}
tagVARIANT = record
vt: TVarType;
wReserved1: Word;
wReserved2: Word;
wReserved3: Word;
case Integer of
VT_UI1: (bVal: Byte);
VT_I2: (iVal: Smallint);
VT_I4: (lVal: Longint);
VT_R4: (fltVal: Single);
VT_R8: (dblVal: Double);
VT_BOOL: (vbool: TOleBool);
VT_ERROR: (scode: HResult);
VT_CY: (cyVal: TCurrency);
VT_DATE: (date: TOleDate);
VT_BSTR: (bstrVal: TBStr);
VT_UNKNOWN: (unkVal: IUnknown);
VT_DISPATCH: (dispVal: IDispatch);
VT_ARRAY: (parray: PSafeArray);
VT_BYREF or VT_UI1: (pbVal: ^Byte);
VT_BYREF or VT_I2: (piVal: ^Smallint);
VT_BYREF or VT_I4: (plVal: ^Longint);
VT_BYREF or VT_R4: (pfltVal: ^Single);
VT_BYREF or VT_R8: (pdblVal: ^Double);
VT_BYREF or VT_BOOL: (pbool: ^TOleBool);
VT_BYREF or VT_ERROR: (pscode: ^HResult);
VT_BYREF or VT_CY: (pcyVal: ^TCurrency);
VT_BYREF or VT_DATE: (pdate: ^TOleDate);
VT_BYREF or VT_BSTR: (pbstrVal: PBStr);
VT_BYREF or VT_UNKNOWN: (punkVal: ^IUnknown);
VT_BYREF or VT_DISPATCH: (pdispVal: ^IDispatch);
VT_BYREF or VT_ARRAY: (pparray: ^PSafeArray);
VT_BYREF or VT_VARIANT: (pvarVal: PVariant);
VT_BYREF: (byRef: Pointer);
end;
TVariantArg = tagVARIANT;
{$EXTERNALSYM VARIANTARG}
VARIANTARG = tagVARIANT;
PVariantArgList = ^TVariantArgList;
TVariantArgList = array[0..65535] of TVariantArg;
TDispID = Longint;
PDispIDList = ^TDispIDList;
TDispIDList = array[0..65535] of TDispID;
TMemberID = Longint;
PMemberIDList = ^TMemberIDList;
TMemberIDList = array[0..65535] of TMemberID;
TPropID = Longint;
HRefType = Longint;
TTypeKind = Longint;
PArrayDesc = ^TArrayDesc;
PTypeDesc= ^TTypeDesc;
{$EXTERNALSYM tagTYPEDESC}
tagTYPEDESC = record
case Integer of
VT_PTR: (ptdesc: PTypeDesc; vt: TVarType);
VT_CARRAY: (padesc: PArrayDesc);
VT_USERDEFINED: (hreftype: HRefType);
end;
TTypeDesc = tagTYPEDESC;
{$EXTERNALSYM TYPEDESC}
TYPEDESC = tagTYPEDESC;
{$EXTERNALSYM tagARRAYDESC}
tagARRAYDESC = record
tdescElem: TTypeDesc;
cDims: Word;
rgbounds: array[0..0] of TSafeArrayBound;
end;
TArrayDesc = tagARRAYDESC;
{$EXTERNALSYM ARRAYDESC}
ARRAYDESC = tagARRAYDESC;
PIDLDesc = ^TIDLDesc;
{$EXTERNALSYM tagIDLDESC}
tagIDLDESC = record
dwReserved: Longint;
wIDLFlags: Word;
end;
TIDLDesc = tagIDLDESC;
{$EXTERNALSYM IDLDESC}
IDLDESC = tagIDLDESC;
PElemDesc = ^TElemDesc;
{$EXTERNALSYM tagELEMDESC}
tagELEMDESC = record
tdesc: TTypeDesc;
idldesc: TIDLDesc;
end;
TElemDesc = tagELEMDESC;
{$EXTERNALSYM ELEMDESC}
ELEMDESC = tagELEMDESC;
PElemDescList = ^TElemDescList;
TElemDescList = array[0..65535] of TElemDesc;
PTypeAttr = ^TTypeAttr;
{$EXTERNALSYM tagTYPEATTR}
tagTYPEATTR = record
guid: TGUID;
lcid: TLCID;
dwReserved: Longint;
memidConstructor: TMemberID;
memidDestructor: TMemberID;
lpstrSchema: POleStr;
cbSizeInstance: Longint;
typekind: TTypeKind;
cFuncs: Word;
cVars: Word;
cImplTypes: Word;
cbSizeVft: Word;
cbAlignment: Word;
wTypeFlags: Word;
wMajorVerNum: Word;
wMinorVerNum: Word;
tdescAlias: TTypeDesc;
idldescType: TIDLDesc;
end;
TTypeAttr = tagTYPEATTR;
{$EXTERNALSYM TYPEATTR}
TYPEATTR = tagTYPEATTR;
PDispParams = ^TDispParams;
{$EXTERNALSYM tagDISPPARAMS}
tagDISPPARAMS = record
rgvarg: PVariantArgList;
rgdispidNamedArgs: PDispIDList;
cArgs: Longint;
cNamedArgs: Longint;
end;
TDispParams = tagDISPPARAMS;
{$EXTERNALSYM DISPPARAMS}
DISPPARAMS = tagDISPPARAMS;
PExcepInfo = ^TExcepInfo;
TFNDeferredFillIn = function(ExInfo: PExcepInfo): HResult stdcall;
{$EXTERNALSYM tagEXCEPINFO}
tagEXCEPINFO = record
wCode: Word;
wReserved: Word;
bstrSource: TBStr;
bstrDescription: TBStr;
bstrHelpFile: TBStr;
dwHelpContext: Longint;
pvReserved: Pointer;
pfnDeferredFillIn: TFNDeferredFillIn;
scode: HResult;
end;
TExcepInfo = tagEXCEPINFO;
{$EXTERNALSYM EXCEPINFO}
EXCEPINFO = tagEXCEPINFO;
TFuncKind = Longint;
TInvokeKind = Longint;
TCallConv = Longint;
PFuncDesc = ^TFuncDesc;
{$EXTERNALSYM tagFUNCDESC}
tagFUNCDESC = record
memid: TMemberID;
lprgscode: PResultList;
lprgelemdescParam: PElemDescList;
funckind: TFuncKind;
invkind: TInvokeKind;
callconv: TCallConv;
cParams: Smallint;
cParamsOpt: Smallint;
oVft: Smallint;
cScodes: Smallint;
elemdescFunc: TElemDesc;
wFuncFlags: Word;
end;
TFuncDesc = tagFUNCDESC;
{$EXTERNALSYM FUNCDESC}
FUNCDESC = tagFUNCDESC;
TVarKind = Longint;
PVarDesc = ^TVarDesc;
{$EXTERNALSYM tagVARDESC}
tagVARDESC = record
memid: TMemberID;
lpstrSchema: POleStr;
case Integer of
VAR_PERINSTANCE: (
oInst: Longint;
elemdescVar: TElemDesc;
wVarFlags: Word;
varkind: TVarKind);
VAR_CONST: (
lpvarValue: PVariant);
end;
TVarDesc = tagVARDESC;
{$EXTERNALSYM VARDESC}
VARDESC = tagVARDESC;
{ ICreateTypeInfo interface }
{$EXTERNALSYM ICreateTypeInfo }
ICreateTypeInfo = class(IUnknown)
public
function SetGuid(const guid: TGUID): HResult; virtual; stdcall; abstract;
function SetTypeFlags(uTypeFlags: Integer): HResult; virtual; stdcall; abstract;
function SetDocString(pstrDoc: POleStr): HResult; virtual; stdcall; abstract;
function SetHelpContext(dwHelpContext: Longint): HResult; virtual; stdcall; abstract;
function SetVersion(wMajorVerNum: Word; wMinorVerNum: Word): HResult;
virtual; stdcall; abstract;
function AddRefTypeInfo(tinfo: ITypeInfo; var reftype: HRefType): HResult;
virtual; stdcall; abstract;
function AddFuncDesc(index: Integer; var funcdesc: TFuncDesc): HResult;
virtual; stdcall; abstract;
function AddImplType(index: Integer; reftype: HRefType): HResult;
virtual; stdcall; abstract;
function SetImplTypeFlags(index: Integer; impltypeflags: Integer): HResult;
virtual; stdcall; abstract;
function SetAlignment(cbAlignment: Word): HResult; virtual; stdcall; abstract;
function SetSchema(lpstrSchema: POleStr): HResult; virtual; stdcall; abstract;
function AddVarDesc(index: Integer; var vardesc: TVarDesc): HResult;
virtual; stdcall; abstract;
function SetFuncAndParamNames(index: Integer; rgszNames: POleStrList;
cNames: Integer): HResult; virtual; stdcall; abstract;
function SetVarName(index: Integer; szName: POleStr): HResult; virtual; stdcall; abstract;
function SetTypeDescAlias(var descAlias: TTypeDesc): HResult; virtual; stdcall; abstract;
function DefineFuncAsDllEntry(index: Integer; szDllName: POleStr;
szProcName: POleStr): HResult; virtual; stdcall; abstract;
function SetFuncDocString(index: Integer; szDocString: POleStr): HResult;
virtual; stdcall; abstract;
function SetVarDocString(index: Integer; szDocString: POleStr): HResult;
virtual; stdcall; abstract;
function SetFuncHelpContext(index: Integer; dwHelpContext: Longint): HResult;
virtual; stdcall; abstract;
function SetVarHelpContext(index: Integer; dwHelpContext: Longint): HResult;
virtual; stdcall; abstract;
function SetMops(index: Integer; bstrMops: TBStr): HResult; virtual; stdcall; abstract;
function SetTypeIdldesc(var idldesc: TIDLDesc): HResult; virtual; stdcall; abstract;
function LayOut: HResult; virtual; stdcall; abstract;
end;
{ ICreateTypeLib interface }
{$EXTERNALSYM ICreateTypeLib }
ICreateTypeLib = class(IUnknown)
public
function CreateTypeInfo(szName: POleStr; tkind: TTypeKind;
var ictinfo: ICreateTypeInfo): HResult; virtual; stdcall; abstract;
function SetName(szName: POleStr): HResult; virtual; stdcall; abstract;
function SetVersion(wMajorVerNum: Word; wMinorVerNum: Word): HResult; virtual; stdcall; abstract;
function SetGuid(const guid: TGUID): HResult; virtual; stdcall; abstract;
function SetDocString(szDoc: POleStr): HResult; virtual; stdcall; abstract;
function SetHelpFileName(szHelpFileName: POleStr): HResult; virtual; stdcall; abstract;
function SetHelpContext(dwHelpContext: Longint): HResult; virtual; stdcall; abstract;
function SetLcid(lcid: TLCID): HResult; virtual; stdcall; abstract;
function SetLibFlags(uLibFlags: Integer): HResult; virtual; stdcall; abstract;
function SaveAllChanges: HResult; virtual; stdcall; abstract;
end;
{ IDispatch interface }
{$EXTERNALSYM IDispatch }
IDispatch = class(IUnknown)
public
function GetTypeInfoCount(var ctinfo: Integer): HResult; virtual; stdcall; abstract;
function GetTypeInfo(itinfo: Integer; lcid: TLCID; var tinfo: ITypeInfo): HResult; virtual; stdcall; abstract;
function GetIDsOfNames(const iid: TIID; rgszNames: POleStrList;
cNames: Integer; lcid: TLCID; rgdispid: PDispIDList): HResult; virtual; stdcall; abstract;
function Invoke(dispIDMember: TDispID; const iid: TIID; lcid: TLCID;
flags: Word; var dispParams: TDispParams; varResult: PVariant;
excepInfo: PExcepInfo; argErr: PInteger): HResult; virtual; stdcall; abstract;
end;
{ IEnumVariant interface }
{$EXTERNALSYM IEnumVariant }
IEnumVariant = class(IUnknown)
public
function Next(celt: Longint; var elt;
var pceltFetched: Longint): HResult; virtual; stdcall; abstract;
function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
function Reset: HResult; virtual; stdcall; abstract;
function Clone(var Enum: IEnumVariant): HResult; virtual; stdcall; abstract;
end;
{ ITypeComp interface }
TDescKind = Longint;
PBindPtr = ^TBindPtr;
{$EXTERNALSYM tagBINDPTR}
tagBINDPTR = record
case Integer of
0: (lpfuncdesc: PFuncDesc);
1: (lpvardesc: PVarDesc);
2: (lptcomp: ITypeComp);
end;
TBindPtr = tagBINDPTR;
{$EXTERNALSYM BINDPTR}
BINDPTR = tagBINDPTR;
{$EXTERNALSYM ITypeComp }
ITypeComp = class(IUnknown)
public
function Bind(szName: POleStr; lHashVal: Longint; wflags: Word;
var tinfo: ITypeInfo; var desckind: TDescKind;
var bindptr: TBindPtr): HResult; virtual; stdcall; abstract;
function BindType(szName: POleStr; lHashVal: Longint;
var tinfo: ITypeInfo; var tcomp: ITypeComp): HResult;
virtual; stdcall; abstract;
end;
{ ITypeInfo interface }
{$EXTERNALSYM ITypeInfo}
ITypeInfo = class(IUnknown)
public
function GetTypeAttr(var ptypeattr: PTypeAttr): HResult; virtual; stdcall; abstract;
function GetTypeComp(var tcomp: ITypeComp): HResult; virtual; stdcall; abstract;
function GetFuncDesc(index: Integer; var pfuncdesc: PFuncDesc): HResult;
virtual; stdcall; abstract;
function GetVarDesc(index: Integer; var pvardesc: PVarDesc): HResult;
virtual; stdcall; abstract;
function GetNames(memid: TMemberID; rgbstrNames: PBStrList;
cMaxNames: Integer; var cNames: Integer): HResult; virtual; stdcall; abstract;
function GetRefTypeOfImplType(index: Integer; var reftype: HRefType): HResult;
virtual; stdcall; abstract;
function GetImplTypeFlags(index: Integer; var impltypeflags: Integer): HResult;
virtual; stdcall; abstract;
function GetIDsOfNames(rgpszNames: POleStrList; cNames: Integer;
rgmemid: PMemberIDList): HResult; virtual; stdcall; abstract;
function Invoke(pvInstance: Pointer; memid: TMemberID; flags: Word;
var dispParams: TDispParams; varResult: PVariant;
excepInfo: PExcepInfo; argErr: PInteger): HResult; virtual; stdcall; abstract;
function GetDocumentation(memid: TMemberID; pbstrName: PBStr;
pbstrDocString: PBStr; pdwHelpContext: PLongint;
pbstrHelpFile: PBStr): HResult; virtual; stdcall; abstract;
function GetDllEntry(memid: TMemberID; invkind: TInvokeKind;
var bstrDllName: TBStr; var bstrName: TBStr; var wOrdinal: Word): HResult;
virtual; stdcall; abstract;
function GetRefTypeInfo(reftype: HRefType; var tinfo: ITypeInfo): HResult;
virtual; stdcall; abstract
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -