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