diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 59b756a846e..897e9c90278 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -5723,6 +5723,8 @@ static UINT ACTION_InstallODBC( MSIPACKAGE *package ) static UINT ITERATE_RemoveODBCDriver( MSIRECORD *rec, LPVOID param ) { + MSIPACKAGE *package = param; + MSIRECORD *uirow; DWORD usage; LPCWSTR desc; @@ -5736,11 +5738,19 @@ static UINT ITERATE_RemoveODBCDriver( MSIRECORD *rec, LPVOID param ) FIXME("Usage count reached 0\n"); } + uirow = MSI_CreateRecord( 2 ); + MSI_RecordSetStringW( uirow, 1, desc ); + MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); + ui_actiondata( package, szRemoveODBC, uirow ); + msiobj_release( &uirow->hdr ); + return ERROR_SUCCESS; } static UINT ITERATE_RemoveODBCTranslator( MSIRECORD *rec, LPVOID param ) { + MSIPACKAGE *package = param; + MSIRECORD *uirow; DWORD usage; LPCWSTR desc; @@ -5754,11 +5764,19 @@ static UINT ITERATE_RemoveODBCTranslator( MSIRECORD *rec, LPVOID param ) FIXME("Usage count reached 0\n"); } + uirow = MSI_CreateRecord( 2 ); + MSI_RecordSetStringW( uirow, 1, desc ); + MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); + ui_actiondata( package, szRemoveODBC, uirow ); + msiobj_release( &uirow->hdr ); + return ERROR_SUCCESS; } static UINT ITERATE_RemoveODBCDataSource( MSIRECORD *rec, LPVOID param ) { + MSIPACKAGE *package = param; + MSIRECORD *uirow; LPWSTR attrs; LPCWSTR desc, driver; WORD request = ODBC_REMOVE_SYS_DSN; @@ -5791,6 +5809,13 @@ static UINT ITERATE_RemoveODBCDataSource( MSIRECORD *rec, LPVOID param ) } msi_free( attrs ); + uirow = MSI_CreateRecord( 3 ); + MSI_RecordSetStringW( uirow, 1, desc ); + MSI_RecordSetStringW( uirow, 2, MSI_RecordGetString(rec, 2) ); + MSI_RecordSetInteger( uirow, 3, request ); + ui_actiondata( package, szRemoveODBC, uirow ); + msiobj_release( &uirow->hdr ); + return ERROR_SUCCESS; }