делаю 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