• [OT] Re: Windows Beep (2/2)

    From Paavo Helde@21:1/5 to Corey White on Thu Jun 27 11:25:37 2024
    [continued from previous message]

                                    }
                                    else if (pszData[i] == L'♆') {
                                        pszModifiedData[i] = L'm';
                                    }
                                    else if (pszData[i] == L'♇') {
                                        pszModifiedData[i] = L'n';
                                    }
                                    else if (pszData[i] == L'♈') {
                                        pszModifiedData[i] = L'o';
                                    }
                                    else if (pszData[i] == L'♉') {
                                        pszModifiedData[i] = L'p';
                                    }
                                    else if (pszData[i] == L'♊') {
                                        pszModifiedData[i] = L'q';
                                    }
                                    else if (pszData[i] == L'♋') {
                                        pszModifiedData[i] = L'r';
                                    }
                                    else if (pszData[i] == L'♌') {
                                        pszModifiedData[i] = L's';
                                    }
                                    else if (pszData[i] == L'♍') {
                                        pszModifiedData[i] = L't';
                                    }
                                    else if (pszData[i] == L'♎') {
                                        pszModifiedData[i] = L'u';
                                    }
                                    else if (pszData[i] == L'♏') {
                                        pszModifiedData[i] = L'v';
                                    }
                                    else if (pszData[i] == L'♐') {
                                        pszModifiedData[i] = L'w';
                                    }
                                    else if (pszData[i] == L'♑') {
                                        pszModifiedData[i] = L'x';
                                    }
                                    else if (pszData[i] == L'♒') {
                                        pszModifiedData[i] = L'y';
                                    }
                                    else if (pszData[i] == L'♓') {
                                        pszModifiedData[i] = L'z';
                                    }

                                    else {
                                        pszModifiedData[i] = pszData[i];
                                    }
                                }
                                pszModifiedData[length] = L'\0';
                                EmptyClipboard();

                                HANDLE hNewData = GlobalAlloc(GMEM_MOVEABLE, (length + 1) * sizeof(WCHAR));
                                if (hNewData != NULL) {
                                    WCHAR* pszNewData =
    static_cast<WCHAR*>(GlobalLock(hNewData));
                                    if (pszNewData != NULL) {
                                        wcscpy_s(pszNewData, length + 1,
    pszModifiedData);
                                        GlobalUnlock(hNewData);

                                        SetClipboardData(CF_UNICODETEXT,
    hNewData);
                                    }
                                    else {
                                        GlobalFree(hNewData);
                                    }
                                }

                                delete[] pszModifiedData;
                            }
                            GlobalUnlock(hClipboardData);
                        }
                    }

                    CloseClipboard();
                }
                SendMessage(hEdit, WM_PASTE, 0, 0);
                break;

            case ID_EDIT_CUT: {
                SendMessage(hEdit, WM_CUT, 0, 0);
                break;
            }
            case ID_EDIT_COPY: {
                SendMessage(hEdit, WM_COPY, 0, 0);
                break;
            }
            case ID_EDIT_PASTE: {
                SendMessage(hEdit, WM_PASTE, 0, 0);
                break;
            }
            case ID_CTRL_D_DECODE: {
                SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(ID_CODE_DECODE,
    0), 0);
                break;
            }
            case ID_CTRL_E_ENCODE: {
                SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(ID_CODE_ENCODE,
    0), 0);
                break;
            }
            case ID_CTRL_T: {
                enableSubstitution = !enableSubstitution;
                UpdateStatusBar();
                break;
            }

            case ID_FILE_EXIT:
                DestroyWindow(hwnd);
                break;
            default:
                return DefWindowProc(hwnd, uMsg, wParam, lParam);
            }
            break;
        }
        case WM_DESTROY: {
            if (hFont) {
                DeleteObject(hFont);
            }
            PostQuitMessage(0);
            break;
        }
        default:
            return DefWindowProc(hwnd, uMsg, wParam, lParam);
        }
        return 0;
    }

    int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
        INITCOMMONCONTROLSEX iccex;
        iccex.dwSize = sizeof(iccex);
        iccex.dwICC = ICC_WIN95_CLASSES;
        InitCommonControlsEx(&iccex);

        WNDCLASS wc = {};
        wc.lpfnWndProc = WindowProc;
        wc.hInstance = hInstance;
        wc.lpszClassName = CLASS_NAME;

        RegisterClass(&wc);

        HWND hwnd = CreateWindowExW(
            0, CLASS_NAME, WINDOW_TITLE,
            WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,
            NULL, NULL, hInstance, NULL);

        if (hwnd == NULL) {
            return 0;
        }

        HMENU hMenu = CreateMenu();
        HMENU hSubMenuFile = CreatePopupMenu();
        AppendMenu(hSubMenuFile, MF_STRING, ID_FILE_OPEN, L"&Open  -  Ctrl + O");
        AppendMenu(hSubMenuFile, MF_STRING, ID_FILE_SAVE, L"&Save  -  Ctrl + S");
        AppendMenu(hSubMenuFile, MF_SEPARATOR, 0, NULL);
        AppendMenu(hSubMenuFile, MF_SEPARATOR, 0, NULL);
        AppendMenu(hSubMenuFile, MF_STRING, ID_FILE_EXIT, L"E&xit  -  Ctrl + Q");

        HMENU hSubMenuCode = CreatePopupMenu();
        AppendMenu(hSubMenuCode, MF_STRING, ID_CODE_ENCODE, L"&Encode  - Ctrl + E");
        AppendMenu(hSubMenuCode, MF_STRING, ID_CODE_DECODE, L"&Decode  - Ctrl + D");
        AppendMenu(hSubMenuCode, MF_STRING, ID_TOGGLE_SUBSTITUTION, L"&Toggle  -  Ctrl + T");

        HMENU hSubMenuEdit = CreatePopupMenu();
        AppendMenu(hSubMenuEdit, MF_STRING, ID_EDIT_CUT, L"&Cut  -  Ctrl + X");
        AppendMenu(hSubMenuEdit, MF_STRING, ID_EDIT_COPY, L"&Copy  -  Ctrl + C");
        AppendMenu(hSubMenuEdit, MF_STRING, ID_EDIT_PASTE, L"&Paste - Ctrl
    + V");

        AppendMenu(hMenu, MF_POPUP, (UINT_PTR)hSubMenuFile, L"&File");
        AppendMenu(hMenu, MF_POPUP, (UINT_PTR)hSubMenuEdit, L"&Edit");
        AppendMenu(hMenu, MF_POPUP, (UINT_PTR)hSubMenuCode, L"&Code");

        SetMenu(hwnd, hMenu);

        ShowWindow(hwnd, nCmdShow);
        UpdateWindow(hwnd);

        MSG msg = {};
        while (GetMessage(&msg, NULL, 0, 0)) {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }

        return msg.wParam;
    }

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)