Pergunta

Como faço para acessar uma enumeração definida em uma interface COM? Especificamente, criei uma nova instância de um iTunes.Application:

var   iTunesApp = WScript.CreateObject("iTunes.Application");

... e eu quero poder usar certos enumes definidos no COM

referência do arquivo iTuneSTrackCom.idl
[...]
Enumerações
[...]

enum   ITVideoKind { 
   ITVideoKindNone = 0, 
   ITVideoKindMovie, 
   ITVideoKindMusicVideo, 
   ITVideoKindTVShow 
 }

Eu tentei o iTunesApp.itvideokindtvshow, mas isso não parece funcionar.

Como alternativa, como eu poderia enraizar o objeto iTunesapp interativamente através de uma concha ou algo assim?

Foi útil?

Solução

Você não pode usar o enum pelo nome. Você tem que apenas usar as constantes: 0, 1, 2 ...

É realmente incrível quando você está lidando com campos de bits. Você tem que usar o valor decimal da bandeira, por exemplo, o flags parâmetro para IhtmltxTrange :: findText ().

Outras dicas

Você pode usar uma ferramenta como o TLB2CONT para gerar constantes a partir do TypeLib.

Veja minha resposta aqui:É possível expor um c# enum para os chamadores interoperes e, em caso afirmativo, como?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top