xref: /reactos/dll/shellext/stobject/stobject.cpp (revision e15874b4)
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 BEGIN_OBJECT_MAP(ObjectMap)
13     OBJECT_ENTRY(CLSID_SysTray, CSysTray)
14 END_OBJECT_MAP()
15 
16 HINSTANCE  g_hInstance;
17 CComModule g_Module;
18 
19 STDAPI_(BOOL)
DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID fImpLoad)20 DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
21 {
22     if (fdwReason == DLL_PROCESS_ATTACH)
23     {
24         g_hInstance = hinstDLL;
25         DisableThreadLibraryCalls(g_hInstance);
26 
27         g_Module.Init(ObjectMap, g_hInstance, NULL);
28     }
29     else if (fdwReason == DLL_PROCESS_DETACH)
30     {
31         g_hInstance = NULL;
32         g_Module.Term();
33     }
34     return TRUE;
35 }
36 
37 STDAPI
DllRegisterServer(void)38 DllRegisterServer(void)
39 {
40     return g_Module.DllRegisterServer(FALSE);
41 }
42 
43 STDAPI
DllUnregisterServer(void)44 DllUnregisterServer(void)
45 {
46     return g_Module.DllUnregisterServer(FALSE);
47 }
48 
49 STDAPI
DllGetClassObject(REFCLSID rclsid,REFIID riid,LPVOID * ppv)50 DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
51 {
52     return g_Module.DllGetClassObject(rclsid, riid, ppv);
53 }
54 
55 STDAPI
DllCanUnloadNow(void)56 DllCanUnloadNow(void)
57 {
58     return g_Module.DllCanUnloadNow();
59 }
60