diff --git a/reactos/dll/win32/propsys/propsys.spec b/reactos/dll/win32/propsys/propsys.spec index bd1daa15c7f..539e8ceb855 100644 --- a/reactos/dll/win32/propsys/propsys.spec +++ b/reactos/dll/win32/propsys/propsys.spec @@ -85,7 +85,7 @@ @ stdcall PSGetPropertyDescriptionListFromString(ptr ptr ptr) @ stub PSGetPropertyFromPropertyStorage @ stub PSGetPropertyKeyFromName -@ stub PSGetPropertySystem +@ stdcall PSGetPropertySystem(ptr ptr) @ stub PSGetPropertyValue @ stub PSLookupPropertyHandlerCLSID @ stdcall PSPropertyKeyFromString(wstr ptr) diff --git a/reactos/dll/win32/propsys/propsys_main.c b/reactos/dll/win32/propsys/propsys_main.c index 48f7f440795..1a0a7b4871f 100644 --- a/reactos/dll/win32/propsys/propsys_main.c +++ b/reactos/dll/win32/propsys/propsys_main.c @@ -126,6 +126,109 @@ 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) +{ + return PSGetPropertyDescription(propkey, riid, ppv); +} + +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) +{ + return PSGetPropertyDescriptionListFromString(proplist, riid, ppv); +} + +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) +{ + return PSRegisterPropertySchema(path); +} + +static HRESULT WINAPI propsys_UnregisterPropertySchema(IPropertySystem *iface, LPCWSTR path) +{ + return PSUnregisterPropertySchema(path); +} + +static HRESULT WINAPI propsys_RefreshPropertySchema(IPropertySystem *iface) +{ + return PSRefreshPropertySchema(); +} + +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)); diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 6cfb9c0eeda..2d6ba774460 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -162,7 +162,7 @@ reactos/dll/win32/pdh # Synced to Wine-1.7.27 reactos/dll/win32/pidgen # Synced to Wine-1.7.17 reactos/dll/win32/powrprof # Forked at Wine-1.0rc5 reactos/dll/win32/printui # Synced to Wine-1.7.17 -reactos/dll/win32/propsys # Synced to Wine-1.7.17 +reactos/dll/win32/propsys # Synced to Wine-1.7.27 reactos/dll/win32/pstorec # Synced to Wine-1.7.17 reactos/dll/win32/qmgr # Synced to Wine-1.7.17 reactos/dll/win32/qmgrprxy # Synced to Wine-1.7.17