ksacvet777.moy.su
Главная » Статьи » IT

Функции для чтения и записи текста из/в буфер обмена windows

Очень простые и незамысловатые функции для записи  строки в буфер обмена и для чтения из него. 

 

 


void copyTextToClipBoardA(const char* szText) 
{
    const int TXTLEN = (int)strlen(szText);
    if( !OpenClipboard(NULL) )
    {
        throw std::runtime_error("Error copyTextToClipBoardA");
    }

    HGLOBAL hgBuffer=0;
    char* chBuffer;
    EmptyClipboard(); 
    hgBuffer= GlobalAlloc(GMEM_DDESHARE, TXTLEN + 1 );
    chBuffer= (char*)GlobalLock(hgBuffer); 
    strcpy(chBuffer, szText );
    GlobalUnlock(hgBuffer);
    SetClipboardData(CF_TEXT, hgBuffer);
    CloseClipboard(); 


}


void readTextFromClipBoardA( std::string& sDest ) 
{
    sDest = "";
    bool result=false;

    if ( OpenClipboard(NULL) )
    {
        HANDLE hData = GetClipboardData(CF_TEXT);
        char* chBuffer= (char*)GlobalLock(hData);

        if(chBuffer)
        {
            sDest = chBuffer;
        }
        else
        {
            result = false;
        }

        GlobalUnlock(hData);
        CloseClipboard();
        result=true;
    } 

    if(!result)
    {
        throw std::runtime_error("Error OpenClipboard");
    }
    
}
 
 
 
 
 
Категория: IT | Добавил: ksacvet777 (05.11.2014)
Просмотров: 307 | Теги: строка, обмена, Function, clipboard, String, текст, буфер, C++ | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: