Files
Work/test/test.cpp
2024-08-07 09:16:27 -04:00

39 lines
1.0 KiB
C++

#include <common/windows.hpp>
#include <com/factory.hpp>
#include <test/inproc.hpp>
#include <common/console.hpp>
DLLServer sDLLServer;
Console sWinConsole(Console::ConsoleType(Console::Write|Console::Read),true);
InProcServerDemoInstantiator inProcServerDemoInstantiator;
ClassFactory sClassFactory(sDLLServer,sWinConsole);
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid,void **ppv)
{
sWinConsole.writeLine("<DllGetClassObject>");
*ppv=0;
return sClassFactory.QueryInterface(riid,ppv);
}
STDAPI DllCanUnloadNow(void)
{
sWinConsole.writeLine("<DllCanUnloadNow>");
return (0==sDLLServer.getRefCount()&&0==sDLLServer.getLockCount()?S_OK:S_FALSE);
}
BOOL _stdcall DllMain(HINSTANCE /*hInstance*/,DWORD reasonCode,LPVOID /*lpvReserved*/)
{
switch(reasonCode)
{
case DLL_PROCESS_ATTACH :
sClassFactory.setInstantiator(&inProcServerDemoInstantiator);
sWinConsole.writeLine("<Process attach.>");
break;
case DLL_PROCESS_DETACH :
sWinConsole.writeLine("<Process detach.>");
sWinConsole.read();
break;
}
return TRUE;
}