Zugriff auf Enums in einem COM -Objekt [Jscript
-
11-09-2019 - |
Frage
Wie greife ich auf eine Enum zu, die in einer COM -Schnittstelle definiert ist? Insbesondere habe ich eine neue Instanz einer iTunes.Application erstellt:
var iTunesApp = WScript.CreateObject("iTunes.Application");
... und ich möchte in der Lage sein, bestimmte Aufzüge zu verwenden, die im COM definiert sind
iTunestrackcom.idl Dateireferenz
[...]
Aufzählungen
[...]
enum ITVideoKind {
ITVideoKindNone = 0,
ITVideoKindMovie,
ITVideoKindMusicVideo,
ITVideoKindTVShow
}
Ich habe es mit iTunesapp.itvideokindtvshow ausprobiert, aber das scheint nicht zu funktionieren.
Wie könnte ich alternativ das iTunesApp -Objekt interaktiv über eine Shell oder ähnliches herumwurzeln?
Lösung
Sie können die Aufzählung nicht namentlich verwenden. Sie müssen nur die Konstanten verwenden: 0, 1, 2 ...
Es ist wirklich großartig, wenn Sie mit Bitfeldern zu tun haben. Sie müssen den Dezimalwert der Bit-Flag verwenden, z. B. die flags
Parameter zu IhtmltXtrange :: findText ().
Andere Tipps
Sie können ein Tool wie TLB2Const verwenden, um Konstanten aus der Typelibation zu generieren.
Siehe meine Antwort hier:Ist es möglich, COM -Interop -Anrufern einen C# Enum auszusetzen, und wenn ja, wie?