[DXDIAGN] Sync with Wine Staging 1.9.4. CORE-10912
authorAmine Khaldi <amine.khaldi@reactos.org>
Tue, 1 Mar 2016 13:17:52 +0000 (13:17 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Tue, 1 Mar 2016 13:17:52 +0000 (13:17 +0000)
svn path=/trunk/; revision=70833

reactos/dll/directx/wine/dxdiagn/provider.c
reactos/media/doc/README.WINE

index e705e0a..27277b8 100644 (file)
@@ -48,6 +48,8 @@ static const WCHAR dwHeight[] = {'d','w','H','e','i','g','h','t',0};
 static const WCHAR dwBpp[] = {'d','w','B','p','p',0};
 static const WCHAR szDisplayMemoryLocalized[] = {'s','z','D','i','s','p','l','a','y','M','e','m','o','r','y','L','o','c','a','l','i','z','e','d',0};
 static const WCHAR szDisplayMemoryEnglish[] = {'s','z','D','i','s','p','l','a','y','M','e','m','o','r','y','E','n','g','l','i','s','h',0};
+static const WCHAR szDisplayModeLocalized[] = {'s','z','D','i','s','p','l','a','y','M','o','d','e','L','o','c','a','l','i','z','e','d',0};
+static const WCHAR szDisplayModeEnglish[] = {'s','z','D','i','s','p','l','a','y','M','o','d','e','E','n','g','l','i','s','h',0};
 static const WCHAR szDriverName[] = {'s','z','D','r','i','v','e','r','N','a','m','e',0};
 static const WCHAR szDriverVersion[] = {'s','z','D','r','i','v','e','r','V','e','r','s','i','o','n',0};
 static const WCHAR szSubSysId[] = {'s','z','S','u','b','S','y','s','I','d',0};
@@ -57,6 +59,30 @@ static const WCHAR szManufacturer[] = {'s','z','M','a','n','u','f','a','c','t','
 static const WCHAR szChipType[] = {'s','z','C','h','i','p','T','y','p','e',0};
 static const WCHAR szDACType[] = {'s','z','D','A','C','T','y','p','e',0};
 static const WCHAR szRevision[] = {'s','z','R','e','v','i','s','i','o','n',0};
+static const WCHAR szMonitorName[] = {'s','z','M','o','n','i','t','o','r','N','a','m','e',0};
+static const WCHAR szMonitorMaxRes[] = {'s','z','M','o','n','i','t','o','r','M','a','x','R','e','s',0};
+static const WCHAR szDriverAttributes[] = {'s','z','D','r','i','v','e','r','A','t','t','r','i','b','u','t','e','s',0};
+static const WCHAR szDriverLanguageEnglish[] = {'s','z','D','r','i','v','e','r','L','a','n','g','u','a','g','e','E','n','g','l','i','s','h',0};
+static const WCHAR szDriverLanguageLocalized[] = {'s','z','D','r','i','v','e','r','L','a','n','g','u','a','g','e','L','o','c','a','l','i','z','e','d',0};
+static const WCHAR szDriverDateEnglish[] = {'s','z','D','r','i','v','e','r','D','a','t','e','E','n','g','l','i','s','h',0};
+static const WCHAR szDriverDateLocalized[] = {'s','z','D','r','i','v','e','r','D','a','t','e','L','o','c','a','l','i','z','e','d',0};
+static const WCHAR lDriverSize[] = {'l','D','r','i','v','e','r','S','i','z','e',0};
+static const WCHAR szMiniVdd[] = {'s','z','M','i','n','i','V','d','d',0};
+static const WCHAR szMiniVddDateLocalized[] = {'s','z','M','i','n','i','V','d','d','D','a','t','e','L','o','c','a','l','i','z','e','d',0};
+static const WCHAR szMiniVddDateEnglish[] = {'s','z','M','i','n','i','V','d','d','D','a','t','e','E','n','g','l','i','s','h',0};
+static const WCHAR lMiniVddSize[] = {'l','M','i','n','i','V','d','d','S','i','z','e',0};
+static const WCHAR szVdd[] = {'s','z','V','d','d',0};
+static const WCHAR bCanRenderWindow[] = {'b','C','a','n','R','e','n','d','e','r','W','i','n','d','o','w',0};
+static const WCHAR bDriverBeta[] = {'b','D','r','i','v','e','r','B','e','t','a',0};
+static const WCHAR bDriverDebug[] = {'b','D','r','i','v','e','r','D','e','b','u','g',0};
+static const WCHAR bDriverSigned[] = {'b','D','r','i','v','e','r','S','i','g','n','e','d',0};
+static const WCHAR bDriverSignedValid[] = {'b','D','r','i','v','e','r','S','i','g','n','e','d','V','a','l','i','d',0};
+static const WCHAR szDriverSignDate[] = {'s','z','D','r','i','v','e','r','S','i','g','n','D','a','t','e',0};
+static const WCHAR dwDDIVersion[] = {'d','w','D','D','I','V','e','r','s','i','o','n',0};
+static const WCHAR szDDIVersionEnglish[] = {'s','z','D','D','I','V','e','r','s','i','o','n','E','n','g','l','i','s','h',0};
+static const WCHAR szDDIVersionLocalized[] = {'s','z','D','D','I','V','e','r','s','i','o','n','L','o','c','a','l','i','z','e','d',0};
+static const WCHAR iAdapter[] = {'i','A','d','a','p','t','e','r',0};
+static const WCHAR dwWHQLLevel[] = {'d','w','W','H','Q','L','L','e','v','e','l',0};
 
 struct IDxDiagProviderImpl
 {
@@ -314,6 +340,23 @@ static inline HRESULT add_ui4_property(IDxDiagContainerImpl_Container *node, con
     return S_OK;
 }
 
+static inline HRESULT add_i4_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, LONG data)
+{
+    IDxDiagContainerImpl_Property *prop;
+
+    prop = allocate_property_information(propName);
+    if (!prop)
+        return E_OUTOFMEMORY;
+
+    V_VT(&prop->vProp) = VT_I4;
+    V_I4(&prop->vProp) = data;
+
+    list_add_tail(&node->properties, &prop->entry);
+    ++node->nProperties;
+
+    return S_OK;
+}
+
 static inline HRESULT add_bool_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, BOOL data)
 {
     IDxDiagContainerImpl_Property *prop;
@@ -334,6 +377,7 @@ static inline HRESULT add_bool_property(IDxDiagContainerImpl_Container *node, co
 static inline HRESULT add_ull_as_bstr_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, ULONGLONG data )
 {
     IDxDiagContainerImpl_Property *prop;
+    HRESULT hr;
 
     prop = allocate_property_information(propName);
     if (!prop)
@@ -342,7 +386,12 @@ static inline HRESULT add_ull_as_bstr_property(IDxDiagContainerImpl_Container *n
     V_VT(&prop->vProp) = VT_UI8;
     V_UI8(&prop->vProp) = data;
 
-    VariantChangeType(&prop->vProp, &prop->vProp, 0, VT_BSTR);
+    hr = VariantChangeType(&prop->vProp, &prop->vProp, 0, VT_BSTR);
+    if (FAILED(hr))
+    {
+        free_property_information(prop);
+        return hr;
+    }
 
     list_add_tail(&node->properties, &prop->entry);
     ++node->nProperties;
@@ -907,6 +956,15 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node
         static const WCHAR b3DAccelerationEnabled[] = {'b','3','D','A','c','c','e','l','e','r','a','t','i','o','n','E','n','a','b','l','e','d',0};
         static const WCHAR bDDAccelerationEnabled[] = {'b','D','D','A','c','c','e','l','e','r','a','t','i','o','n','E','n','a','b','l','e','d',0};
         static const WCHAR bNoHardware[] = {'b','N','o','H','a','r','d','w','a','r','e',0};
+        static const WCHAR mode_fmtW[] = {'%','d',' ','x',' ','%','d',' ','(','%','d',' ','b','i','t',')',' ','(','%','d','H','z',')',0};
+        static const WCHAR gernericPNPMonitorW[] = {'G','e','n','e','r','i','c',' ','P','n','P',' ','M','o','n','i','t','o','r',0};
+        static const WCHAR failedToGetParameterW[] = {'F','a','i','l','e','d',' ','t','o',' ','g','e','t',' ','p','a','r','a','m','e','t','e','r',0};
+        static const WCHAR driverAttributesW[] = {'F','i','n','a','l',' ','R','e','t','a','i','l',0};
+        static const WCHAR englishW[] = {'E','n','g','l','i','s','h',0};
+        static const WCHAR driverDateEnglishW[] = {'1','/','1','/','2','0','1','6',' ','1','0',':','0','0',':','0','0',0};
+        static const WCHAR driverDateLocalW[] = {'1','/','1','/','2','0','1','6',' ','1','0',':','0','0',':','0','0',' ','A','M',0};
+        static const WCHAR naW[] = {'n','/','a',0};
+        static const WCHAR ddi11W[] = {'1','1',0};
 
         D3DADAPTER_IDENTIFIER9 adapter_info;
         D3DDISPLAYMODE adapter_mode;
@@ -1003,6 +1061,17 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node
             hr = add_ui4_property(display_adapter, dwBpp, depth_for_pixelformat(adapter_mode.Format));
             if (FAILED(hr))
                 goto cleanup;
+
+            snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), mode_fmtW, adapter_mode.Width, adapter_mode.Height,
+                      depth_for_pixelformat(adapter_mode.Format), adapter_mode.RefreshRate);
+
+            hr = add_bstr_property(display_adapter, szDisplayModeLocalized, buffer);
+            if (FAILED(hr))
+                goto cleanup;
+
+            hr = add_bstr_property(display_adapter, szDisplayModeEnglish, buffer);
+            if (FAILED(hr))
+                goto cleanup;
         }
 
         hr = add_bstr_property(display_adapter, szKeyDeviceKey, szEmpty);
@@ -1056,6 +1125,102 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node
         hr = add_bool_property(display_adapter, bNoHardware, FALSE);
         if (FAILED(hr))
             goto cleanup;
+
+        hr = add_bool_property(display_adapter, bCanRenderWindow, TRUE);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szMonitorName, gernericPNPMonitorW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szMonitorMaxRes, failedToGetParameterW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szDriverAttributes, driverAttributesW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szDriverLanguageEnglish, englishW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szDriverLanguageLocalized, englishW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szDriverDateEnglish, driverDateEnglishW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szDriverDateLocalized, driverDateLocalW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_i4_property(display_adapter, lDriverSize, 10 * 1024 * 1024);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szMiniVdd, naW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szMiniVddDateLocalized, naW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szMiniVddDateEnglish, naW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_i4_property(display_adapter, lMiniVddSize, 0);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szVdd, naW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bool_property(display_adapter, bDriverBeta, FALSE);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bool_property(display_adapter, bDriverDebug, FALSE);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bool_property(display_adapter, bDriverSigned, TRUE);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bool_property(display_adapter, bDriverSignedValid, TRUE);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szDriverSignDate, naW);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_ui4_property(display_adapter, dwDDIVersion, 11);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szDDIVersionEnglish, ddi11W);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_bstr_property(display_adapter, szDDIVersionLocalized, ddi11W);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_ui4_property(display_adapter, iAdapter, index);
+        if (FAILED(hr))
+            goto cleanup;
+
+        hr = add_ui4_property(display_adapter, dwWHQLLevel, 0);
+        if (FAILED(hr))
+            goto cleanup;
     }
 
     hr = S_OK;
index bf9288b..53f156f 100644 (file)
@@ -36,7 +36,7 @@ reactos/dll/directx/wine/dmusic         # Synced to WineStaging-1.7.55
 reactos/dll/directx/wine/dplay          # Synced to WineStaging-1.7.55
 reactos/dll/directx/wine/dplayx         # Synced to WineStaging-1.9.4
 reactos/dll/directx/wine/dsound         # Synced to Wine-1.3.29
-reactos/dll/directx/wine/dxdiagn        # Synced to WineStaging-1.7.55
+reactos/dll/directx/wine/dxdiagn        # Synced to WineStaging-1.9.4
 reactos/dll/directx/wine/msdmo          # Synced to WineStaging-1.7.55
 reactos/dll/directx/wine/qedit          # Synced to WineStaging-1.7.55
 reactos/dll/directx/wine/quartz         # Synced to WineStaging-1.7.55