Nikolay Sivov : msi: Support test for aplicable patch of MSIPATCH_DATATYPE_XMLPATH type.

Alexandre Julliard julliard at winehq.org
Wed Jan 18 14:03:37 CST 2012


Module: wine
Branch: master
Commit: 3b60c2c0d1eaa2634cbf32a49df2f32f8e36eb9c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3b60c2c0d1eaa2634cbf32a49df2f32f8e36eb9c

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Jan 17 23:46:16 2012 +0300

msi: Support test for aplicable patch of MSIPATCH_DATATYPE_XMLPATH type.

---

 dlls/msi/msi.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index 941a547..cc83e39 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -651,6 +651,7 @@ static UINT determine_patch_sequence( MSIPACKAGE *package, DWORD count, MSIPATCH
             }
             break;
         }
+        case MSIPATCH_DATATYPE_XMLPATH:
         case MSIPATCH_DATATYPE_XMLBLOB:
         {
             VARIANT_BOOL b;
@@ -669,7 +670,16 @@ static UINT determine_patch_sequence( MSIPACKAGE *package, DWORD count, MSIPATCH
             }
 
             s = SysAllocString( info[i].szPatchData );
-            hr = IXMLDOMDocument_loadXML( desc, s, &b );
+            if (info[i].ePatchDataType == MSIPATCH_DATATYPE_XMLPATH)
+            {
+                VARIANT src;
+
+                V_VT(&src) = VT_BSTR;
+                V_BSTR(&src) = s;
+                hr = IXMLDOMDocument_load( desc, src, &b );
+            }
+            else
+                hr = IXMLDOMDocument_loadXML( desc, s, &b );
             SysFreeString( s );
             if ( hr != S_OK )
             {
@@ -692,7 +702,7 @@ static UINT determine_patch_sequence( MSIPACKAGE *package, DWORD count, MSIPATCH
         }
         default:
         {
-            FIXME("patch data type %u not supported\n", info[i].ePatchDataType);
+            FIXME("unknown patch data type %u\n", info[i].ePatchDataType);
             info[i].dwOrder = i;
             info[i].uStatus = ERROR_SUCCESS;
             break;




More information about the wine-cvs mailing list