[PROPSYS]
authorAmine Khaldi <amine.khaldi@reactos.org>
Mon, 6 Oct 2014 18:39:23 +0000 (18:39 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Mon, 6 Oct 2014 18:39:23 +0000 (18:39 +0000)
* Sync with Wine 1.7.27.
CORE-8540

svn path=/trunk/; revision=64569

reactos/dll/win32/propsys/propsys.spec
reactos/dll/win32/propsys/propsys_main.c
reactos/media/doc/README.WINE

index bd1daa1..539e8ce 100644 (file)
@@ -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)
index 48f7f44..1a0a7b4 100644 (file)
@@ -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));
index 6cfb9c0..2d6ba77 100644 (file)
@@ -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