Die C Sourcen stammen aus der OAIdl.h und von aus dem MSDN unter http://msdn.microsoft.com/en-us/library ... T.10).aspx. Unter dieser Adresse ist auch die beste Beschreibung der Funktionen, die ich gefunden habe.
Da Microsoft gerne mal die Url's ändert, hier noch der Pfad für die manuelle Suche:
MSDN Library / Open Specifications / Protocols / Windows Protocols / Windows Communication Protocols / Windows Communciation Protocols / [MS_OAUT]: OLE Automation Protocol Specification / 2 Messages / 2.2 Common Data Types
Code: Alles auswählen
Structure IDLDESC
Reserved.i
IdlFlags.w
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 : padding.b[2] : CompilerEndIf
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 : padding.b[6] : CompilerEndIf
EndStructure
Structure TYPEDESC
StructureUnion
*TypDesc.TYPEDESC ; wenn VT_PTR, VT_SAFEARRAY
*ArrDesc.ARRAYDESC ; wenn VT_CARRAY
hreftype.l ; wenn VT_USERDEFINED
EndStructureUnion
VT.w
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 : padding.b[2] : CompilerEndIf
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 : padding.b[6] : CompilerEndIf
EndStructure
Structure PARAMDESCEX
cBytes.l; memory size of the PARAMDESCEX
padding.b[4] ; warum bei x32 ???
DefaultValue.VARIANT
EndStructure
Structure PARAMDESC
*ParDescEx.PARAMDESCEX ; wenn ParFlags = PARAMFLAG_FHASDEFAULT
ParFlags.w ; enumPARAMFLAGS
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 : padding.b[2] : CompilerEndIf
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 : padding.b[6] : CompilerEndIf
EndStructure
Structure ELEMDESC
TypDesc.TYPEDESC
ParDesc.PARAMDESC
EndStructure
Structure FUNCDESC
memId.l
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 : padding1.b[4] : CompilerEndIf
reserved1.i
*ElemDescParam.ELEMDESC
FncKind.l ; enumFUNCKIND
InvKind.l ; enumINVOKEKIND
CallConv.l ; enumCALLCONV
cParams.w
cParamsOpt.w
oVft.w
reserved2.w
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 : padding2.b[4] : CompilerEndIf
ElemDescFunc.ELEMDESC
FncFlags.w ; enumFUNCFLAGS
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 : padding3.b[2] : CompilerEndIf
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 : padding3.b[6] : CompilerEndIf
EndStructure
Structure VARDESC
memId.l
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 : padding1.b[4] : CompilerEndIf
reserved.i
StructureUnion
oInst.l ; wenn varkind = VAR_PERINSTANCE | VAR_DISPATCH | VAR_STATIC
*Value.VARIANT ; wenn varkind = VAR_CONST
EndStructureUnion
ElemDescVar.ELEMDESC
VarFlags.w ; enumVARFLAGS
padding2.b[2]
VarKind.l ; enumVARKIND
EndStructure
Structure TYPEATTR
guid.GUID
lcId.l
reserved1.l
reserved2.l
reserved3.l
reserved4.i
SizeInstance.l
TypKind.l ; enumTYPEKIND
cFuncs.w
cVars.w
cImplTypes.w
cbSizeVft.w
cbAlignment.w
TypeFlags.w ; enumTYPEFLAGS
MajorVerNum.w
MinorVerNum.w
TypDescAlias.TYPEDESC
IdlDesc.IDLDESC
EndStructure
Structure TLIBATTR
guid.GUID
lcId.l
SysKind.l ; enumSYSKIND
MajorVerNum.w
MinorVerNum.w
LibFlags.w ; enumLIBFLAGS
padding.b[2]
EndStructure
Code: Alles auswählen
Enumeration ; enumTYPEFLAGS
#TYPEFLAG_FAPPOBJECT = 1
#TYPEFLAG_FCANCREATE = 2
#TYPEFLAG_FLICENSED = 4
#TYPEFLAG_FPREDECLID = 8
#TYPEFLAG_FHIDDEN = 16
#TYPEFLAG_FCONTROL = 32
#TYPEFLAG_FDUAL = 64
#TYPEFLAG_FNONEXTENSIBLE = 128
#TYPEFLAG_FOLEAUTOMATION = 256 ;Wenn Oleautomation oder Dual, NIE bei Dispinterface
#TYPEFLAG_FRESTRICTED = 512
#TYPEFLAG_FAGGREGATABLE = 1024
#TYPEFLAG_FREPLACEABLE = 2048
#TYPEFLAG_FDISPATCHABLE = 4096
#TYPEFLAG_FREVERSEBIND = 8192
EndEnumeration
Enumeration ; enumVARFLAGS
#VARFLAG_FREADONLY = 1
#VARFLAG_FSOURCE = 2
#VARFLAG_FBINDABLE = 4
#VARFLAG_FREQUESTEDIT = 8
#VARFLAG_FDISPLAYBIND = 16
#VARFLAG_FDEFAULTBIND = 32
#VARFLAG_FHIDDEN = 64
#VARFLAG_FRESTRICTED = 128
#VARFLAG_FDEFAULTCOLLELEM = 256
#VARFLAG_FUIDEFAULT = 512
#VARFLAG_FNONBROWSABLE = 1024
#VARFLAG_FREPLACEABLE = 2048
#VARFLAG_FIMMEDIATEBIND = 4096
EndEnumeration
Enumeration ; enumFUNCFLAGS
#FUNCFLAG_FRESTRICTED = 1
#FUNCFLAG_FSOURCE = 2
#FUNCFLAG_FBINDABLE = 4
#FUNCFLAG_FREQUESTEDIT = 8
#FUNCFLAG_FDISPLAYBIND = 16
#FUNCFLAG_FDEFAULTBIND = 32
#FUNCFLAG_FHIDDEN = 64
#FUNCFLAG_FUSESGETLASTERROR = 128
#FUNCFLAG_FDEFAULTCOLLELEM = 256
#FUNCFLAG_FUIDEFAULT = 512
#FUNCFLAG_FNONBROWSABLE = 1024
#FUNCFLAG_FREPLACEABLE = 2048
#FUNCFLAG_FIMMEDIATEBIND = 4096
EndEnumeration
Enumeration ; enumLIBFLAGS
#LIBFLAG_FRESTRICTED = 1
#LIBFLAG_FCONTROL = 2
#LIBFLAG_FHIDDEN = 4
#LIBFLAG_FHASDISKIMAGE = 8
EndEnumeration
Enumeration ; enumPARAMFLAGS
#PARAMFLAG_NONE = 0
#PARAMFLAG_FIN = 1
#PARAMFLAG_FOUT = 2
#PARAMFLAG_FLCID = 4
#PARAMFLAG_FRETVAL = 8
#PARAMFLAG_FOPT = 16
#PARAMFLAG_FHASDEFAULT = 32
#PARAMFLAG_FHASCUSTDATA = 64
EndEnumeration
Enumeration ; enumIMPLTYPEFLAGS
#IMPLTYPEFLAG_FDEFAULT = 1
#IMPLTYPEFLAG_FSOURCE = 2
#IMPLTYPEFLAG_FRESTRICTED = 4
#IMPLTYPEFLAG_FDEFAULTVTABLE = 8
EndEnumeration
Enumeration ; enumTYPEKIND
#TKIND_ENUM = 0
#TKIND_RECORD = 1
#TKIND_MODULE = 2
#TKIND_INTERFACE = 3
#TKIND_DISPATCH = 4
#TKIND_COCLASS = 5
#TKIND_ALIAS = 6
#TKIND_UNION = 7
EndEnumeration
Enumeration ; enumVARKIND
#VAR_PERINSTANCE = 0
#VAR_STATIC = 1
#VAR_CONST = 2
#VAR_DISPATCH = 3
EndEnumeration
Enumeration ; enumFUNCKIND
#FUNC_PUREVIRTUAL = 1
#FUNC_STATIC = 3
#FUNC_DISPATCH = 4
EndEnumeration
Enumeration ; enumINVOKEKIND
#INVOKE_FUNC = 1
#INVOKE_PROPERTYGET = 2
#INVOKE_PROPERTYPUT = 4
#INVOKE_PROPERTYPUTREF = 8
EndEnumeration
Enumeration ; enumSYSKIND
#SYS_WIN16 = 0
#SYS_WIN32 = 1
#SYS_MAC = 2
#SYS_WIN64 = 3
EndEnumeration
Enumeration ; enumDESCKIND
#DESCKIND_NONE = 0
#DESCKIND_FUNCDESC = 1
#DESCKIND_VARDESC = 2
#DESCKIND_TYPECOMP = 3
#DESCKIND_IMPLICITAPPOBJ = 4
EndEnumeration
Enumeration ; enumCALLCONV
#CC_CDECL = 1
#CC_MSCPASCAL = 2
#CC_STDCALL = 4
EndEnumeration