42#define CHARS_IN_GUID 39
71 *
ppv = &
This->IPropertyBag_iface;
86 TRACE(
"(iface=%p)\n", iface);
101 TRACE(
"(iface=%p)\n", iface);
120 DWORD dwType, cbData;
125 TRACE(
"(iface=%p, pwszPropName=%s, pVar=%p, pErrorLog=%p)\n", iface,
debugstr_w(pwszPropName),
137 (
LPBYTE)pwszValue, &cbData);
157 LPCOLESTR pwszPropName,
VARIANT *pVar)
159 FIXME(
"(iface=%p, pwszPropName=%s, pVar=%p) stub\n", iface,
debugstr_w(pwszPropName), pVar);
179 TRACE(
"(hInitPropertyBagKey=%p, riid=%s, ppvObject=%p)\n", hInitPropertyBagKey,
183 if (pRegistryPropertyBag) {
185 pRegistryPropertyBag->
m_cRef = 0;
226 *
ppv = &
This->IClassFactory_iface;
241 TRACE(
"(iface=%p)\n", iface);
246 IClassFactory_LockServer(iface,
TRUE);
256 TRACE(
"(iface=%p)\n", iface);
261 IClassFactory_LockServer(iface,
FALSE);
262 IPropertyBag_Release(
This->m_pPropertyBag);
281 TRACE(
"Failed to create instance of %s. hr = %08x\n",
286 hr = IPersistPropertyBag_Load(pPersistPropertyBag,
This->m_pPropertyBag,
NULL);
288 TRACE(
"Failed to initialize object from PropertyBag: hr = %08x\n",
hr);
289 IPersistPropertyBag_Release(pPersistPropertyBag);
293 hr = IPersistPropertyBag_QueryInterface(pPersistPropertyBag,
riid, ppvObj);
294 IPersistPropertyBag_Release(pPersistPropertyBag);
302 TRACE(
"(iface=%p, fLock=%d) stub\n", iface, fLock);
330 TRACE(
"(RegistryPropertyBag=%p, riid=%s, ppvObject=%p)\n", pPropertyBag,
334 if (pInstanceObjectFactory) {
336 pInstanceObjectFactory->
m_cRef = 0;
339 IPropertyBag_AddRef(pPropertyBag);
368 WCHAR wszInstanceKey[] = {
'C',
'L',
'S',
'I',
'D',
'\\',
'{',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'-',
369 '0',
'0',
'0',
'0',
'-',
'0',
'0',
'0',
'0',
'-',
'0',
'0',
'0',
'0',
'-',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
370 '0',
'0',
'0',
'0',
'}',
'\\',
'I',
'n',
's',
't',
'a',
'n',
'c',
'e', 0 };
371 static const WCHAR wszCLSID[] = {
'C',
'L',
'S',
'I',
'D',0 };
372 static const WCHAR wszInitPropertyBag[] =
373 {
'I',
'n',
'i',
't',
'P',
'r',
'o',
'p',
'e',
'r',
't',
'y',
'B',
'a',
'g',0 };
376 HKEY hInstanceKey, hInitPropertyBagKey;
377 DWORD dwType, cbBytes =
sizeof(wszCLSIDInstance);
397 FIXME(
"Failed to infer instance CLSID! %s\n",
debugstr_w(wszCLSIDInstance));
408 TRACE(
"No InitPropertyBag key found!\n");
415 (
LPVOID*)&pInitPropertyBag);
424 IPropertyBag_Release(pInitPropertyBag);
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
const GUID IID_IClassFactory
#define RegCloseKey(hKey)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
#define LOCALE_SYSTEM_DEFAULT
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IPropertyBag
const GUID IID_IPersistPropertyBag
#define IsEqualIID(riid1, riid2)
static void SHDOCVW_LockModule(void)
static void SHDOCVW_UnlockModule(void)
static const IClassFactoryVtbl InstanceObjectFactory_IClassFactoryVtbl
static HRESULT WINAPI InstanceObjectFactory_IClassFactory_LockServer(IClassFactory *iface, BOOL fLock)
static HRESULT InstanceObjectFactory_Constructor(REFCLSID rclsid, IPropertyBag *pPropertyBag, REFIID riid, LPVOID *ppvObject)
static HRESULT WINAPI RegistryPropertyBag_IPropertyBag_Read(IPropertyBag *iface, LPCOLESTR pwszPropName, VARIANT *pVar, IErrorLog *pErrorLog)
struct _InstanceObjectFactory InstanceObjectFactory
static HRESULT WINAPI RegistryPropertyBag_IPropertyBag_Write(IPropertyBag *iface, LPCOLESTR pwszPropName, VARIANT *pVar)
static HRESULT WINAPI RegistryPropertyBag_IPropertyBag_QueryInterface(IPropertyBag *iface, REFIID riid, void **ppv)
static RegistryPropertyBag * impl_from_IPropertyBag(IPropertyBag *iface)
static InstanceObjectFactory * impl_from_IClassFactory(IClassFactory *iface)
static HRESULT WINAPI InstanceObjectFactory_IClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, LPVOID *ppvObj)
static HRESULT RegistryPropertyBag_Constructor(HKEY hInitPropertyBagKey, REFIID riid, LPVOID *ppvObject)
static HRESULT WINAPI InstanceObjectFactory_IClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
static ULONG WINAPI RegistryPropertyBag_IPropertyBag_AddRef(IPropertyBag *iface)
struct _RegistryPropertyBag RegistryPropertyBag
static ULONG WINAPI InstanceObjectFactory_IClassFactory_Release(IClassFactory *iface)
static ULONG WINAPI RegistryPropertyBag_IPropertyBag_Release(IPropertyBag *iface)
static const IPropertyBagVtbl RegistryPropertyBag_IPropertyBagVtbl
static ULONG WINAPI InstanceObjectFactory_IClassFactory_AddRef(IClassFactory *iface)
HRESULT SHDOCVW_GetShellInstanceObjectClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppvClassObj)
IPropertyBag * m_pPropertyBag
IClassFactory IClassFactory_iface
HKEY m_hInitPropertyBagKey
IPropertyBag IPropertyBag_iface
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI VariantChangeTypeEx(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, LCID lcid, USHORT wFlags, VARTYPE vt)
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define CLASS_E_CLASSNOTAVAILABLE
#define HKEY_CLASSES_ROOT