Доступ к перечислениям в COM-объекте [jscript]
Как получить доступ к перечислению, определенному в интерфейсе COM? В частности, я создал новый экземпляр iTunes.Application:
var iTunesApp = WScript.CreateObject("iTunes.Application");
... и я хочу иметь возможность использовать определенные перечисления, определенные в COM
Ссылка на файл iTunesTrackCOM.idl
[...]
Перечисления
[...]
enum ITVideoKind {
ITVideoKindNone = 0,
ITVideoKindMovie,
ITVideoKindMusicVideo,
ITVideoKindTVShow
}
Я пробовал iTunesApp.ITVideoKindTVShow, но, похоже, это не работает.
В качестве альтернативы, как я могу получить root-доступ к объекту iTunesApp в интерактивном режиме через оболочку или что-то подобное?
2 ответа
Вы не можете использовать перечисление по имени. Вы должны просто использовать константы: 0, 1, 2...
Это действительно здорово, когда вы имеете дело с битовыми полями. Вы должны использовать десятичное значение битового флага, например, flags
параметр для IHTMLTxtRange:: findText ().
Вы можете использовать инструмент типа tlb2const для генерации констант из библиотеки типов.
Смотрите мой ответ здесь: возможно ли выставить C# Enum для вызывающих COM Interop, и если да, то как?