propsys: Implement PSGetPropertySystem().

This commit is contained in:
Nikolay Sivov 2014-05-26 21:03:54 +04:00 committed by Alexandre Julliard
parent 28830b4b36
commit d897b32598
2 changed files with 109 additions and 1 deletions

View File

@ -84,7 +84,7 @@
@ stdcall PSGetPropertyDescriptionListFromString(ptr ptr ptr)
@ stub PSGetPropertyFromPropertyStorage
@ stub PSGetPropertyKeyFromName
@ stub PSGetPropertySystem
@ stdcall PSGetPropertySystem(ptr ptr)
@ stub PSGetPropertyValue
@ stub PSLookupPropertyHandlerCLSID
@ stdcall PSPropertyKeyFromString(wstr ptr)

View File

@ -139,6 +139,114 @@ HRESULT WINAPI DllCanUnloadNow(void)
return S_FALSE;
}
static HRESULT WINAPI propsys_QueryInterface(IPropertySystem *iface, REFIID riid, void **obj)
{
*obj = NULL;
if (IsEqualIID(riid, &IID_IPropertySystem) || IsEqualIID(riid, &IID_IUnknown)) {
*obj = iface;
IPropertySystem_AddRef(iface);
return S_OK;
}
FIXME("%s\n", debugstr_guid(riid));
return E_NOINTERFACE;
}
static ULONG WINAPI propsys_AddRef(IPropertySystem *iface)
{
return 2;
}
static ULONG WINAPI propsys_Release(IPropertySystem *iface)
{
return 1;
}
static HRESULT WINAPI propsys_GetPropertyDescription(IPropertySystem *iface,
REFPROPERTYKEY propkey, REFIID riid, void **ppv)
{
FIXME("%p %s %p: stub\n", propkey, debugstr_guid(riid), ppv);
return E_NOTIMPL;
}
static HRESULT WINAPI propsys_GetPropertyDescriptionByName(IPropertySystem *iface,
LPCWSTR canonical_name, REFIID riid, void **ppv)
{
FIXME("%s %s %p: stub\n", debugstr_w(canonical_name), debugstr_guid(riid), ppv);
return E_NOTIMPL;
}
static HRESULT WINAPI propsys_GetPropertyDescriptionListFromString(IPropertySystem *iface,
LPCWSTR proplist, REFIID riid, void **ppv)
{
FIXME("%s %s %p: stub\n", debugstr_w(proplist), debugstr_guid(riid), ppv);
return E_NOTIMPL;
}
static HRESULT WINAPI propsys_EnumeratePropertyDescriptions(IPropertySystem *iface,
PROPDESC_ENUMFILTER filter, REFIID riid, void **ppv)
{
FIXME("%d %s %p: stub\n", filter, debugstr_guid(riid), ppv);
return E_NOTIMPL;
}
static HRESULT WINAPI propsys_FormatForDisplay(IPropertySystem *iface,
REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS flags,
LPWSTR dest, DWORD destlen)
{
FIXME("%p %p %x %p %d: stub\n", key, propvar, flags, dest, destlen);
return E_NOTIMPL;
}
static HRESULT WINAPI propsys_FormatForDisplayAlloc(IPropertySystem *iface,
REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS flags,
LPWSTR *text)
{
FIXME("%p %p %x %p: stub\n", key, propvar, flags, text);
return E_NOTIMPL;
}
static HRESULT WINAPI propsys_RegisterPropertySchema(IPropertySystem *iface, LPCWSTR path)
{
FIXME("%s: stub\n", debugstr_w(path));
return E_NOTIMPL;
}
static HRESULT WINAPI propsys_UnregisterPropertySchema(IPropertySystem *iface, LPCWSTR path)
{
FIXME("%s: stub\n", debugstr_w(path));
return E_NOTIMPL;
}
static HRESULT WINAPI propsys_RefreshPropertySchema(IPropertySystem *iface)
{
FIXME("refresh: stub\n");
return E_NOTIMPL;
}
static const IPropertySystemVtbl propsysvtbl = {
propsys_QueryInterface,
propsys_AddRef,
propsys_Release,
propsys_GetPropertyDescription,
propsys_GetPropertyDescriptionByName,
propsys_GetPropertyDescriptionListFromString,
propsys_EnumeratePropertyDescriptions,
propsys_FormatForDisplay,
propsys_FormatForDisplayAlloc,
propsys_RegisterPropertySchema,
propsys_UnregisterPropertySchema,
propsys_RefreshPropertySchema
};
static IPropertySystem propsys = { &propsysvtbl };
HRESULT WINAPI PSGetPropertySystem(REFIID riid, void **obj)
{
return IPropertySystem_QueryInterface(&propsys, riid, obj);
}
HRESULT WINAPI PSRegisterPropertySchema(PCWSTR path)
{
FIXME("%s stub\n", debugstr_w(path));