mirror of
https://github.com/reactos/wine.git
synced 2024-11-25 20:59:54 +00:00
msi: Cleanup the dialog event subscriptions when destroying the dialog.
This commit is contained in:
parent
0197c2c292
commit
0746b9076d
@ -3429,6 +3429,9 @@ void msi_dialog_destroy( msi_dialog *dialog )
|
|||||||
if( dialog->hwnd )
|
if( dialog->hwnd )
|
||||||
DestroyWindow( dialog->hwnd );
|
DestroyWindow( dialog->hwnd );
|
||||||
|
|
||||||
|
/* unsubscribe events */
|
||||||
|
ControlEvent_CleanupDialogSubscriptions(dialog->package, dialog->name);
|
||||||
|
|
||||||
/* destroy the list of controls */
|
/* destroy the list of controls */
|
||||||
while( !list_empty( &dialog->controls ) )
|
while( !list_empty( &dialog->controls ) )
|
||||||
{
|
{
|
||||||
|
@ -54,7 +54,6 @@ struct subscriber {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static UINT ControlEvent_HandleControlEvent(MSIPACKAGE *, LPCWSTR, LPCWSTR, msi_dialog*);
|
static UINT ControlEvent_HandleControlEvent(MSIPACKAGE *, LPCWSTR, LPCWSTR, msi_dialog*);
|
||||||
static VOID ControlEvent_CleanupDialogSubscriptions(MSIPACKAGE *package, LPWSTR dialog);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a dialog box and run it if it's modal
|
* Create a dialog box and run it if it's modal
|
||||||
@ -321,7 +320,7 @@ VOID ControlEvent_FireSubscribedEvent( MSIPACKAGE *package, LPCWSTR event,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID ControlEvent_CleanupDialogSubscriptions(MSIPACKAGE *package, LPWSTR dialog)
|
VOID ControlEvent_CleanupDialogSubscriptions(MSIPACKAGE *package, LPWSTR dialog)
|
||||||
{
|
{
|
||||||
struct list *i, *t;
|
struct list *i, *t;
|
||||||
struct subscriber *sub;
|
struct subscriber *sub;
|
||||||
|
@ -781,6 +781,7 @@ extern void msi_ui_error( DWORD msg_id, DWORD type );
|
|||||||
/* control event stuff */
|
/* control event stuff */
|
||||||
extern VOID ControlEvent_FireSubscribedEvent(MSIPACKAGE *package, LPCWSTR event,
|
extern VOID ControlEvent_FireSubscribedEvent(MSIPACKAGE *package, LPCWSTR event,
|
||||||
MSIRECORD *data);
|
MSIRECORD *data);
|
||||||
|
extern VOID ControlEvent_CleanupDialogSubscriptions(MSIPACKAGE *package, LPWSTR dialog);
|
||||||
extern VOID ControlEvent_CleanupSubscriptions(MSIPACKAGE *package);
|
extern VOID ControlEvent_CleanupSubscriptions(MSIPACKAGE *package);
|
||||||
extern VOID ControlEvent_SubscribeToEvent(MSIPACKAGE *package, msi_dialog *dialog,
|
extern VOID ControlEvent_SubscribeToEvent(MSIPACKAGE *package, msi_dialog *dialog,
|
||||||
LPCWSTR event, LPCWSTR control, LPCWSTR attribute);
|
LPCWSTR event, LPCWSTR control, LPCWSTR attribute);
|
||||||
|
Loading…
Reference in New Issue
Block a user