ReactOS 0.4.16-dev-1097-g530d26a
cabview.cpp
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS CabView Shell Extension
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: DLL entry point
5 * COPYRIGHT: Copyright 2024 Whindmar Saksit <whindsaks@proton.me>
6 */
7
8#include "cabview.h"
9
10#include <initguid.h>
11DEFINE_GUID(CLSID_CabFolder, 0x0CD7A5C0,0x9F37,0x11CE,0xAE,0x65,0x08,0x00,0x2B,0x2E,0x12,0x62);
12
13CComModule g_Module;
14
15BEGIN_OBJECT_MAP(ObjectMap)
18
20{
21 switch (dwReason)
22 {
25 g_Module.Init(ObjectMap, hInstance, NULL);
26 break;
27 }
28
29 return TRUE;
30}
31
33{
34 return g_Module.DllCanUnloadNow();
35}
36
38{
39 return g_Module.DllGetClassObject(rclsid, riid, ppv);
40}
41
43{
44 HRESULT hr;
45
46 hr = g_Module.DllRegisterServer(FALSE);
48 return hr;
49
50 hr = g_Module.UpdateRegistryFromResource(IDR_FOLDER, TRUE, NULL);
51 if (FAILED(hr))
52 return hr;
53
54 return S_OK;
55}
56
58{
59 HRESULT hr1 = g_Module.DllUnregisterServer(FALSE);
60 HRESULT hr2 = g_Module.UpdateRegistryFromResource(IDR_FOLDER, FALSE, NULL);
61 if (FAILED_UNEXPECTEDLY(hr1))
62 return hr1;
63 if (FAILED_UNEXPECTEDLY(hr2))
64 return hr2;
65 return S_OK;
66}
static DWORD const LPVOID const lpReserved
DWORD dwReason
Definition: misc.cpp:135
#define STDAPI
Definition: basetyps.h:41
#define EXTERN_C
Definition: basetyps.h:12
EXTERN_C BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
Definition: cabview.cpp:19
STDAPI DllRegisterServer()
Definition: cabview.cpp:42
STDAPI DllCanUnloadNow()
Definition: cabview.cpp:32
STDAPI DllUnregisterServer()
Definition: cabview.cpp:57
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
Definition: cabview.cpp:37
CComModule g_Module
Definition: cabview.cpp:13
EXTERN_C const GUID CLSID_CabFolder
Definition: cabview.h:14
HINSTANCE hInstance
Definition: charmap.c:19
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define IDR_FOLDER
Definition: resource.h:14
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:65
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
#define END_OBJECT_MAP()
Definition: atlcom.h:691
#define OBJECT_ENTRY(clsid, class)
Definition: atlcom.h:693
#define BEGIN_OBJECT_MAP(x)
Definition: atlcom.h:689
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define REFIID
Definition: guiddef.h:118
#define REFCLSID
Definition: guiddef.h:117
HRESULT hr
Definition: shlfolder.c:183
#define WINAPI
Definition: msvc.h:6