BG Development


  Reply to this topicStart new topicStart Poll

> Disassembling на Clipboard
Aleks30
Публикувано на: 19-12-2014, 18:46
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 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-а за всеки тип и да ги копирам някъде, след това ще опитвам енкодинг и прочее.

Благодаря.
PMEmail Poster
Top
HobGoblin
Публикувано на: 19-12-2014, 18:58
Quote Post



Име: Пламен Димитров
Група: Потребител
Ранг: Активен

Мнения: 242
Регистриран на: 02.07.05



това не върши ли работа?

GlobalSize
PMEmail PosterICQ
Top
Aleks30
Публикувано на: 19-12-2014, 19:57
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 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);
PMEmail Poster
Top
HobGoblin
Публикувано на: 19-12-2014, 20:01
Quote Post



Име: Пламен Димитров
Група: Потребител
Ранг: Активен

Мнения: 242
Регистриран на: 02.07.05



MessageBox може да прецака нещата. По-добре dump във файлче и след това гледане с някой редактор, който има hex view
PMEmail PosterICQ
Top
2d3d4d
Публикувано на: 19-12-2014, 21:57
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 10.10.14



Разгледай ей тоя код: https://github.com/avalkov/MultiClip
PMEmail Poster
Top
Дон Реба
Публикувано на: 20-12-2014, 08:27
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10496
Регистриран на: 11.11.06



добро забавление си си намерил, като знам до какви висини може да стигне сложността на някаква сериализация, че дори със документация трудно се подкарва, направо ти се чудя на ентусиазма icon_smile.gif
PM
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0