Beispiel #1
0
NTSTATUS RunTests(VOID)
{
    NTSTATUS Status;
    WORKER Worker;

    Status = WorkerStart(&Worker);
    if (!NT_SUCCESS(Status)) {
        KLErr("WorkerStart failed Status 0x%x", Status);
        return Status;
    }

    Status = WorkerExec(&Worker, SocketTest, NULL, TRUE);
    if (!NT_SUCCESS(Status)) {
        KLErr("SocketTest failed Status 0x%x", Status);
        goto cleanup;
    }

    Status = WorkerExec(&Worker, MapTest, NULL, TRUE);
    if (!NT_SUCCESS(Status)) {
        KLErr("MapTest failed Status 0x%x", Status);
        goto cleanup;
    }

cleanup:
    KLInf("RunTests Status 0x%x", Status);
    WorkerStop(&Worker);
    return Status;
}
Beispiel #2
0
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
    HINSTANCE hInstance = GetModuleHandle(NULL);
    HWND hButton = GetDlgItem(hDlg, IDC_START);
    HMENU hMenu = GetSystemMenu(hDlg, FALSE);
    HICON hBigIcon, hSmallIcon;
    WCHAR buf[BUFSIZ];

    if (msg == WM_TASKBARCREATED && !IsWindowVisible(hDlg)) {
        WorkerMinimize();
        return 0;
    }

    switch (msg) {
    case WM_COMMAND:
        switch (LOWORD(wParam)) {
        case IDC_START:
            WorkerMinimize();
            WorkerStart();
            break;

        case IDC_TIMEOUT:
            if (HIWORD(wParam) == EN_CHANGE) {
                GetDlgItemText(hDlg, IDC_TIMEOUT, buf, BUFSIZ);
                EnableWindow(hButton, (Worker.dwTimeout = _wtoi(buf)) > 0);
            }
        }
        break;

    case WM_SYSCOMMAND:
        switch(LOWORD(wParam)) {
        case WM_INVISIBLE:
            if (Worker.isInvisible = !(GetMenuState(hMenu, WM_INVISIBLE, MF_BYCOMMAND) & MF_CHECKED)) {
                CheckMenuItem(hMenu, WM_INVISIBLE, MF_BYCOMMAND | MF_CHECKED);
            } else {
                CheckMenuItem(hMenu, WM_INVISIBLE, MF_BYCOMMAND | MF_UNCHECKED);
            }
        }
        break;

    case WM_INITDIALOG:
        SetWindowText(hDlg, App.Strings.appName);

        hSmallIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));
        SendMessage(hDlg, WM_SETICON, ICON_SMALL, (LPARAM) hSmallIcon);

        hBigIcon = (HICON) LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON), IMAGE_ICON, 64, 64, 0);
        SendDlgItemMessage(hDlg, IDC_START, BM_SETIMAGE, IMAGE_ICON, (LPARAM) hBigIcon);

        SendDlgItemMessage(hDlg, IDC_TIMEOUT, EM_LIMITTEXT, 5, 0);
        SetDlgItemText(hDlg, IDC_TIMEOUT, DEF_TIMEOUT);

        DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND);
        DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND);
        DeleteMenu(hMenu, SC_SIZE, MF_BYCOMMAND);

        InsertMenu(hMenu, 0, MF_BYPOSITION | MF_STRING | MF_CHECKED, WM_INVISIBLE, App.Strings.cfgInvisible);
        InsertMenu(hMenu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, 0);

        return TRUE;

    case WM_CLOSE:
        DestroyWindow(hDlg);
        return TRUE;

    case WM_DESTROY:
        PostQuitMessage(0);
        return TRUE;

    case WM_TRAYICON:
        switch (lParam) {
        case WM_LBUTTONUP:
        case WM_RBUTTONUP:
            WorkerStop();
            WorkerRestore();
        }
        return FALSE;
    }

    return FALSE;
}