Mike McCormack : msi: Use MSI_QueryGetRecord in
ACTION_AppSearchComponents.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Nov 27 07:10:34 CST 2006
Module: wine
Branch: master
Commit: fa6bc9e50b57b3c9fe18aeb6d1cc689df2826ae2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fa6bc9e50b57b3c9fe18aeb6d1cc689df2826ae2
Author: Mike McCormack <mike at codeweavers.com>
Date: Mon Nov 27 18:03:55 2006 +0900
msi: Use MSI_QueryGetRecord in ACTION_AppSearchComponents.
---
dlls/msi/appsearch.c | 75 ++++++++++++++------------------------------------
1 files changed, 21 insertions(+), 54 deletions(-)
diff --git a/dlls/msi/appsearch.c b/dlls/msi/appsearch.c
index 7ae47f5..34196a7 100644
--- a/dlls/msi/appsearch.c
+++ b/dlls/msi/appsearch.c
@@ -154,67 +154,34 @@ static void ACTION_FreeSignature(MSISIGN
msi_free(sig->Languages);
}
-static UINT ACTION_AppSearchComponents(MSIPACKAGE *package, LPWSTR *appValue,
- MSISIGNATURE *sig)
+static UINT ACTION_AppSearchComponents(MSIPACKAGE *package, LPWSTR *appValue, MSISIGNATURE *sig)
{
- MSIQUERY *view;
- UINT rc;
- static const WCHAR ExecSeqQuery[] = {
- 's','e','l','e','c','t',' ','*',' ',
- 'f','r','o','m',' ',
- 'C','o','m','p','L','o','c','a','t','o','r',' ',
- 'w','h','e','r','e',' ','S','i','g','n','a','t','u','r','e','_',' ','=',' ',
- '\'','%','s','\'',0};
+ static const WCHAR query[] = {
+ 's','e','l','e','c','t',' ','*',' ',
+ 'f','r','o','m',' ',
+ 'C','o','m','p','L','o','c','a','t','o','r',' ',
+ 'w','h','e','r','e',' ','S','i','g','n','a','t','u','r','e','_',' ','=',' ',
+ '\'','%','s','\'',0};
+ MSIRECORD *row;
+ LPWSTR guid;
- TRACE("(package %p, appValue %p, sig %p)\n", package, appValue, sig);
- *appValue = NULL;
- rc = MSI_OpenQuery(package->db, &view, ExecSeqQuery, sig->Name);
- if (rc == ERROR_SUCCESS)
- {
- MSIRECORD *row = 0;
- WCHAR guid[50];
- DWORD sz;
+ TRACE("%s\n", debugstr_w(sig->Name));
- rc = MSI_ViewExecute(view, 0);
- if (rc != ERROR_SUCCESS)
- {
- TRACE("MSI_ViewExecute returned %d\n", rc);
- goto end;
- }
- rc = MSI_ViewFetch(view,&row);
- if (rc != ERROR_SUCCESS)
- {
- TRACE("MSI_ViewFetch returned %d\n", rc);
- rc = ERROR_SUCCESS;
- goto end;
- }
-
- /* get GUID */
- guid[0] = 0;
- sz=sizeof(guid)/sizeof(guid[0]);
- rc = MSI_RecordGetStringW(row,2,guid,&sz);
- if (rc != ERROR_SUCCESS)
- {
- ERR("Error is %x\n",rc);
- goto end;
- }
- FIXME("AppSearch unimplemented for CompLocator table (GUID %s)\n",
- debugstr_w(guid));
+ *appValue = NULL;
-end:
- if (row)
- msiobj_release(&row->hdr);
- MSI_ViewClose(view);
- msiobj_release(&view->hdr);
- }
- else
+ row = MSI_QueryGetRecord( package->db, query, sig->Name );
+ if (!row)
{
- TRACE("MSI_OpenQuery returned %d\n", rc);
- rc = ERROR_SUCCESS;
+ TRACE("failed to query CompLocator for %s\n", debugstr_w(sig->Name));
+ return ERROR_SUCCESS;
}
- TRACE("returning %d\n", rc);
- return rc;
+ guid = msi_dup_record_field( row, 2 );
+ FIXME("AppSearch CompLocator (%s) unimplemented\n", debugstr_w(guid));
+ msi_free( guid );
+ msiobj_release( &row->hdr );
+
+ return ERROR_SUCCESS;
}
static void ACTION_ConvertRegValue(DWORD regType, const BYTE *value, DWORD sz,
More information about the wine-cvs
mailing list