Module: wine Branch: master Commit: 3b60c2c0d1eaa2634cbf32a49df2f32f8e36eb9c URL: http://source.winehq.org/git/wine.git/?a=commit;h=3b60c2c0d1eaa2634cbf32a49d...
Author: Nikolay Sivov nsivov@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;