Нашол CLSID документа ворда HKEY_CLASSES_ROOT\CLSID\{18A06B6B-2F3F-4E2B-A611-52BE631B2D22} пытаюсь теперь добраться до методов. Код (Text): #include "unknwn.h" // "18A06B6B-2F3F-4E2B-A611-52BE631B2D22" const CLSID CLSID_Word2003 = {0x18A06B6B, 0x2F3F, 0x4E2B, {0xA6, 0x11, 0x52, 0xBE, 0x63, 0x1B, 0x2D, 0x22}}; void InitDocComLib(){ HRESULT hr; IUnknown *unknwn; hr = CoInitializeEx(NULL,COINIT_MULTITHREADED); if ( FAILED(hr) ) return ; hr = CoCreateInstance(CLSID_Word2003,NULL,CLSCTX_INPROC_SERVER,IID_IUnknown,(LPVOID*)&unknwn); if (FAILED(hr)) return; hr = unknwn->QueryInterface(CLSID_Word2003, (void**)&pSum); if(FAILED(hr)){ return ; }; CoUninitialize(); }; CoCreateInstance возвращает Class not registered вопрос почему ?... Ворд установлен...
У ворда COM сервер в exe файле, так что как справедливо замечено выше нужно использовать CLSCTX_LOCAL_SERVER.
Делаю так Код (Text): HRESULT hr; IUnknown *unknwn,*pSum; CLSID Word; CLSIDFromProgID(L"Word.Application",&Word); hr = CoCreateInstance(Word,NULL,CLSCTX_LOCAL_SERVER,IID_IUnknown,(LPVOID*)&unknwn); if (FAILED(hr)) return; hr = unknwn->QueryInterface(Word, (void**)&pSum); if(FAILED(hr)){ return ; }; А возвращает E_NOINTERFACE Интересно чего так?..