ReactOS 0.4.17-dev-966-gf06eace
objsel.c File Reference
#include "objidl.h"
#include "objsel.h"
#include "wine/debug.h"
Include dependency graph for objsel.c:

Go to the source code of this file.

Classes

struct  IDsObjectPickerImpl
 
struct  class_factory
 

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (objsel)
 
static VOID OBJSEL_IDsObjectPicker_Destroy (IDsObjectPickerImpl *This)
 
static IDsObjectPickerImpl * impl_from_IDsObjectPicker (IDsObjectPicker *iface)
 
static ULONG WINAPI OBJSEL_IDsObjectPicker_AddRef (IDsObjectPicker *iface)
 
static ULONG WINAPI OBJSEL_IDsObjectPicker_Release (IDsObjectPicker *iface)
 
static HRESULT WINAPI OBJSEL_IDsObjectPicker_QueryInterface (IDsObjectPicker *iface, REFIID riid, LPVOID *ppvObj)
 
static HRESULT WINAPI OBJSEL_IDsObjectPicker_Initialize (IDsObjectPicker *iface, PDSOP_INIT_INFO pInitInfo)
 
static HRESULT WINAPI OBJSEL_IDsObjectPicker_InvokeDialog (IDsObjectPicker *iface, HWND hwndParent, IDataObject **ppdoSelections)
 
static HRESULT object_picker_create (void **ppvObj)
 
static struct class_factory * impl_from_IClassFactory (IClassFactory *iface)
 
static HRESULT WINAPI class_factory_QueryInterface (IClassFactory *iface, REFIID iid, void **out)
 
static ULONG WINAPI class_factory_AddRef (IClassFactory *iface)
 
static ULONG WINAPI class_factory_Release (IClassFactory *iface)
 
static HRESULT WINAPI class_factory_CreateInstance (IClassFactory *iface, IUnknown *outer, REFIID iid, void **out)
 
static HRESULT WINAPI class_factory_LockServer (IClassFactory *iface, BOOL lock)
 
HRESULT WINAPI DllGetClassObject (REFCLSID clsid, REFIID iid, void **out)
 

Variables

static IDsObjectPickerVtbl IDsObjectPicker_Vtbl
 
static IClassFactoryVtbl class_factory_vtbl
 
static struct class_factory class_factory = {{&class_factory_vtbl}, 0}
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 23 of file objsel.c.

Function Documentation

◆ class_factory_AddRef()

static ULONG WINAPI class_factory_AddRef ( IClassFactory *  iface)
static

Definition at line 198 of file objsel.c.

199{
201
202 TRACE("\n");
203
205}
#define InterlockedIncrement
Definition: armddk.h:53
static struct class_factory * impl_from_IClassFactory(IClassFactory *iface)
Definition: objsel.c:173
#define TRACE(s)
Definition: solgame.cpp:4
Definition: main.c:439

◆ class_factory_CreateInstance()

static HRESULT WINAPI class_factory_CreateInstance ( IClassFactory *  iface,
IUnknown *  outer,
REFIID  iid,
void **  out 
)
static

Definition at line 218 of file objsel.c.

220{
221 TRACE("outer %p, iid %s, out %p.\n", outer, debugstr_guid(iid), out);
222
223 if (!out)
224 return E_POINTER;
225
226 if (outer)
228
229 if (IsEqualGUID(&IID_IDsObjectPicker, iid))
231
233}
#define debugstr_guid
Definition: kernel32.h:35
static IUnknown * outer
Definition: compobj.c:82
static HRESULT object_picker_create(void **ppvObj)
Definition: objsel.c:148
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:3771
#define E_POINTER
Definition: winerror.h:3480
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:3772

◆ class_factory_LockServer()

static HRESULT WINAPI class_factory_LockServer ( IClassFactory *  iface,
BOOL  lock 
)
static

Definition at line 236 of file objsel.c.

237{
238 TRACE("lock %d.\n", lock);
239
240 if (lock)
241 IClassFactory_AddRef(iface);
242 else
243 IClassFactory_Release(iface);
244 return S_OK;
245}
#define S_OK
Definition: intsafe.h:52
rwlock_t lock
Definition: tcpcore.h:0

◆ class_factory_QueryInterface()

static HRESULT WINAPI class_factory_QueryInterface ( IClassFactory *  iface,
REFIID  iid,
void **  out 
)
static

Definition at line 179 of file objsel.c.

180{
181 TRACE("iid %s, out %p.\n", debugstr_guid(iid), out);
182
183 if (!out)
184 return E_POINTER;
185
187 {
188 *out = iface;
189 IClassFactory_AddRef(iface);
190 return S_OK;
191 }
192
193 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
194 return E_NOINTERFACE;
195}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
const GUID IID_IClassFactory
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ class_factory_Release()

static ULONG WINAPI class_factory_Release ( IClassFactory *  iface)
static

Definition at line 208 of file objsel.c.

209{
211
212 TRACE("\n");
213
215}
#define InterlockedDecrement
Definition: armddk.h:52

◆ DllGetClassObject()

HRESULT WINAPI DllGetClassObject ( REFCLSID  clsid,
REFIID  iid,
void **  out 
)

Definition at line 263 of file objsel.c.

264{
265 TRACE("clsid %s, iid %s, out %p.\n", debugstr_guid(clsid), debugstr_guid(iid), out);
266
267 *out = NULL;
268
269 if (IsEqualGUID(clsid, &CLSID_DsObjectPicker))
270 return IClassFactory_QueryInterface(&class_factory.IClassFactory_iface, iid, out);
271
272 FIXME("%s not available, returning CLASS_E_CLASSNOTAVAILABLE.\n", debugstr_guid(clsid));
274}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define NULL
Definition: types.h:112
const CLSID * clsid
Definition: msctf.cpp:50
IClassFactory IClassFactory_iface
Definition: devenum_main.c:30

◆ impl_from_IClassFactory()

static struct class_factory * impl_from_IClassFactory ( IClassFactory *  iface)
static

Definition at line 173 of file objsel.c.

174{
175 return CONTAINING_RECORD(iface, struct class_factory, IClassFactory_iface);
176}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by class_factory_AddRef(), and class_factory_Release().

◆ impl_from_IDsObjectPicker()

static IDsObjectPickerImpl * impl_from_IDsObjectPicker ( IDsObjectPicker *  iface)
inlinestatic

Definition at line 48 of file objsel.c.

49{
50 return CONTAINING_RECORD(iface, IDsObjectPickerImpl, IDsObjectPicker_iface);
51}

Referenced by OBJSEL_IDsObjectPicker_AddRef(), and OBJSEL_IDsObjectPicker_Release().

◆ object_picker_create()

static HRESULT object_picker_create ( void **  ppvObj)
static

Definition at line 148 of file objsel.c.

149{
152 sizeof(IDsObjectPickerImpl));
153 if (Instance != NULL)
154 {
155 Instance->IDsObjectPicker_iface.lpVtbl = &IDsObjectPicker_Vtbl;
156 OBJSEL_IDsObjectPicker_AddRef(&Instance->IDsObjectPicker_iface);
157
158 *ppvObj = Instance;
159 return S_OK;
160 }
161 else
162 return E_OUTOFMEMORY;
163}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
static ULONG WINAPI OBJSEL_IDsObjectPicker_AddRef(IDsObjectPicker *iface)
Definition: objsel.c:56
static IDsObjectPickerVtbl IDsObjectPicker_Vtbl
Definition: objsel.c:138
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
Definition: wdfwmi.h:481

Referenced by class_factory_CreateInstance().

◆ OBJSEL_IDsObjectPicker_AddRef()

static ULONG WINAPI OBJSEL_IDsObjectPicker_AddRef ( IDsObjectPicker *  iface)
static

Definition at line 56 of file objsel.c.

57{
59
60 TRACE("\n");
61
62 return InterlockedIncrement(&This->ref);
63}
static IDsObjectPickerImpl * impl_from_IDsObjectPicker(IDsObjectPicker *iface)
Definition: objsel.c:48

Referenced by object_picker_create(), and OBJSEL_IDsObjectPicker_QueryInterface().

◆ OBJSEL_IDsObjectPicker_Destroy()

static VOID OBJSEL_IDsObjectPicker_Destroy ( IDsObjectPickerImpl *  This)
static

Definition at line 40 of file objsel.c.

41{
43 0,
44 This);
45}
#define HeapFree(x, y, z)
Definition: compat.h:735

Referenced by OBJSEL_IDsObjectPicker_Release().

◆ OBJSEL_IDsObjectPicker_Initialize()

static HRESULT WINAPI OBJSEL_IDsObjectPicker_Initialize ( IDsObjectPicker *  iface,
PDSOP_INIT_INFO  pInitInfo 
)
static

Definition at line 113 of file objsel.c.

116{
117 FIXME("stub!\n");
118 return S_OK;
119}

◆ OBJSEL_IDsObjectPicker_InvokeDialog()

static HRESULT WINAPI OBJSEL_IDsObjectPicker_InvokeDialog ( IDsObjectPicker *  iface,
HWND  hwndParent,
IDataObject **  ppdoSelections 
)
static

Definition at line 125 of file objsel.c.

129{
130 FIXME("stub!\n");
131 return S_FALSE;
132}
#define S_FALSE
Definition: winerror.h:3451

◆ OBJSEL_IDsObjectPicker_QueryInterface()

static HRESULT WINAPI OBJSEL_IDsObjectPicker_QueryInterface ( IDsObjectPicker *  iface,
REFIID  riid,
LPVOID *  ppvObj 
)
static

Definition at line 88 of file objsel.c.

92{
93 TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
94
95 if (ppvObj == NULL) return E_POINTER;
96
98 IsEqualGUID(riid, &IID_IDsObjectPicker))
99 {
100 *ppvObj = iface;
102 return S_OK;
103 }
104
105 FIXME("- no interface IID: %s\n", debugstr_guid(riid));
106 return E_NOINTERFACE;
107}
REFIID riid
Definition: atlbase.h:39

◆ OBJSEL_IDsObjectPicker_Release()

static ULONG WINAPI OBJSEL_IDsObjectPicker_Release ( IDsObjectPicker *  iface)
static

Definition at line 69 of file objsel.c.

70{
72 ULONG ref;
73
74 TRACE("\n");
75
77
78 if (ref == 0)
80
81 return ref;
82}
static VOID OBJSEL_IDsObjectPicker_Destroy(IDsObjectPickerImpl *This)
Definition: objsel.c:40
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( objsel  )

Variable Documentation

◆ class_factory

Definition at line 258 of file objsel.c.

◆ class_factory_vtbl

IClassFactoryVtbl class_factory_vtbl
static
Initial value:
=
{
}
static ULONG WINAPI class_factory_Release(IClassFactory *iface)
Definition: objsel.c:208
static HRESULT WINAPI class_factory_LockServer(IClassFactory *iface, BOOL lock)
Definition: objsel.c:236
static HRESULT WINAPI class_factory_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID iid, void **out)
Definition: objsel.c:218
static ULONG WINAPI class_factory_AddRef(IClassFactory *iface)
Definition: objsel.c:198
static HRESULT WINAPI class_factory_QueryInterface(IClassFactory *iface, REFIID iid, void **out)
Definition: objsel.c:179

Definition at line 248 of file objsel.c.

◆ IDsObjectPicker_Vtbl

IDsObjectPickerVtbl IDsObjectPicker_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI OBJSEL_IDsObjectPicker_Initialize(IDsObjectPicker *iface, PDSOP_INIT_INFO pInitInfo)
Definition: objsel.c:113
static HRESULT WINAPI OBJSEL_IDsObjectPicker_QueryInterface(IDsObjectPicker *iface, REFIID riid, LPVOID *ppvObj)
Definition: objsel.c:88
static ULONG WINAPI OBJSEL_IDsObjectPicker_Release(IDsObjectPicker *iface)
Definition: objsel.c:69
static HRESULT WINAPI OBJSEL_IDsObjectPicker_InvokeDialog(IDsObjectPicker *iface, HWND hwndParent, IDataObject **ppdoSelections)
Definition: objsel.c:125

Definition at line 138 of file objsel.c.

Referenced by object_picker_create().