Вопрос по преобразованию типов для DLL (работа с буфером обмена)

 
Хотелось бы научится работать с буфером обмена не выходя как говорится из MQL.

есть требуемая функция

BOOL WINAPI OpenClipboard(HWND);
HANDLE WINAPI GetClipboardData(UINT);
BOOL WINAPI CloseClipboard(void);

Handle - это int по нашенски.

#import "User32.dll"
bool OpenClipboard(int hwnd);
int GetClipboardData(uint uFormat);
bool CloseClipboard();


и ещё понадобится одна для копирования из полученного буфера в другой
из Kernel32.dll

VOID RtlMoveMemory(VOID UNALIGNED *Destination, VOID UNALIGNED *Source, SIZE_T Length);

Вот пример из MSDN .

if (!OpenClipboard(hwndMain)) return; 
 
        hglb = GetClipboardData(CF_TEXT); 
        if (hglb != NULL) 
        { 
            lptstr = GlobalLock(hglb); 
            if (lptstr != NULL) 
            { 
                 // что то делаем с полученной строкой //

                GlobalUnlock(hglb); 
            } 
        } 
        CloseClipboard(); 

так вот проблема в том что не могу связать воедино получение указателя от GetClipboardData и дальнейшее его копирование в MQL
 

Я на mql5 Вам отвечал. Пробовали?

 
api >>:

Я на mql5 Вам отвечал. Пробовали?

большое спасибо за ответ. я просто там сразу не увидел (да и здесь народа тусуется больше)
но предложенный вами вариант - думаю подойдет.
надо пробовать!
 

Вот...

Файлы:
clipboard.mq4  3 kb
 
ПавелИванович, золотой вы наш.
Выкладывайте в кодебазе немедленно!

Это вещь!
 
и для тех кто на MQL5 ваяет
надо сделать преобразование полученной строки из unicode в правильный unicode
        // преобразование ANSI в UNICODE
        ushort chW; uchar chA; string rez;
        for (int i=0; i<StringLen(clip); i++)
        {
                chW=StringGetCharacter(clip, i);
                chA=uchar(chW&255); rez=rez+CharToString(chA);
                chA=uchar(chW>>8&255); rez=rez+CharToString(chA);
        }
Но при этом могут потеряться не латинские буквы. Все зависит от приложения, из которого копировался текст.
 
sergeev >>:

А для чего это может понадобится?

Причина обращения: