Module: wine Branch: master Commit: 9afb0f39a84832d39faeca46bc81994ffd266849 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9afb0f39a84832d39faeca46bc...
Author: Peter Oberndorfer kumbayo84@arcor.de Date: Tue Feb 6 20:01:08 2007 +0100
msi: Store value of the property with each listbox element.
This makes sure the property is set to the right value even when order in listbox is changed.
---
dlls/msi/dialog.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index f144427..1c05d75 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -2100,13 +2100,15 @@ static UINT msi_listbox_add_item( MSIREC struct msi_listbox_info *info = param; LPCWSTR value, text; static int index = 0; + int pos;
value = MSI_RecordGetString( rec, 3 ); text = MSI_RecordGetString( rec, 4 );
info->items[index] = strdupW( value );
- SendMessageW( info->hwnd, LB_ADDSTRING, 0, (LPARAM)text ); + pos = SendMessageW( info->hwnd, LB_ADDSTRING, 0, (LPARAM)text ); + SendMessageW( info->hwnd, LB_SETITEMDATA, pos, (LPARAM)info->items[index] ); index++; return ERROR_SUCCESS; } @@ -2146,15 +2148,17 @@ static UINT msi_dialog_listbox_handler( { struct msi_listbox_info *info; int index; + LPCWSTR value;
if( HIWORD(param) != LBN_SELCHANGE ) return ERROR_SUCCESS;
info = GetPropW( control->hwnd, szButtonData ); index = SendMessageW( control->hwnd, LB_GETCURSEL, 0, 0 ); + value = (LPCWSTR) SendMessageW( control->hwnd, LB_GETITEMDATA, index, 0 );
MSI_SetPropertyW( info->dialog->package, - control->property, info->items[index] ); + control->property, value ); msi_dialog_evaluate_control_conditions( info->dialog );
return ERROR_SUCCESS;