Вызов GlobalLock в DragEnter
От: doville Россия  
Дата: 16.10.07 18:37
Оценка:
При драг-энд-дропе из одного окна(процесса) в другое(процесс) повторный вызов GlobalLock возращает NULL.

Ошибка:
ERROR_DISCARDED
157 The segment is already discarded and cannot be locked.


То есть даже если они(вызовы GlobalLock) друг за другом идут например так:

...
pDataObject->GetData(&fmt,&stg);
LPVOID pVoid = GlobalLock(stg.hGlobal);
-> здесь ОК if (pVoid)
m_itemDataIncoming = *(TITEMDATA *) pVoid;
GlobalUnlock(stg.hGlobal);
pVoid = GlobalLock(stg.hGlobal);
-> здесь ERROR if (pVoid)
m_itemDataIncoming = *(TITEMDATA *) pVoid;
GlobalUnlock(stg.hGlobal);


внутри одного окна все работает, но если в другое окно(процесс) залез мышкой, то после этого и в исходном окне тоже NULL


Может кто-то сталкивался с такой проблемой? Или я чего-то не проинициализировал?

спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.