Hallo,
Ich bin gerade dabei, meinen eigenen Script Host zu schreiben.
So weit, so gut (oder eher nicht).
Im Moment bin ich dabei, die Attribute eines in die Scripting-Engine
geladenen (und geparsten) Scripts zu ermitteln.
Ich gehe dabei folgendermassen vor:
- Ermitteln der Dispatch-Schnittstelle der Engine mit
IActiveScript::GetScriptDispatch().
- Typinformationen ermitteln mit IDispatch::GetTypeInfo().
- Auf der ITypeInfo-Schnittstelle GetTypeAttr() aufrufen.
- Anhand der von GetTypeAttr() gefüllten TYPEATTR-Struktur über die
Funktionen und Variablen iterieren (GetFuncDesc(), bzw. GetVarDesc()).
Bis hierher geht auch alles gut, aber jetzt kommt der Haken.
Die in den jeweiligen Strukturen FUNCDESC, bzw. VARDESC zurückgelieferten
Informationen sind lediglich rudimentärer Natur. Für Funktionen bekomme
nur den Rückgabe-Typ und die Anzahl der Parameter. Bei den Parametern
(PARAMDESC) bekomme ich nur den Datentyp des Parameters. Ich bekomme weder
Informationen darüber, ob es sich bei dem Parameter um ein Array handelt,
ob er BYREF oder BYVAL übergeben wird, noch ob er einen Default-Wert hat.
Alle diese Daten sind in den jeweiligen Strukturen vorgesehen, sind
aber NULL, bzw. 0!!!!!
Bei den Variablen verhält es sich genauso.
Wie komme ich an vollständige Typinformationen???????
Ich habe diesen Text bereits in diversen Newsgroups gepostet,
jedoch ohne Erfolg!
MfG
Reiner Ziegler
[email protected]
Ich bin gerade dabei, meinen eigenen Script Host zu schreiben.
So weit, so gut (oder eher nicht).
Im Moment bin ich dabei, die Attribute eines in die Scripting-Engine
geladenen (und geparsten) Scripts zu ermitteln.
Ich gehe dabei folgendermassen vor:
- Ermitteln der Dispatch-Schnittstelle der Engine mit
IActiveScript::GetScriptDispatch().
- Typinformationen ermitteln mit IDispatch::GetTypeInfo().
- Auf der ITypeInfo-Schnittstelle GetTypeAttr() aufrufen.
- Anhand der von GetTypeAttr() gefüllten TYPEATTR-Struktur über die
Funktionen und Variablen iterieren (GetFuncDesc(), bzw. GetVarDesc()).
Bis hierher geht auch alles gut, aber jetzt kommt der Haken.
Die in den jeweiligen Strukturen FUNCDESC, bzw. VARDESC zurückgelieferten
Informationen sind lediglich rudimentärer Natur. Für Funktionen bekomme
nur den Rückgabe-Typ und die Anzahl der Parameter. Bei den Parametern
(PARAMDESC) bekomme ich nur den Datentyp des Parameters. Ich bekomme weder
Informationen darüber, ob es sich bei dem Parameter um ein Array handelt,
ob er BYREF oder BYVAL übergeben wird, noch ob er einen Default-Wert hat.
Alle diese Daten sind in den jeweiligen Strukturen vorgesehen, sind
aber NULL, bzw. 0!!!!!
Bei den Variablen verhält es sich genauso.
Wie komme ich an vollständige Typinformationen???????
Ich habe diesen Text bereits in diversen Newsgroups gepostet,
jedoch ohne Erfolg!
MfG
Reiner Ziegler
[email protected]
Comment