On 25.02.2017 19:01, Fabian Maurer wrote:
+/* FIXME: Make thread safe? */ +static const TASKDIALOGCONFIG *task_config = 0; +static HRESULT callback(HWND hwnd, UINT uNotification, WPARAM wParam, LPARAM lParam) +{
- if(task_config->pfCallback)
return task_config->pfCallback(hwnd, uNotification, wParam, lParam, task_config->lpCallbackData);
- return S_OK;
+}
static INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- HRESULT ret_callback;
- switch (uMsg) {
case WM_INITDIALOG:
callback(hwndDlg, TDN_DIALOG_CONSTRUCTED, 0, 0);
callback(hwndDlg, TDN_CREATED, 0, 0);
return TRUE;
How is this going to work with global variable?
+/* For message checking we use a simplified version from the code used for user32 messages */
+#define TDN_NO_MORE_MESSAGES 0xffffffff
+typedef struct +{
- UINT msg;
- WPARAM wparam;
- LPARAM lparam;
- struct list entry;
+}message_data;
+static struct list messages = LIST_INIT(messages);
+/* Message lists to test against */
+static const message_data mes_simple_show[] = {
- { TDN_DIALOG_CONSTRUCTED, 0, 0 },
- { TDN_CREATED, 0, 0 },
- { TDN_BUTTON_CLICKED, IDOK, 0 },
- { TDN_DESTROYED, 0, 0 },
- { TDN_NO_MORE_MESSAGES }
+};
+/* Functions handling message processing */
+static void message_add(UINT msg, WPARAM wparam, LPARAM lparam) +{
- message_data *data = HeapAlloc(GetProcessHeap(), 0, sizeof(message_data));
- data->msg = msg;
- data->wparam = wparam;
- data->lparam = lparam;
- list_add_tail(&messages, &data->entry);
+}
+#define ok_sequence(exp ) \
ok_sequence_((exp), __FILE__, __LINE__)
+static void ok_sequence_(const message_data *expected_list, const char *file, int line) +{
- message_data *message;
- BOOL dump = FALSE;
- UINT count;
For that please use msg.h from comctl32/tests.