Здравствуйте!
Помогите пожайлуста!
При выполнение кода, который копирует текст в буфер обмена, выдаётся следующая ошибка: 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. — ХД
Здравствуйте, _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 >>
Здравствуйте, Ed.ward, Вы писали:
EW>Здравствуйте, _Kleo, Вы писали:
EW>Надо где либо в потоке в котором выполняется этот код вызвать
EW>EW>::CoInitialize
EW>
EW>и где-нить соотвтественно
EW>EW>::CoUninitialize
EW>
EW>Ed.ward
Я это уже пробовала, результат тот же
Здравствуйте, _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 >>