ReactOS 0.4.16-dev-197-g92996da
shxiface.c
Go to the documentation of this file.
1#include "precomp.h"
2
3#define NDEBUG
4#include <debug.h>
5
7
10 REFIID iid,
11 PVOID *pvObject)
12{
15 iid,
16 pvObject);
17}
18
21{
24}
25
28{
31}
32
35 LPFNADDPROPSHEETPAGE pfnAddPage,
37{
40 pfnAddPage,
41 lParam);
42}
43
46 EXPPS uPageID,
47 LPFNADDPROPSHEETPAGE pfnReplacePage,
49{
52 uPageID,
53 pfnReplacePage,
54 lParam);
55}
56
57static IShellPropSheetExtVtbl efvtIShellPropSheetExt =
58{
64};
65
68 REFIID iid,
69 PVOID *pvObject)
70{
73 iid,
74 pvObject);
75}
76
79{
82}
83
86{
89}
90
93 LPCITEMIDLIST pidlFolder,
94 IDataObject *pdtobj,
95 HKEY hkeyProgID)
96{
99 pidlFolder,
100 pdtobj,
101 hkeyProgID);
102}
103
104static IShellExtInitVtbl efvtIShellExtInit =
105{
110};
111
114 REFIID iid,
115 PVOID *pvObject)
116{
119 iid,
120 pvObject);
121}
122
125{
128}
129
132{
135}
136
139 IUnknown * pUnkOuter,
140 REFIID riid,
142{
143 if (pUnkOuter != NULL &&
145 &IID_IUnknown))
146 {
148 }
149
151 ppvObject);
152}
153
156 BOOL fLock)
157{
158 if (fLock)
160 else
162
163 return S_OK;
164}
165
166static IClassFactoryVtbl efvtIClassFactory =
167{
173};
174
175VOID
177{
178 This->lpIShellPropSheetExtVtbl = &efvtIShellPropSheetExt;
179 This->lpIShellExtInitVtbl = &efvtIShellExtInit;
180 This->lpIClassFactoryVtbl = &efvtIClassFactory;
181
183}
184
187 REFIID riid,
188 LPVOID *ppv)
189{
190 if (ppv == NULL)
191 return E_INVALIDARG;
192
193 *ppv = NULL;
194 if (IsEqualCLSID(rclsid,
196 {
198 ppv);
199 }
200
201 DPRINT1("DllGetClassObject: CLASS_E_CLASSNOTAVAILABLE\n");
203}
204
207{
208 return dll_refs == 0 ? S_OK : S_FALSE;
209}
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
#define DPRINT1
Definition: precomp.h:8
HRESULT WINAPI DllCanUnloadNow(void)
Definition: misc.cpp:160
const GUID IID_IUnknown
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
LPARAM lParam
Definition: combotst.c:139
#define E_INVALIDARG
Definition: ddrawi.h:101
static IShellExtInitVtbl efvtIShellExtInit
Definition: shxiface.c:104
static IClassFactoryVtbl efvtIClassFactory
Definition: shxiface.c:166
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
Definition: shxiface.c:186
static IShellPropSheetExtVtbl efvtIShellPropSheetExt
Definition: shxiface.c:57
LONG dll_refs
Definition: shxiface.c:6
static ULONG STDMETHODCALLTYPE IDeskMonitor_IShellExtInit_AddRef(IShellExtInit *iface)
Definition: shxiface.c:78
static HRESULT STDMETHODCALLTYPE IDeskMonitor_IShellPropSheetExt_QueryInterface(IShellPropSheetExt *iface, REFIID iid, PVOID *pvObject)
Definition: shxiface.c:9
static ULONG STDMETHODCALLTYPE IDeskMonitor_IClassFactory_AddRef(IClassFactory *iface)
Definition: shxiface.c:124
static ULONG STDMETHODCALLTYPE IDeskMonitor_IShellPropSheetExt_AddRef(IShellPropSheetExt *iface)
Definition: shxiface.c:20
static ULONG STDMETHODCALLTYPE IDeskMonitor_IClassFactory_Release(IClassFactory *iface)
Definition: shxiface.c:131
static HRESULT STDMETHODCALLTYPE IDeskMonitor_IShellPropSheetExt_AddPages(IShellPropSheetExt *iface, LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
Definition: shxiface.c:34
static HRESULT STDMETHODCALLTYPE IDeskMonitor_IClassFactory_QueryInterface(IClassFactory *iface, REFIID iid, PVOID *pvObject)
Definition: shxiface.c:113
static ULONG STDMETHODCALLTYPE IDeskMonitor_IShellExtInit_Release(IShellExtInit *iface)
Definition: shxiface.c:85
static ULONG STDMETHODCALLTYPE IDeskMonitor_IShellPropSheetExt_Release(IShellPropSheetExt *iface)
Definition: shxiface.c:27
VOID IDeskMonitor_InitIface(PDESKMONITOR This)
Definition: shxiface.c:176
static HRESULT STDMETHODCALLTYPE IDeskMonitor_IShellPropSheetExt_ReplacePage(IShellPropSheetExt *iface, EXPPS uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam)
Definition: shxiface.c:45
static HRESULT STDMETHODCALLTYPE IDeskMonitor_IClassFactory_LockServer(IClassFactory *iface, BOOL fLock)
Definition: shxiface.c:155
static HRESULT STDMETHODCALLTYPE IDeskMonitor_IShellExtInit_Initialize(IShellExtInit *iface, LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID)
Definition: shxiface.c:92
static HRESULT STDMETHODCALLTYPE IDeskMonitor_IShellExtInit_QueryInterface(IShellExtInit *iface, REFIID iid, PVOID *pvObject)
Definition: shxiface.c:67
static HRESULT STDMETHODCALLTYPE IDeskMonitor_IClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, PVOID *ppvObject)
Definition: shxiface.c:138
HRESULT IDeskMonitor_ReplacePage(PDESKMONITOR This, EXPPS uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam)
Definition: deskmon.c:834
HRESULT IDeskMonitor_Initialize(PDESKMONITOR This, LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID)
Definition: deskmon.c:788
ULONG IDeskMonitor_Release(PDESKMONITOR This)
Definition: deskmon.c:735
HRESULT STDMETHODCALLTYPE IDeskMonitor_QueryInterface(PDESKMONITOR This, REFIID iid, PVOID *pvObject)
Definition: deskmon.c:754
HRESULT IDeskMonitor_Constructor(REFIID riid, LPVOID *ppv)
Definition: deskmon.c:844
ULONG IDeskMonitor_AddRef(PDESKMONITOR This)
Definition: deskmon.c:723
HRESULT IDeskMonitor_AddPages(PDESKMONITOR This, LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
Definition: deskmon.c:810
static const GUID CLSID_IDeskMonitor
Definition: deskmon.h:78
#define NULL
Definition: types.h:112
#define interface_to_impl(instance, iface)
Definition: dwnl.c:36
unsigned int BOOL
Definition: ntddk_ex.h:94
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
long LONG
Definition: pedump.c:60
BOOL(CALLBACK * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM)
Definition: prsht.h:327
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define REFIID
Definition: guiddef.h:118
#define REFCLSID
Definition: guiddef.h:117
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
uint32_t ULONG
Definition: typedefs.h:59
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082
LONG_PTR LPARAM
Definition: windef.h:208
#define WINAPI
Definition: msvc.h:6
#define S_FALSE
Definition: winerror.h:2357
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:2663