[09/18] comctl32: TaskDialog - make thread-safe

Nikolay Sivov bunglehead at gmail.com
Fri Feb 24 14:36:04 CST 2017


On 24.02.2017 23:04, Fabian Maurer wrote:
> Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
> ---
>  dlls/comctl32/taskdialog.c | 137 ++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 105 insertions(+), 32 deletions(-)
> 
> diff --git a/dlls/comctl32/taskdialog.c b/dlls/comctl32/taskdialog.c
> index 3d6b99000c..63848303f5 100644
> --- a/dlls/comctl32/taskdialog.c
> +++ b/dlls/comctl32/taskdialog.c
> @@ -69,6 +69,26 @@ typedef struct
>      UINT y;
>  }button_info;
>  
> +typedef struct
> +{
> +    struct list entry;
> +    const TASKDIALOGCONFIG *task_config;
> +    HFONT font_default;
> +    HFONT font_main;
> +    HWND hwnd;
> +}taskdialog_info;
> +
> +struct list taskdialogs = LIST_INIT(taskdialogs);
> +
> +static CRITICAL_SECTION taskdialog_section;
> +static CRITICAL_SECTION_DEBUG taskdialog_section_debug =
> +{
> +    0, 0, &taskdialog_section,
> +    { &taskdialog_section_debug.ProcessLocksList, &taskdialog_section_debug.ProcessLocksList },
> +      0, 0, { (DWORD_PTR)(__FILE__ ": taskdialog_section") }
> +};
> +static CRITICAL_SECTION taskdialog_section = { &taskdialog_section_debug, -1, 0, 0, 0, 0 };
> +

Why would you need something like that? What is unsafe about regular
dialog window?





More information about the wine-devel mailing list