Вопрос

Как получить доступ к перечислению, определенному в 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, и если да, то как?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top