Использование класса COleDataSource при копировании текста
От: _Kleo Россия  
Дата: 22.07.03 08:02
Оценка:
Здравствуйте!
Помогите пожайлуста!
При выполнение кода, который копирует текст в буфер обмена, выдаётся следующая ошибка: CoInitialize has not been called в строке pData->SetClipboard();. Операционная система — win 2000.

void CTipaTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString text ="This is test for COleDataSource object";
HGLOBAL hGlobal = ::GlobalAlloc(GMEM_SHARE|GMEM_MOVEABLE, text.GetLength() + 4);
LPSTR buf = (LPSTR)::GlobalLock(hGlobal);
lstrcpy(buf, (LPCTSTR)text);
::GlobalUnlock(hGlobal);

COleDataSource *pData = new COleDataSource;
pData->CacheGlobalData(CF_TEXT, hGlobal);
pData->SetClipboard();
delete pData;
}



23.07.03 11:56: Перенесено модератором из 'WIN API' в MFC. — ХД
Re: Использование класса COleDataSource при копировании те
От: Ed.ward Россия  
Дата: 22.07.03 08:05
Оценка:
Здравствуйте, _Kleo, Вы писали:

_K>Здравствуйте!

_K>Помогите пожайлуста!
_K>При выполнение кода, который копирует текст в буфер обмена, выдаётся следующая ошибка: CoInitialize has not been called в строке pData->SetClipboard();. Операционная система — win 2000.

_K>void CTipaTestDlg::OnButton1()

_K>{
_K> // TODO: Add your control notification handler code here
_K> CString text ="This is test for COleDataSource object";
_K> HGLOBAL hGlobal = ::GlobalAlloc(GMEM_SHARE|GMEM_MOVEABLE, text.GetLength() + 4);
_K> LPSTR buf = (LPSTR)::GlobalLock(hGlobal);
_K> lstrcpy(buf, (LPCTSTR)text);
_K> ::GlobalUnlock(hGlobal);

_K> COleDataSource *pData = new COleDataSource;

_K> pData->CacheGlobalData(CF_TEXT, hGlobal);
_K> pData->SetClipboard();
_K> delete pData;
_K>}

Надо где либо в потоке в котором выполняется этот код вызвать

::CoInitialize


и где-нить соотвтественно
::CoUninitialize


Ed.ward
... << RSDN@Home 1.0 beta 7a >>
Re[2]: Использование класса COleDataSource при копировании
От: _Kleo Россия  
Дата: 22.07.03 08:44
Оценка:
Здравствуйте, Ed.ward, Вы писали:

EW>Здравствуйте, _Kleo, Вы писали:



EW>Надо где либо в потоке в котором выполняется этот код вызвать


EW>
EW>::CoInitialize
EW>


EW>и где-нить соотвтественно

EW>
EW>::CoUninitialize
EW>


EW>Ed.ward

Я это уже пробовала, результат тот же
Re[3]: Использование класса COleDataSource при копировании
От: Ed.ward Россия  
Дата: 22.07.03 08:54
Оценка:
Здравствуйте, _Kleo, Вы писали:

_K>Здравствуйте, Ed.ward, Вы писали:


EW>Здравствуйте, _Kleo, Вы писали:



EW>Надо где либо в потоке в котором выполняется этот код вызвать


EW>
EW>::CoInitialize
EW>


EW>и где-нить соотвтественно

EW>
EW>::CoUninitialize
EW>


EW>Ed.ward

_K>Я это уже пробовала, результат тот же

Во,
OleInitialize



Applications that use the following functionality must call OleInitialize before calling any other function in the COM library:

Clipboard
Drag and drop
Object linking and embedding (OLE)
In-place activation


Ed.ward
... << RSDN@Home 1.0 beta 7a >>
Re[4]: Использование класса COleDataSource при копировании
От: _Kleo Россия  
Дата: 22.07.03 09:48
Оценка:
EW>Во,
EW>
EW>OleInitialize
EW>


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