INT_PTR CALLBACK PhpTimerPageProc( _In_ HWND hwndDlg, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam ) { PCOMMON_PAGE_CONTEXT pageContext; pageContext = PhpCommonPageHeader(hwndDlg, uMsg, wParam, lParam); if (!pageContext) return FALSE; switch (uMsg) { case WM_INITDIALOG: { PhpRefreshTimerPageInfo(hwndDlg, pageContext); } break; case WM_COMMAND: { switch (LOWORD(wParam)) { case IDC_CANCEL: { NTSTATUS status; HANDLE timerHandle; if (NT_SUCCESS(status = pageContext->OpenObject( &timerHandle, TIMER_MODIFY_STATE, pageContext->Context ))) { switch (LOWORD(wParam)) { case IDC_CANCEL: NtCancelTimer(timerHandle, NULL); break; } NtClose(timerHandle); } PhpRefreshTimerPageInfo(hwndDlg, pageContext); if (!NT_SUCCESS(status)) PhShowStatus(hwndDlg, L"Unable to open the timer", status, 0); } break; } } break; } return FALSE; }
/* * @implemented */ BOOL WINAPI CancelWaitableTimer(IN HANDLE hTimer) { NTSTATUS Status; /* Cancel the timer */ Status = NtCancelTimer(hTimer, NULL); if (NT_SUCCESS(Status)) return TRUE; /* If we got here, then we failed */ BaseSetLastNTError(Status); return FALSE; }
BOOL WINAPI CancelWaitableTimer( HANDLE hTimer ) { NTSTATUS Status; Status = NtCancelTimer(hTimer,NULL); if ( !NT_SUCCESS(Status) ) { BaseSetLastNTError(Status); return FALSE; } else { return TRUE; } }