Директиву Import можно использоваться и без проекта на VC++. Просто саму в результате в папке Debug она сформирует THL файл. Он текстовый файл и в нем будут описания классов и интерфейсов.
// Created by Microsoft (R) C/C++ Compiler Version 12.00.8168.0 (80e16df7). // ..... ICTestDll : IDispatch { // // Wrapper methods for error-handling // HRESULT MessageMi ( ); // // Raw methods provided by interface // virtual HRESULT __stdcall raw_MessageMi ( ) = 0; }; .....................
Посмотрев его Вы сможете изучить какие там есть методы. Второй файл будет иметь расширение TLI в котором будет реализация классов.
// interface ICTestDll wrapper method implementations // ........... inline HRESULT ICTestDll::MessageMi ( ) { HRESULT _hr = raw_MessageMi(); if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); return _hr; } ...........
Так вот название классов и интерфейсов, название пространства имен берется именно из этого файла который компилятор генерирует автоматически. Как видите классы объектов COM просто оборачивают IDispatch. Из этих файлов видно, что используется заголовочный файл #include "comdef.h" соответсвенно в этом заголовочном классе находятся все шаблоны и мактросы.
_COM_SMARTPTR_TYPEDEF(ICTestDll, __uuidof(ICTestDll));
описан там же который создает указатель на COM объект.