Hi,
ich habe ein Programm, welche anhand des
ITypeInfo Interfaces die "Member" einer
COM-Bibliothek ermittelt. Wenn ich jetzt auf die Ebene der Funktionen und Eigenschaften komme, möchte ich die Typen (und Standardwerte) der Parameter ermitteln. Wo muss ich ansetzen?
Delphi-Quellcode:
// TypeInfo ist vom Typ ITypeInfo (unit ActiveX)
// TypeAttr ist vom Typ PTypeAttr
// beide sind korrekt initialisiert
var
FuncIndex: Integer;
FuncDesc: PFuncDesc;
ParamIndex: Integer;
Names: PBStrList;
cNames: Integer;
....
for FuncIndex := 0
to TypeAttr.cFuncs - 1
do begin
TypeInfo.GetFuncDesc(FuncIndex, FuncDesc);
try
TypeInfo.GetDocumentation(FuncDesc.memid, @AName,
@ADocString, @AHelpContext,
nil);
// Rückgabetyp der Funktion
VarTypeAsText(FuncDesc.elemdescFunc.tdesc.vt);
if FuncDesc.cParams > 0
then begin
TypeInfo.GetNames(FuncDesc.memid, Names, sizeof(TBStrList),
cNames);
for ParamIndex := 1
to FuncDesc.cParams
do
begin
// Name der Funktion
Names[ParamIndex]
//****************************************************************
// WIE BEKOMME ICH DEN TYP DES PARAMETERS UND SEINEN STANDARDWERT?
//****************************************************************
end;
end;
finally
TypeInfo.ReleaseFuncDesc(FuncDesc);
end;
end;
...
...