Mercurial > pidgin.yaz
comparison pidgin/win32/winpidgin.c @ 21981:46a9fc98402e
This is how the error handling for the win32 single instance mutex is supposed to work.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Fri, 04 Jan 2008 01:10:09 +0000 |
parents | 6492a6ca4b03 |
children | 3370f295a1e0 |
comparison
equal
deleted
inserted
replaced
21980:26648115261c | 21981:46a9fc98402e |
---|---|
448 static BOOL winpidgin_set_running(BOOL fail_if_running) { | 448 static BOOL winpidgin_set_running(BOOL fail_if_running) { |
449 HANDLE h; | 449 HANDLE h; |
450 | 450 |
451 if ((h = CreateMutex(NULL, FALSE, "pidgin_is_running"))) { | 451 if ((h = CreateMutex(NULL, FALSE, "pidgin_is_running"))) { |
452 DWORD err = GetLastError(); | 452 DWORD err = GetLastError(); |
453 if (err == ERROR_ALREADY_EXISTS && fail_if_running) { | 453 if (err == ERROR_ALREADY_EXISTS) { |
454 HWND msg_win; | 454 if (fail_if_running) { |
455 | 455 HWND msg_win; |
456 printf("An instance of Pidgin is already running.\n"); | 456 |
457 | 457 printf("An instance of Pidgin is already running.\n"); |
458 if((msg_win = FindWindowEx(HWND_MESSAGE, NULL, TEXT("WinpidginMsgWinCls"), NULL))) | 458 |
459 if(SendMessage(msg_win, PIDGIN_WM_FOCUS_REQUEST, (WPARAM) NULL, (LPARAM) NULL)) | 459 if((msg_win = FindWindowEx(HWND_MESSAGE, NULL, TEXT("WinpidginMsgWinCls"), NULL))) |
460 return FALSE; | 460 if(SendMessage(msg_win, PIDGIN_WM_FOCUS_REQUEST, (WPARAM) NULL, (LPARAM) NULL)) |
461 | 461 return FALSE; |
462 /* If we get here, the focus request wasn't successful */ | 462 |
463 | 463 /* If we get here, the focus request wasn't successful */ |
464 MessageBox(NULL, | 464 |
465 "An instance of Pidgin is already running", | 465 MessageBox(NULL, |
466 NULL, MB_OK | MB_TOPMOST); | 466 "An instance of Pidgin is already running", |
467 | 467 NULL, MB_OK | MB_TOPMOST); |
468 return FALSE; | 468 |
469 } else | 469 return FALSE; |
470 } | |
471 } else if (err != ERROR_SUCCESS) | |
470 printf("Error (%u) accessing \"pidgin_is_running\" mutex.\n", (UINT) err); | 472 printf("Error (%u) accessing \"pidgin_is_running\" mutex.\n", (UINT) err); |
471 } | 473 } |
472 return TRUE; | 474 return TRUE; |
473 } | 475 } |
474 | 476 |