1

How do I access an enum that is defined within a COM interface? Specifically, I've created a new instance of an iTunes.Application:

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

... and I want to be able to use certain enums defined within the COM

iTunesTrackCOM.idl File Reference
[...]
Enumerations
[...]

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

I've tried iTunesApp.ITVideoKindTVShow, but that doesn't seem to work.

Alternatively, how could I root around the iTunesApp object interactively via a shell or something like that?

Peyton
  • 441
  • 1
  • 3
  • 14

2 Answers2

2

You can't use the enum by name. You have to just use the constants: 0, 1, 2...

It's really awesome when you're dealing with bit-fields. You have to use the decimal value of the bit-flag, e.g. the flags parameter to IHTMLTxtRange::findText().

i_am_jorf
  • 53,608
  • 15
  • 131
  • 222
0

You can use a tool like tlb2const to generate constants from the typelib.

See my answer here: Is it possible to expose a C# Enum to COM Interop callers, and if so, how?

Community
  • 1
  • 1
Kim Gräsman
  • 7,438
  • 1
  • 28
  • 41