| BG Development · За реклама · За контакти |
Помощ Търсене Потребители Календар Правила |
| Здравей! ( Включване | Регистриране ) |
![]() ![]() ![]() |
| Aleks30 |
Публикувано на: 19-12-2014, 18:46
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 22 Регистриран на: 01.01.06 |
Здравейте, трябва ми малко помощ. Една програма ползва Clipboard, желая да извадя тези данни и направа прототип на структурата, за да може да ги ползвам и връщам обратно към Clipboard.
void CtestDlg::OnPasteCustomFormat() { MyFormatData data; if ( OpenClipboard() ) { //get the buffer HANDLE hData = GetClipboardData(format); if (hData == NULL) { CloseClipboard(); return; } MyFormatData * buffer = (MyFormatData *)GlobalLock( hData ); //make a local copy data = *buffer; GlobalUnlock( hData ); CloseClipboard(); } } За начало проблема ми е MyFormatData * buffer = (MyFormatData *)GlobalLock( hData ); Искам двоично да извадя целия буфер на hData за всеки format който съществува в Clipboard-а, а нямам прототипа на MyFormatData. Ако може да узная размера на Clipboard-а за всеки тип и да ги копирам някъде, след това ще опитвам енкодинг и прочее. Благодаря. |
| HobGoblin |
Публикувано на: 19-12-2014, 18:58
|
|
Име: Пламен Димитров Група: Потребител Ранг: Активен Мнения: 242 Регистриран на: 02.07.05 |
|
| Aleks30 |
Публикувано на: 19-12-2014, 19:57
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 22 Регистриран на: 01.01.06 |
Благодаря много, потръгнаха нещата, още да напасвам тези LPBYTE, не забива само дето MessageBox не ми показва точното и цяло съдържание на буфера, .
LPBYTE lpBuff; HANDLE hData = GetClipboardData(format); SIZE_T DataSize = GlobalSize(hData); BYTE *pDest= (BYTE *)GlobalLock(hData); lpBuff= new BYTE[DataSize]; memcpy(lpBuff, pDest, DataSize); GlobalUnlock( hData ); CloseClipboard(); fromClipboard.Format(_T("%s"), (LPCTSTR)lpBuff); MessageBox(fromClipboard,_T("READ CUSTOM"),MB_OK); |
| HobGoblin |
Публикувано на: 19-12-2014, 20:01
|
|
Име: Пламен Димитров Група: Потребител Ранг: Активен Мнения: 242 Регистриран на: 02.07.05 |
MessageBox може да прецака нещата. По-добре dump във файлче и след това гледане с някой редактор, който има hex view
|
| 2d3d4d |
Публикувано на: 19-12-2014, 21:57
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 3 Регистриран на: 10.10.14 |
Разгледай ей тоя код: https://github.com/avalkov/MultiClip
|
| Дон Реба |
Публикувано на: 20-12-2014, 08:27
|
|
Име: Група: Потребител Ранг: Почетен член Мнения: 10496 Регистриран на: 11.11.06 |
добро забавление си си намерил, като знам до какви висини може да стигне сложността на някаква сериализация, че дори със документация трудно се подкарва, направо ти се чудя на ентусиазма
|
![]() |
![]() ![]() ![]() |