ReactOS 0.4.16-dev-41-ge8c7597
objects.cpp
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS shdocvw
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: Shell objects
5 * COPYRIGHT: Copyright 2024 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
6 */
7
8#include "objects.h"
9
10#include <wine/debug.h>
12
13void *operator new(size_t size)
14{
15 return ::LocalAlloc(LMEM_FIXED, size);
16}
17
18void operator delete(void *ptr)
19{
21}
22
23void operator delete(void *ptr, size_t size)
24{
26}
27
29{
30 ERR("__cxa_pure_virtual\n");
32}
33
34BEGIN_OBJECT_MAP(ObjectMap)
35 OBJECT_ENTRY(CLSID_SH_FavBand, CFavBand)
36 OBJECT_ENTRY(CLSID_ExplorerBand, CExplorerBand)
38
39class SHDOCVW_Module : public CComModule
40{
41public:
42};
43
45
48{
49 gModule.Init(ObjectMap, hInstance, NULL);
50}
51
54{
55 return gModule.DllCanUnloadNow();
56}
57
61
64{
65 HRESULT hr = gModule.DllGetClassObject(rclsid, riid, ppv);
66 if (SUCCEEDED(hr))
67 return hr;
68
70 {
71 if (IsEqualGUID(rclsid, CLSID_MruLongList) ||
72 IsEqualGUID(rclsid, CLSID_MruPidlList))
73 {
75 }
76 }
77 else if (IsEqualGUID(riid, IID_IMruDataList))
78 {
79 return CMruLongList_CreateInstance(0, ppv, 0);
80 }
81 else if (IsEqualGUID(riid, IID_IMruPidlList))
82 {
83 return CMruPidlList_CreateInstance(0, ppv, 0);
84 }
85
87}
88
91{
92 return gModule.DllRegisterServer(FALSE);
93}
94
97{
98 return gModule.DllUnregisterServer(FALSE);
99}
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
const WCHAR * class
Definition: main.c:68
#define ERR(fmt,...)
Definition: precomp.h:57
#define EXTERN_C
Definition: basetyps.h:12
const GUID IID_IUnknown
const GUID IID_IClassFactory
HINSTANCE hInstance
Definition: charmap.c:19
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
GLsizeiptr size
Definition: glext.h:5919
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#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
static PVOID ptr
Definition: dispmode.c:27
EXTERN_C HRESULT SHDOCVW_DllCanUnloadNow(VOID)
Definition: objects.cpp:53
EXTERN_C void __cxa_pure_virtual(void)
Definition: objects.cpp:28
static SHDOCVW_Module gModule
Definition: objects.cpp:44
EXTERN_C HRESULT CMruPidlList_CreateInstance(DWORD_PTR dwUnused1, void **ppv, DWORD_PTR dwUnused3)
Definition: mrulist.cpp:1245
EXTERN_C HRESULT CMruLongList_CreateInstance(DWORD_PTR dwUnused1, void **ppv, DWORD_PTR dwUnused3)
Definition: mrulist.cpp:711
EXTERN_C HRESULT SHDOCVW_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
Definition: objects.cpp:63
EXTERN_C HRESULT SHDOCVW_DllUnregisterServer(VOID)
Definition: objects.cpp:96
EXTERN_C HRESULT SHDOCVW_DllRegisterServer(VOID)
Definition: objects.cpp:90
EXTERN_C HRESULT CMruClassFactory_CreateInstance(REFIID riid, void **ppv)
Definition: mrulist.cpp:1372
EXTERN_C VOID SHDOCVW_Init(HINSTANCE hInstance)
Definition: objects.cpp:47
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define REFIID
Definition: guiddef.h:118
#define REFCLSID
Definition: guiddef.h:117
HRESULT hr
Definition: shlfolder.c:183
uint32_t DWORD_PTR
Definition: typedefs.h:65
void WINAPI DebugBreak(void)
#define LMEM_FIXED
Definition: winbase.h:368
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:2663