Получить код IDL из TypeLibrary программно - PullRequest
2 голосов
/ 16 июня 2011

Я пишу код для выполнения следующих шагов:

Зарегистрируйте файл .net .dll и сгенерируйте файл .tlb, используя regasm.exe

  1. Зарегистрируйте файл .net .dll исгенерируйте .tlb с помощью regasm.exe
  2. . Сгенерируйте код IDL из библиотеки типов и сохраните его в файле.
  3. Отредактируйте код IDL, внеся незначительные изменения.
  4. ПерекомпилируйтеIDL в .tlb с помощью Midl.exe.

Шаг, на котором я застрял, как я уверен, вы уже догадались, это генерация IDL.Я знаю, что это можно сделать вручную с помощью OleViewer, поставляемого с Windows API, однако я бы хотел удалить этот шаг вручную.

Кажется, я не могу найти способ использовать OleViewer через командную строку или найти какой-либодругой метод генерации кода IDL.

У кого-нибудь есть идеи?Я знаю, что код для генерации IDL должен быть где-то в OleViewer ... возможно, есть способ получить к нему доступ?

1 Ответ

2 голосов
/ 06 июля 2011

Wine имеет открытую реализацию oleview

http://source.winehq.org/git/wine.git/tree/HEAD:/programs/oleview

Возможно, вы сможете использовать функции перечисления idl в typelib.c

http://source.winehq.org/git/wine.git/blob/HEAD:/programs/oleview/typelib.c

...