CMemFile MemFile;
CGraphEditorDoc* pDoc = GetDocument();
CArchive ar1(&MemFile, CArchive::store),ar2(&MemFile, CArchive::load);
MemFile.SeekToBegin();
//CObArray arr;
for(int i=0;i<pDoc->MasFig.GetSize();i++)
{
CFigure* f=(CFigure*)pDoc->MasFig;
if(f->select)
f->Serialize(ar1);
}
OpenClipboard();
ar1.Flush();
EmptyClipboard();//очищаем буфер
hgBuffer=GlobalAlloc(GMEM_MOVEABLE,MemFile.GetLength());
MemFile.SeekToBegin();
ar2.Read(hgBuffer,MemFile.GetLength());
s = MemFile.GetLength();
void* data = GlobalLock(hgBuffer);
GlobalUnlock(hgBuffer);
SetClipboardData(format,data);
CloseClipboard();...
Помогите с буфером обмена
Когда копируем в буфер вроде все нормально:
Код:
Но когда пытаюсь извлечь, ничего не получается выдает ошибку
Код:
...
CMemFile MemFile;
CGraphEditorDoc* pDoc = GetDocument();
OpenClipboard();
HANDLE hData=GetClipboardData(format);
CArchive ar1(&MemFile, CArchive::store),ar2(&MemFile, CArchive::load);
MemFile.SeekToBegin();
void* data=GlobalLock(hData);
ar1.Write(data,s);
CloseClipboard();
...
CMemFile MemFile;
CGraphEditorDoc* pDoc = GetDocument();
OpenClipboard();
HANDLE hData=GetClipboardData(format);
CArchive ar1(&MemFile, CArchive::store),ar2(&MemFile, CArchive::load);
MemFile.SeekToBegin();
void* data=GlobalLock(hData);
ar1.Write(data,s);
CloseClipboard();
...
Ненравиться ему вот эта строка, а почему я понять не могу : ar1.Write(data,s);
Подскажите в чем может быть ошибка?
[COLOR="Red"]Код надо оформлять по Правилам при помощи тегов [ code ] [ /code ][/COLOR]