Как работает TypeName в VBScript
От: Ury  
Дата: 28.10.04 07:26
Оценка:
В VBScript есть одна интересная функция — называется TypeName, которая получает тип переменной. Очень хотелось бы узнать, как это делается, и реализовать подобную функцию для Visual C++.
Для переменных типа число, строка, дата и т.п. все достаточно просто. Основная проблема возникает с объектами. Как получить тип объекта (VT_DISPATCH)? VBScript не говорит, что это просто объект, а говорит — что это, например, "FileSystemObject" или "IWshShell3" объект. Как он это узнает???
Re: Как работает TypeName в VBScript
От: NKZ  
Дата: 28.10.04 08:27
Оценка:
Здравствуйте, Ury, Вы писали:

Ury>Для переменных типа число, строка, дата и т.п. все достаточно просто. Основная проблема возникает с объектами. Как получить тип объекта (VT_DISPATCH)? VBScript не говорит, что это просто объект, а говорит — что это, например, "FileSystemObject" или "IWshShell3" объект. Как он это узнает???


VB использует функций для работы с Type Library, он загружает библиотеку и вынимает из нее всю информацию. Посмотри интерфейсы ITypeLib, ITypeInfoю
... << RSDN@Home 1.1.4 beta 3 rev. 0>>
Re[2]: Как работает TypeName в VBScript
От: Ury  
Дата: 28.10.04 08:43
Оценка:
Спасибо за помощь. Разобрался.
Если кому интересно, то с помощью следующей последовательности вызовов можно добраться до описания типов:
pDisp->GetTypeInfo(0, LOCALE_SYSTEM_DEFAULT, &pTypeInfo);
pTypeInfo->GetContainingTypeLib (&pTLib, &nIndex);
pTLib->GetDocumentation (nIndex, &pName, &pDocString, &nContext, &pHelpFile);
Re: Как работает TypeName в VBScript
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 28.10.04 08:45
Оценка:
Здравствуйте, Ury, Вы писали:

Ury>Как он это узнает???


http://www.rsdn.ru/article/com/typeinfo.xml
Автор(ы): Павел Коломиец
Дата: 01.01.2004
Для получения информации о COM объектах существуют специальные утилиты (например, входящий в состав Студии "OLE/COM Object Viewer"), которые и расскажут, и покажут, и IDL напишут. Но иногда необходимо получить эти данные "на лету", во время выполнения программы. Механизмам получения информации об интерфейсах и посвящена эта статья.
?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.