Как получить русский текст из буфера обмена на C++?

Как получить русский текст из буфера обмена на C++?

Нашел вот такой код, но он не работает. С символами не русского языка все работает отлично, но если в строке есть русский символ, то он просто пустой, при выводе в консоли.

Вот код:

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

std::wstring GetClipboardText()
{
    if (!OpenClipboard(nullptr))
    {
        CloseClipboard();
        return L"";
    }

    HANDLE hData = GetClipboardData(CF_UNICODETEXT);
    if (hData == nullptr)
    {
        CloseClipboard();
        return L"";
    }

    wchar_t* pszText = static_cast<wchar_t*>(GlobalLock(hData));
    if (pszText == nullptr)
    {
        CloseClipboard();
        return L"";
    }

    std::wstring text(pszText);

    GlobalUnlock(hData);
    CloseClipboard();

    return text;
}

int main()
{
    std::wstring text = GetClipboardText();
    std::wcout << text << std::endl;

    return 0;
}

Ответы (0 шт):