#include <atl\atlvcl.h>
CComPtr<IOleCommandTarget>m_spOleCmdTarg;
CComPtr<IHTMLSelectionObject>spSelObj;
CComPtr<IHTMLTxtRange>spTxtRng;
CComPtr<IHTMLDocument2>spDoc;
WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&spDoc);
spDoc->get_selection(&spSelObj);
HRESULT hr;
hr = spSelObj->createRange((IDispatch**)&spTxtRng);
if (!SUCCEEDED(hr)) return;
spTxtRng->QueryInterface(IID_IOleCommandTarget, (LPVOID*)&m_spOleCmdTarg);
m_spOleCmdTarg->Exec(&CGID_MSHTML, OLECMDID_COPY, Shdocvw_tlb::OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
CppWebBrowser - копирование контента
Borland C++ Builder 6.0
В форме используется контрол ТCppWebBrowser (все установки контрола по умолчанию).
Как скопировать в буфер обмена выделенную мышью часть текста загруженной в этот контрол web-страницы?
Спасибо.
спасибо за наводку, но вот только мне не понятно, каким образом нужно использовать данный код? Его нужно прикручивать к какому-то событию?
Может у вас есть ссылочка на какой-нибудь исходник-пример?
И еще странности...
Как только я добавляю в свой код #include <atl\atlvcl.h>, то сразу же компилятор начинает ругаться на неверное приведение типов, например на строку
AnsiString sCurVerInt;
AnsiString sCurVer;
sCurVerInt = StrToInt( AnsiReplaceStr( sCurVer, ".", "" ));
пишет, что мол "type mismatch in parameter "IpSrc" (wanted const char*, got 'AnsiString)"
Цитата: foxby
oxotnik333,
спасибо за наводку, но вот только мне не понятно, каким образом нужно использовать данный код? Его нужно прикручивать к какому-то событию?
Может у вас есть ссылочка на какой-нибудь исходник-пример?
спасибо за наводку, но вот только мне не понятно, каким образом нужно использовать данный код? Его нужно прикручивать к какому-то событию?
Может у вас есть ссылочка на какой-нибудь исходник-пример?
а в какой момент тебе надо копировать? (туда и прикручивай)
Цитата: foxby
И еще странности...
Как только я добавляю в свой код #include <atl\atlvcl.h>, то сразу же компилятор начинает ругаться на неверное приведение типов, например на строку
AnsiString sCurVerInt;
AnsiString sCurVer;
sCurVerInt = StrToInt( AnsiReplaceStr( sCurVer, ".", "" ));
пишет, что мол "type mismatch in parameter "IpSrc" (wanted const char*, got 'AnsiString)"
Код:
sCurVerInt = StrToInt( AnsiReplaceStr( sCurVer, ".", "" ).c_str());
еще раз спасибо, особенно за то, что про ATL мне напомнил... поизучаю, т.к. вижу мне это понадобится для другой цели.
А для меня решение еще проще оказалось (приятель где-то в инете нашел).
В исходном коде формы, в которой используется CppWebBrowser, понадобилось всего лишь переинициализировать OLE, вот таким образом:
__fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner)
{[INDENT][COLOR=Blue] ::OleInitialize(NULL);[/COLOR]
[COLOR=Blue] ::OleUninitialize;[/COLOR]
[/INDENT]}
Теперь работает контекстное меню браузера в полном объеме, включая копирование контекста в буфер обмена.
Возможно еще кому-то пригодится.
ну так бы сразу и сказал, что через контекстное меню самого браузера надо...