Расспиши каждое действие в коде и что за что отвечает.
Так же улучши его работоспособность и логику действий и расскажи .

#include <windows.h>
#include <string>
#include <fstream>
#include <iostream>

const wchar_t CLASS_NAME[] = L"PasswordWindowClass";
std::string password;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
void LockWindows();
void SavePassword(const std::string& password);

bool CheckPassword(const std::string& enteredPassword)
{
    std::ifstream file("C:\Windows\Logs\password.txt");
    if (file.is_open())
    {
        std::string savedPassword;
        if (std::getline(file, savedPassword))
        {
            file.close();
            return (enteredPassword == savedPassword);
        }
        else
        {
            file.close();
            return false;
        }
    }

    return false;
}

void SavePassword(const std::string& password)
{
    std::ofstream file("C:\Windows\Logs\password.txt");
    if (file.is_open())
    {
        file << password;
        file.close();
    }
    else
    {
        MessageBox(NULL, TEXT("Не удалось сохранить пароль!"), TEXT("Ошибка"), MB_OK | MB_ICONERROR);
    }
}

void LockWindows()
{
    LockWorkStation();
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASS wc = {};
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;

    RegisterClass(&wc);

    HWND hwnd = CreateWindowEx(
        0,
        CLASS_NAME,
        L"Ввод пароля",
        WS_OVERLAPPEDWINDOW,

        CW_USEDEFAULT, CW_USEDEFAULT, 300, 150,

        NULL,
        NULL,
        hInstance,
        NULL
    );

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

    ShowWindow(hwnd, nCmdShow);

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

    if (CheckPassword(password))
    {
        // Правильный пароль, продолжаем запуск операционной системы
    }
    else
    {
        // Неправильный пароль, выключаем компьютер
        MessageBox(NULL, TEXT("Неправильный пароль!Компьютер будет выключен."), TEXT("Ошибка"), MB_OK | MB_ICONERROR);
        ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
    }

    return static_cast<int>(msg.wParam);
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_CREATE:
    {
        HWND hEdit = CreateWindowEx(
            0,
            TEXT("edit"),
            TEXT(""),
            WS_CHILD | WS_VISIBLE | WS_BORDER | ES_PASSWORD,
            10, 10, 200, 25, hwnd, reinterpret_cast<HMENU>(0), nullptr, nullptr
        );

        HWND hButton = CreateWindowEx(
            0,
            TEXT("button"),
            TEXT("Ввести"),
            WS_CHILD | WS_VISIBLE,
            10, 40, 100, 25, hwnd, reinterpret_cast<HMENU>(1), nullptr, nullptr
        );

        HWND hChangePasswordButton = CreateWindowEx(
            0,
            TEXT("button"),
            TEXT("Изменить пароль"),
            WS_CHILD | WS_VISIBLE,
            120, 40, 150, 25, hwnd, reinterpret_cast<HMENU>(2), nullptr, nullptr
        );

        // Отображение окна при запуске программы
        ShowWindow(hwnd, SW_SHOWNORMAL);
        break;
    }
    case WM_COMMAND:
    {
        if (LOWORD(wParam) == 1)
        {
            HWND hEdit = GetDlgItem(hwnd, 0);
            int length = GetWindowTextLengthA(hEdit);
            password.resize(length);
            GetWindowTextA(hEdit, &password[0], length + 1);

            MessageBox(hwnd, TEXT("Пароль сохранен."), TEXT("Пароль сохранен"), MB_OK | MB_ICONINFORMATION);

            SavePassword(password);

            LockWindows();

            DestroyWindow(hwnd);
        }
        else if (LOWORD(wParam) == 2)
        {
            // Открыть окно для изменения пароля
            HWND hChangePasswordWindow = CreateWindowEx(
                0,
                CLASS_NAME,
                L"Изменение пароля",
                WS_OVERLAPPEDWINDOW,

                CW_USEDEFAULT, CW_USEDEFAULT, 300, 150,

                NULL,
                NULL,
                GetModuleHandle(NULL),
                NULL
            );

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

            ShowWindow(hChangePasswordWindow, SW_SHOWNORMAL);

            EnableWindow(hwnd, FALSE);
        }

        break;
    }
    case WM_CLOSE:
    {
        MessageBox(hwnd, TEXT("Введите пароль."), TEXT("Ошибка"), MB_OK | MB_ICONERROR);
        break;
    }
    case WM_DESTROY:
    {
        PostQuitMessage(0);
        break;
    }
    default:
        return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }

    return 0;
}