1c829f96a2aab69bd3a7b1957275d7b9ec98202f
2 * PROJECT: ReactOS shell extensions
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/shellext/ntobjshex/ntobjshex.cpp
5 * PURPOSE: NT Object Namespace shell extension
6 * PROGRAMMERS: David Quintana <gigaherz@gmail.com>
13 WINE_DEFAULT_DEBUG_CHANNEL(ntobjshex
);
15 BEGIN_OBJECT_MAP(ObjectMap
)
16 OBJECT_ENTRY(CLSID_NtObjectFolder
, CNtObjectFolder
)
17 OBJECT_ENTRY(CLSID_RegistryFolder
, CRegistryFolder
)
20 HINSTANCE g_hInstance
;
23 void *operator new (size_t, void *buf
)
29 DllMain(HINSTANCE hinstDLL
, DWORD fdwReason
, LPVOID fImpLoad
)
31 if (fdwReason
== DLL_PROCESS_ATTACH
)
33 g_hInstance
= hinstDLL
;
34 DisableThreadLibraryCalls(g_hInstance
);
36 /* HACK - the global constructors don't run, so I placement new them here */
37 new (&g_Module
) CComModule
;
38 new (&_AtlWinModule
) CAtlWinModule
;
39 new (&_AtlBaseModule
) CAtlBaseModule
;
40 new (&_AtlComModule
) CAtlComModule
;
42 g_Module
.Init(ObjectMap
, g_hInstance
, NULL
);
44 else if (fdwReason
== DLL_PROCESS_DETACH
)
53 DllRegisterServer(void)
55 return g_Module
.DllRegisterServer(FALSE
);
59 DllUnregisterServer(void)
61 return g_Module
.DllUnregisterServer(FALSE
);
65 DllGetClassObject(REFCLSID rclsid
, REFIID riid
, LPVOID
*ppv
)
67 return g_Module
.DllGetClassObject(rclsid
, riid
, ppv
);
73 return g_Module
.DllCanUnloadNow();