Re[3]: Научите через WBScript управлять API
От: George Seryakov Россия  
Дата: 12.06.06 18:41
Оценка:
Здравствуйте, ZAMUNDA, Вы писали:

GS>><CLSID> — строка, идентифицирующая объект. В хелпе не указана. Нужна библиотека типов.


ZAM>CLSID -- это 128-битная (32-байтная) структура описывающая объект, которую ещё можно строкой вида "{########-####-####-####-############}" представить. А вот CreateObject принимает ProgId, можете убедиться в этом сами (цитата MSDN):


Да, признаю, ошибочка вышла, привык, что в CComPtr можно вперемежку ставить что прог, что классайди, вот что-то такое про CreateObject померещилось

ZAM>Кстати в хелпнике, который по ссылке в первой мессаге имееЦЦа, есть указание что интерфейс называется IRunpadShell. Можно в реестре поискать значение "IRunpadShell" (значение имеется ввиду искать только 'Data') и наткнуться на адрес типа HKEY_CLASSES_ROOT\Interface\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}, а потом можна зайти на адрес <найденный адрес>\TypeLib скопировать оттуда значение (Default) и поискать ключ с таким названием; в ём , как я уже и сказал выше, отыщешь ProgID.


И это, пожалуй, правильно, поскольку в библиотеке типов прогайди не пишут, оно может быть в регистрационном скрипте в экзешнике (и длл-нике), влинкованном, но совершенно не обязательно.

GS>>Далее, не всякий COM-сервер можно вызывать из vbs, а только дуальные и диспатчевые. Какой у тебя — можно узнать по библиотеке типов.

ZAM>А можно просто попробовать его создать, через CreateObject.

Вот только если не получится, не будешь знать — не то интерфейс не диспатчный, не то не дефолтный, а не то параметры не той системы. Кстати, все заметили в хелпе оговорочку насчет того, что функции не юникодные?
GS
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.