diff --git a/dlls/msi/appsearch.c b/dlls/msi/appsearch.c index c4e4e588077..12c741178e3 100644 --- a/dlls/msi/appsearch.c +++ b/dlls/msi/appsearch.c @@ -1026,13 +1026,15 @@ static UINT ACTION_AppSearchSigName(MSIPACKAGE *package, LPCWSTR sigName, static UINT iterate_appsearch(MSIRECORD *row, LPVOID param) { MSIPACKAGE *package = param; - LPWSTR propName, sigName, value = NULL; + LPCWSTR propName, sigName; + LPWSTR value = NULL; MSISIGNATURE sig; + MSIRECORD *uirow; UINT r; /* get property and signature */ - propName = msi_dup_record_field(row,1); - sigName = msi_dup_record_field(row,2); + propName = MSI_RecordGetString(row, 1); + sigName = MSI_RecordGetString(row, 2); TRACE("%s %s\n", debugstr_w(propName), debugstr_w(sigName)); @@ -1043,8 +1045,12 @@ static UINT iterate_appsearch(MSIRECORD *row, LPVOID param) msi_free(value); } ACTION_FreeSignature(&sig); - msi_free(propName); - msi_free(sigName); + + uirow = MSI_CreateRecord( 2 ); + MSI_RecordSetStringW( uirow, 1, propName ); + MSI_RecordSetStringW( uirow, 2, sigName ); + ui_actiondata( package, szAppSearch, uirow ); + msiobj_release( &uirow->hdr ); return r; } diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h index 9e2ffe2b648..97d79c43716 100644 --- a/dlls/msi/msipriv.h +++ b/dlls/msi/msipriv.h @@ -1081,6 +1081,7 @@ static const WCHAR szHCU[] = {'H','K','E','Y','_','C','U','R','R','E','N','T','_ static const WCHAR szHLM[] = {'H','K','E','Y','_','L','O','C','A','L','_','M','A','C','H','I','N','E','\\',0}; static const WCHAR szHU[] = {'H','K','E','Y','_','U','S','E','R','S','\\',0}; static const WCHAR szWindowsFolder[] = {'W','i','n','d','o','w','s','F','o','l','d','e','r',0}; +static const WCHAR szAppSearch[] = {'A','p','p','S','e','a','r','c','h',0}; /* memory allocation macro functions */ static void *msi_alloc( size_t len ) __WINE_ALLOC_SIZE(1);