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;
}
Exemple #2
0
/*
 * @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;
}
Exemple #3
0
BOOL
WINAPI
CancelWaitableTimer(
    HANDLE hTimer
)
{
    NTSTATUS Status;

    Status = NtCancelTimer(hTimer,NULL);
    if ( !NT_SUCCESS(Status) ) {
        BaseSetLastNTError(Status);
        return FALSE;
    }
    else {
        return TRUE;
    }
}