Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / dll / shellext / stobject / stobject.cpp
1 /*
2 * PROJECT: ReactOS system libraries
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/shellext/stobject/stobject.cpp
5 * PURPOSE: COM registration services for STobject.dll
6 * PROGRAMMERS: Robert Naumann
7 * David Quintana <gigaherz@gmail.com>
8 */
9
10 #include "precomp.h"
11
12 #include <olectl.h>
13 #include <atlwin.h>
14
15 WINE_DEFAULT_DEBUG_CHANNEL(stobject);
16
17 BEGIN_OBJECT_MAP(ObjectMap)
18 OBJECT_ENTRY(CLSID_SysTray, CSysTray)
19 END_OBJECT_MAP()
20
21 HINSTANCE g_hInstance;
22 CComModule g_Module;
23
24 STDAPI_(BOOL)
25 DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
26 {
27 if (fdwReason == DLL_PROCESS_ATTACH)
28 {
29 g_hInstance = hinstDLL;
30 DisableThreadLibraryCalls(g_hInstance);
31
32 g_Module.Init(ObjectMap, g_hInstance, NULL);
33 }
34 else if (fdwReason == DLL_PROCESS_DETACH)
35 {
36 g_hInstance = NULL;
37 g_Module.Term();
38 }
39 return TRUE;
40 }
41
42 STDAPI
43 DllRegisterServer(void)
44 {
45 return g_Module.DllRegisterServer(FALSE);
46 }
47
48 STDAPI
49 DllUnregisterServer(void)
50 {
51 return g_Module.DllUnregisterServer(FALSE);
52 }
53
54 STDAPI
55 DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
56 {
57 return g_Module.DllGetClassObject(rclsid, riid, ppv);
58 }
59
60 STDAPI
61 DllCanUnloadNow(void)
62 {
63 return g_Module.DllCanUnloadNow();
64 }