static UINT ITERATE_CCPSearch(MSIRECORD *row, LPVOID param) { MSIPACKAGE *package = param; LPCWSTR signature; LPWSTR value = NULL; MSISIGNATURE sig; UINT r = ERROR_SUCCESS; static const WCHAR success[] = {'C','C','P','_','S','u','c','c','e','s','s',0}; static const WCHAR one[] = {'1',0}; signature = MSI_RecordGetString(row, 1); TRACE("%s\n", debugstr_w(signature)); ACTION_AppSearchSigName(package, signature, &sig, &value); if (value) { TRACE("Found signature %s\n", debugstr_w(signature)); MSI_SetPropertyW(package, success, one); msi_free(value); r = ERROR_NO_MORE_ITEMS; } ACTION_FreeSignature(&sig); return r; }
static UINT iterate_appsearch(MSIRECORD *row, LPVOID param) { MSIPACKAGE *package = param; LPCWSTR propName, sigName; LPWSTR value = NULL; MSISIGNATURE sig; MSIRECORD *uirow; UINT r; /* get property and signature */ propName = MSI_RecordGetString(row, 1); sigName = MSI_RecordGetString(row, 2); TRACE("%s %s\n", debugstr_w(propName), debugstr_w(sigName)); r = ACTION_AppSearchSigName(package, sigName, &sig, &value); if (value) { MSI_SetPropertyW(package, propName, value); msi_free(value); } ACTION_FreeSignature(&sig); 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; }
static UINT iterate_appsearch(MSIRECORD *row, LPVOID param) { MSIPACKAGE *package = param; LPWSTR propName, sigName, value = NULL; MSISIGNATURE sig; UINT r; /* get property and signature */ propName = msi_dup_record_field(row,1); sigName = msi_dup_record_field(row,2); TRACE("%s %s\n", debugstr_w(propName), debugstr_w(sigName)); r = ACTION_AppSearchSigName(package, sigName, &sig, &value); if (value) { MSI_SetPropertyW(package, propName, value); msi_free(value); } ACTION_FreeSignature(&sig); msi_free(propName); msi_free(sigName); return r; }
static void append_productcode(MSIPACKAGE* package, LPCWSTR action_property, LPCWSTR productid) { LPWSTR prop; LPWSTR newprop; DWORD len; static const WCHAR separator[] = {';',0}; prop = msi_dup_property(package, action_property ); if (prop) len = strlenW(prop); else len = 0; /*separator*/ len ++; len += strlenW(productid); /*null*/ len++; newprop = msi_alloc( len*sizeof(WCHAR) ); if (prop) { strcpyW(newprop,prop); strcatW(newprop,separator); } else newprop[0] = 0; strcatW(newprop,productid); MSI_SetPropertyW(package, action_property, newprop); TRACE("Found Related Product... %s now %s\n",debugstr_w(action_property), debugstr_w(newprop)); msi_free( prop ); msi_free( newprop ); }