Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с буфером обмена

33K
19 ноября 2007 года
Em_gr
1 / / 19.11.2007
Существует массив фигур, выделенные фигуры нужно копировать в буфер, а потом извлекать.
Когда копируем в буфер вроде все нормально:
Код:
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();
...

Ненравиться ему вот эта строка, а почему я понять не могу : ar1.Write(data,s);
Подскажите в чем может быть ошибка?
[COLOR="Red"]Код надо оформлять по Правилам при помощи тегов [ code ] [ /code ][/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог