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);
175 TRACE(
"(hInitPropertyBagKey=%p, riid=%s, ppvObject=%p)\n", hInitPropertyBagKey,
179 if (pRegistryPropertyBag) {
181 pRegistryPropertyBag->
m_cRef = 0;
222 *
ppv = &
This->IClassFactory_iface;
237 TRACE(
"(iface=%p)\n", iface);
242 IClassFactory_LockServer(iface,
TRUE);
252 TRACE(
"(iface=%p)\n", iface);
257 IClassFactory_LockServer(iface,
FALSE);
258 IPropertyBag_Release(
This->m_pPropertyBag);
277 TRACE(
"Failed to create instance of %s. hr = %08x\n",
282 hr = IPersistPropertyBag_Load(pPersistPropertyBag,
This->m_pPropertyBag,
NULL);
284 TRACE(
"Failed to initialize object from PropertyBag: hr = %08x\n",
hr);
285 IPersistPropertyBag_Release(pPersistPropertyBag);
289 hr = IPersistPropertyBag_QueryInterface(pPersistPropertyBag,
riid, ppvObj);
290 IPersistPropertyBag_Release(pPersistPropertyBag);
298 TRACE(
"(iface=%p, fLock=%d) stub\n", iface, fLock);
322 TRACE(
"(RegistryPropertyBag=%p, riid=%s, ppvObject=%p)\n", pPropertyBag,
326 if (pInstanceObjectFactory) {
328 pInstanceObjectFactory->
m_cRef = 0;
331 IPropertyBag_AddRef(pPropertyBag);
360 WCHAR wszInstanceKey[] = {
'C',
'L',
'S',
'I',
'D',
'\\',
'{',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'-',
361 '0',
'0',
'0',
'0',
'-',
'0',
'0',
'0',
'0',
'-',
'0',
'0',
'0',
'0',
'-',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
362 '0',
'0',
'0',
'0',
'}',
'\\',
'I',
'n',
's',
't',
'a',
'n',
'c',
'e', 0 };
363 static const WCHAR wszCLSID[] = {
'C',
'L',
'S',
'I',
'D',0 };
364 static const WCHAR wszInitPropertyBag[] =
365 {
'I',
'n',
'i',
't',
'P',
'r',
'o',
'p',
'e',
'r',
't',
'y',
'B',
'a',
'g',0 };
368 HKEY hInstanceKey, hInitPropertyBagKey;
369 DWORD dwType, cbBytes =
sizeof(wszCLSIDInstance);
389 FIXME(
"Failed to infer instance CLSID! %s\n",
debugstr_w(wszCLSIDInstance));
400 TRACE(
"No InitPropertyBag key found!\n");
407 (
LPVOID*)&pInitPropertyBag);
416 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