![]() |
Parametertypen ermitteln (COM Libraries)
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:
...:cat:...
// 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; |
Re: Parametertypen ermitteln (COM Libraries)
Delphi-Quellcode:
ParamType := FuncDesc.lprgelemdescParam^[ParameterIndex].tdesc.vt
|
Re: Parametertypen ermitteln (COM Libraries)
:wall:
Danke!!! ...:cat:... |
Re: Parametertypen ermitteln (COM Libraries)
@jbg: Man mag es kaum glauben, aber die sind, im Unterschied zu den Namen, nullbasiert :twisted:
Code:
...:cat:...
ParamType := FuncDesc.lprgelemdescParam^[ParameterIndex[b][color=#ff0019]-1[/color][/b]].tdesc.vt
|
Re: Parametertypen ermitteln (COM Libraries)
Zitat:
|
Re: Parametertypen ermitteln (COM Libraries)
Zitat:
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz