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?

È stato utile?

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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top