AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Parametertypen ermitteln (COM Libraries)
Thema durchsuchen
Ansicht
Themen-Optionen

Parametertypen ermitteln (COM Libraries)

Ein Thema von sakura · begonnen am 8. Jul 2003 · letzter Beitrag vom 8. Jul 2003
Antwort Antwort
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#1

Parametertypen ermitteln (COM Libraries)

  Alt 8. Jul 2003, 13:01
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;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Parametertypen ermitteln (COM Libraries)

  Alt 8. Jul 2003, 15:06
ParamType := FuncDesc.lprgelemdescParam^[ParameterIndex].tdesc.vt
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Parametertypen ermitteln (COM Libraries)

  Alt 8. Jul 2003, 15:20


Danke!!!
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Parametertypen ermitteln (COM Libraries)

  Alt 8. Jul 2003, 15:24
@jbg: Man mag es kaum glauben, aber die sind, im Unterschied zu den Namen, nullbasiert
Code:
ParamType := FuncDesc.lprgelemdescParam^[ParameterIndex[b][color=#ff0019]-1[/color][/b]].tdesc.vt
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Parametertypen ermitteln (COM Libraries)

  Alt 8. Jul 2003, 16:36
Zitat von sakura:
im Unterschied zu den Namen, nullbasiert
Bist du dir da sicher, das die Namen nicht nullbasiert sind? Was steht denn dann bei Names[0] ?
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Parametertypen ermitteln (COM Libraries)

  Alt 8. Jul 2003, 22:36
Zitat von jbg:
Bist du dir da sicher, das die Namen nicht nullbasiert sind? Was steht denn dann bei Names[0] ?
Ja, ich bin mir sicher. In Names[0] steht noch einmal der Name der Eigenschaft/Methode. Stellt sich nur die Frage, warum an FuncDesc.lprgelemdescParam^[0] nicht auch noch einmal deren Rückgabewert steht. MS

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz