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