информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяАтака на InternetВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
LocalAlloc это же только для совместимости с 16bit 21.10.02 15:43  Число просмотров: 1143
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
<programming>
[Win32] clipboard 20.10.02 18:57  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
есть такой код для размещения строкового массива в clipboard:
char* buf = new char[100];
if(this->OpenClipboard() == NULL) {
ERR
return;
}
::EmptyClipboard();
if(::SetClipboardData(CF_TEXT,(void*) buf) == NULL) {
DWORD res = GetLastError();
return;
}
при вызове SetClipboardData возвращается NULL , а GetLastError возвращает следующий код:
ERROR_INVALID_HANDLE
что не верно???????
Юзай LocalAlloc как в примере 21.10.02 08:26  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>

oc=LocalAlloc(0,sz);
//.....
OpenClipboard(0);
SetClipboardData(CF_TEXT,oc);
CloseClipboard();
LocalAlloc это же только для совместимости с 16bit 21.10.02 15:43  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
Зато работает 21.10.02 16:09  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Не знаю не знаю. В msdn написано что If the hMem parameter identifies a memory object, the object must have been allocated using the GlobalAlloc function with the GMEM_MOVEABLE flag. Но у меня так не работало почему-то. А с localalloc все ок.
Зато работает 21.10.02 17:27  
Автор: IgorR <Igor Razin> Статус: Member
<"чистая" ссылка>
> Не знаю не знаю. В msdn написано что If the hMem parameter
> identifies a memory object, the object must have been
> allocated using the GlobalAlloc function with the
> GMEM_MOVEABLE flag. Но у меня так не работало почему-то. А
> с localalloc все ок.

TCHAR szStr[] = TEXT("Test");

OpenClipboard( NULL );
EmptyClipboard();

HGLOBAL hClipData = GlobalAlloc( GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof( szStr ) + 1 );

PTSTR pClipData = (PTSTR) GlobalLock( hClipData );

_tcscpy( pClipData, szStr );

#ifdef UNICODE
SetClipboardData( CF_UNICODETEXT, hClipData );
#else
SetClipboardData( CF_TEXT, hClipData );
#endif

CloseClipboard();
GlobalFree( hClipData );
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach