accessing enums in a COM object [jscript]

656 views Asked by At

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?

2

There are 2 answers

2
i_am_jorf On BEST ANSWER

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().

0
Kim Gräsman On

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?