msi: Support test for aplicable patch of MSIPATCH_DATATYPE_XMLPATH type.

This commit is contained in:
Nikolay Sivov 2012-01-17 23:46:16 +03:00 committed by Alexandre Julliard
parent 123eba2801
commit 3b60c2c0d1
1 changed files with 12 additions and 2 deletions

View File

@ -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;