Войти

Показать полную графическую версию : Не создаётся COM-сервер


pva
31-08-2013, 11:27
делаю DLL, с заглушечными функциям (просто выводят сообщения)

STDAPI __declspec(dllexport) DllRegisterServer(void);
STDAPI __declspec(dllexport) DllUnregisterServer(void);
STDAPI __declspec(dllexport) DllCanUnloadNow(void);
STDAPI __declspec(dllexport) DllGetClassObject(REFCLSID clsid, REFIID id, LPVOID *out);

Проверяю

regsvr32 libax_ser_test.dll

нужное сообщение выскакивает.

Прописываю в реестре:

HKEY_CLASSES_ROOT\CLSID\{9b903d34-1f68-48de-b344-b18481a318e8}\ProgID
(по умолчанию) = LUA.MyClass
HKEY_CLASSES_ROOT\CLSID\{9b903d34-1f68-48de-b344-b18481a318e8}\InprocServer32
(по умолчанию) = D:\work\active_x\ax_ser_test\Debug\libax_ser_test.dll
ThreadingModel = Both
HKEY_CLASSES_ROOT\LUA.MyClass
(по умолчанию) = Lua server test
HKEY_CLASSES_ROOT\LUA.MyClass\CLSID
(по умолчанию) = {9b903d34-1f68-48de-b344-b18481a318e8}


запускаю тестирующий код

IDispatch *disp;
GUID clsid;
HRESULT initialized = CoInitialize(0);
// это работает
HRESULT got_guid = CLSIDFromProgID(L"LUA.MyClass", &clsid);
// это не работает
HRESULT created = CoCreateInstance(clsid, 0, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&disp);
/*
Name : created
Details:-2147221164
Default:-2147221164
Decimal:-2147221164
Hex:0x80040154
Binary:10000000000001000000000101010100
Octal:020001000524
*/

где намудил? чего не хватает?
win7, mingw




© OSzone.net 2001-2012