Accedendo enumerazioni in un oggetto COM [jscript]
-
11-09-2019 - |
Domanda
Come si accede a un enum definito all'interno di un'interfaccia COM? In particolare, ho creato una nuova istanza di un iTunes.Application:
var iTunesApp = WScript.CreateObject("iTunes.Application");
... e voglio essere in grado di utilizzare alcuni enumerazioni definite all'interno del COM
iTunesTrackCOM.idl file di riferimento
[...]
Enumerazioni
[...]
enum ITVideoKind {
ITVideoKindNone = 0,
ITVideoKindMovie,
ITVideoKindMusicVideo,
ITVideoKindTVShow
}
Ho provato iTunesApp.ITVideoKindTVShow, ma questo non sembra funzionare.
In alternativa, come avrei potuto sradicare intorno all'oggetto iTunesApp interattivamente tramite una shell o qualcosa del genere?
Soluzione
Non è possibile utilizzare l'enum per nome. Bisogna usare solo le costanti: 0, 1, 2 ...
E 'davvero impressionante quando hai a che fare con bit-field. Devi usare il valore decimale del bit-bandiera, per esempio il parametro flags
a IHTMLTxtRange :: findText () .
Altri suggerimenti
È possibile utilizzare uno strumento come tlb2const per generare costanti dalla libreria dei tipi.
Vedere la mia risposta qui: e 'possibile esporre un C # Enum ai chiamanti COM Interop, e se sì, come?