本文整理汇总了C++中IOleObject::SetClientSite方法的典型用法代码示例。如果您正苦于以下问题:C++ IOleObject::SetClientSite方法的具体用法?C++ IOleObject::SetClientSite怎么用?C++ IOleObject::SetClientSite使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IOleObject
的用法示例。
在下文中一共展示了IOleObject::SetClientSite方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OleSetOleError
// @pymethod |PyIOleObject|SetClientSite|Description of SetClientSite.
PyObject *PyIOleObject::SetClientSite(PyObject *self, PyObject *args)
{
IOleObject *pIOO = GetI(self);
if ( pIOO == NULL )
return NULL;
// @pyparm <o PyIOleClientSite>|pClientSite||Description for pClientSite
PyObject *obpClientSite;
IOleClientSite * pClientSite;
if ( !PyArg_ParseTuple(args, "O:SetClientSite", &obpClientSite) )
return NULL;
BOOL bPythonIsHappy = TRUE;
if (!PyCom_InterfaceFromPyInstanceOrObject(obpClientSite, IID_IOleClientSite, (void **)&pClientSite, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
if (!bPythonIsHappy) return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIOO->SetClientSite( pClientSite );
if (pClientSite) pClientSite->Release();
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return OleSetOleError(hr);
Py_INCREF(Py_None);
return Py_None;
}
示例2: CoCreateInstance
bool WebBrowserContainer::Initialize(HWND parentWindow)
{
this->hwnd = parentWindow;
IOleObject* oleObject = NULL;
HRESULT hRes = CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC, IID_IOleObject, (void**)&oleObject);
if (FAILED(hRes))
{
Logger::Error("WebBrowserContainer::Inititalize(), CoCreateInstance(CLSID_WebBrowser) failed!, error code %i", hRes);
return false;
}
hRes = oleObject->SetClientSite(this);
if (FAILED(hRes))
{
Logger::Error("WebBrowserContainer::Inititalize(), IOleObject::SetClientSite() failed!, error code %i", hRes);
oleObject->Release();
return false;
}
// Activating the container.
RECT rect = {0};
GetClientRect(hwnd, &rect);
hRes = oleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, this, 0, this->hwnd, &rect);
if (FAILED(hRes))
{
Logger::Error("WebBrowserContainer::InititalizeBrowserContainer(), IOleObject::DoVerb() failed!, error code %i", hRes);
oleObject->Release();
return false;
}
// Prepare the browser itself.
hRes = oleObject->QueryInterface(IID_IWebBrowser2, (void**)&this->webBrowser);
if (FAILED(hRes))
{
Logger::Error("WebViewControl::InititalizeBrowserContainer(), IOleObject::QueryInterface(IID_IWebBrowser2) failed!, error code %i", hRes);
oleObject->Release();
return false;
}
sink = new EventSink();
EventSink* s = (EventSink*)sink;
hRes = s->DispEventAdvise(webBrowser, &DIID_DWebBrowserEvents2);
if (FAILED(hRes))
{
Logger::Error("WebViewControl::InititalizeBrowserContainer(), EventSink::DispEventAdvise(&DIID_DWebBrowserEvents2) failed!, error code %i", hRes);
return false;
}
// Initialization is OK.
oleObject->Release();
return true;
}
示例3: lck
IEView::~IEView()
{
IOleObject* pOleObject = NULL;
{
mir_cslock lck(mutex);
if (list == this)
list = next;
else if (prev != NULL)
prev->next = next;
if (next != NULL)
next->prev = prev;
prev = NULL;
next = NULL;
}
if (SUCCEEDED(pWebBrowser->QueryInterface(IID_IOleObject, (void**)&pOleObject))) {
pOleObject->SetClientSite(NULL);
pOleObject->Release();
}
else MessageBox(NULL, TranslateT("IID_IOleObject failed."), TranslateT("RESULT"), MB_OK);
if (builder != NULL) {
delete builder;
builder = NULL;
}
if (m_pConnectionPoint != NULL) {
m_pConnectionPoint->Unadvise(m_dwCookie);
m_pConnectionPoint->Release();
}
mir_free(selectedText);
if (sink != NULL)
delete sink;
pWebBrowser->Release();
DestroyWindow(hwnd);
}
示例4: setUserWndProc
IEView::IEView(HWND parent, HTMLBuilder* builder, int x, int y, int cx, int cy) {
MSG msg;
IOleObject* pOleObject = NULL;
IOleInPlaceObject *pOleInPlace;
this->parent = parent;
this->builder = builder;
this->smileyWindow = NULL;
prev = next = NULL;
hwnd = NULL;
sink = NULL;
pWebBrowser = NULL;
m_pConnectionPoint = NULL;
m_cRef = 0;
#ifdef GECKO
if (SUCCEEDED(CoCreateInstance(CLSID_MozillaBrowser, NULL, CLSCTX_INPROC, IID_IWebBrowser2, (LPVOID*)&pWebBrowser))) {
#else
if (SUCCEEDED(CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC, IID_IWebBrowser2, (LPVOID*)&pWebBrowser))) {
#endif
// pWebBrowser->put_RegisterAsBrowser(VARIANT_FALSE);
// pWebBrowser->put_RegisterAsDropTarget(VARIANT_FALSE);
if (SUCCEEDED(pWebBrowser->QueryInterface(IID_IOleObject, (void**)&pOleObject))) {
rcClient.left = x;
rcClient.top = y;
rcClient.right = x + cx;
rcClient.bottom = y + cy;
pOleObject->SetClientSite(this);
pOleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, &msg, this, 0, parent, &rcClient);
pOleObject->Release();
} else {
MessageBox(NULL,"IID_IOleObject failed.","RESULT",MB_OK);
}
if (SUCCEEDED(pWebBrowser->QueryInterface(IID_IOleInPlaceObject, (void**)&pOleInPlace))) {
pOleInPlace->GetWindow(&hwnd);
pOleInPlace->Release();
} else {
MessageBox(NULL,"IID_IOleInPlaceObject failed.","RESULT",MB_OK);
}
LONG style = GetWindowLong(hwnd, GWL_EXSTYLE);
style |= (WS_EX_STATICEDGE);
SetWindowLong(hwnd,GWL_EXSTYLE,style);
IConnectionPointContainer* pCPContainer;
// Step 1: Get a pointer to the connection point container.
if (SUCCEEDED(pWebBrowser->QueryInterface(IID_IConnectionPointContainer,
(void**)&pCPContainer))) {
// m_pConnectionPoint is defined like this:
// Step 2: Find the connection point.
if (SUCCEEDED(pCPContainer->FindConnectionPoint(DIID_DWebBrowserEvents2,
&m_pConnectionPoint))) {
// Step 3: Advise the connection point that you
// want to sink its events.
sink = new IEViewSink();
#ifndef GECKO
if (FAILED(m_pConnectionPoint->Advise((IUnknown *)sink, &m_dwCookie))) {
MessageBox(NULL, "Failed to Advise", "C++ Event Sink", MB_OK);
}
#endif
}
pCPContainer->Release();
}
#ifndef GECKO
setUserWndProc((WNDPROC)SetWindowLong(hwnd, GWL_WNDPROC, (LONG) IEViewWindowProcedure));
#endif
}
EnterCriticalSection(&mutex);
next = list;
if (next != NULL) {
next->prev = this;
}
list = this;
LeaveCriticalSection(&mutex);
clear();
}
IEView::IEView(HWND parent, SmileyWindow* smileyWindow, int x, int y, int cx, int cy) {
MSG msg;
IOleObject* pOleObject = NULL;
IOleInPlaceObject *pOleInPlace;
this->parent = parent;
builder = NULL;
this->smileyWindow = smileyWindow;
prev = next = NULL;
hwnd = NULL;
sink = NULL;
pWebBrowser = NULL;
m_pConnectionPoint = NULL;
m_cRef = 0;
#ifdef GECKO
if (SUCCEEDED(CoCreateInstance(CLSID_MozillaBrowser, NULL, CLSCTX_INPROC, IID_IWebBrowser2, (LPVOID*)&pWebBrowser))) {
#else
if (SUCCEEDED(CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC, IID_IWebBrowser2, (LPVOID*)&pWebBrowser))) {
#endif
// pWebBrowser->put_RegisterAsBrowser(VARIANT_FALSE);
// pWebBrowser->put_RegisterAsDropTarget(VARIANT_FALSE);
if (SUCCEEDED(pWebBrowser->QueryInterface(IID_IOleObject, (void**)&pOleObject))) {
rcClient.left = x;
rcClient.top = y;
//.........这里部分代码省略.........
示例5: RichEdit_InsertFace
// 插入表情图片
BOOL RichEdit_InsertFace(ITextServices *pTextServices, ITextHost *pTextHost,
LPCTSTR lpszFileName, int nFaceId, int nFaceIndex,
COLORREF clrBg, BOOL bAutoScale, int nReservedWidth)
{
BSTR bstrFileName = NULL;
IRichEditOle * pRichEditOle = NULL;
IOleClientSite *pOleClientSite = NULL;
IImageOle* pImageOle = NULL;
IOleObject *pOleObject = NULL;
REOBJECT reobject = {0};
HRESULT hr = E_FAIL;
if (NULL == pTextServices || NULL == pTextHost ||
NULL == lpszFileName || NULL == *lpszFileName)
return FALSE;
TCHAR cProtocol[16] = {0};
_tcsncpy(cProtocol, lpszFileName, 7);
if ((_tcsicmp(cProtocol, _T("http://")) != 0) && ::GetFileAttributes(lpszFileName) == 0xFFFFFFFF)
return FALSE;
bstrFileName = ::SysAllocString(lpszFileName);
if (NULL == bstrFileName)
return FALSE;
pTextServices->TxSendMessage(EM_GETOLEINTERFACE, 0, (LPARAM)&pRichEditOle, NULL);
if (NULL == pRichEditOle)
goto Ret0;
hr = ::CoCreateInstance(CLSID_ImageOle, NULL,
CLSCTX_INPROC_SERVER, IID_IImageOle, (void**)&pImageOle);
if (FAILED(hr))
goto Ret0;
hr = pImageOle->QueryInterface(IID_IOleObject, (void **)&pOleObject);
if (FAILED(hr))
goto Ret0;
pRichEditOle->GetClientSite(&pOleClientSite);
if (NULL == pOleClientSite)
goto Ret0;
pOleObject->SetClientSite(pOleClientSite);
pImageOle->SetTextServices(pTextServices);
pImageOle->SetTextHost(pTextHost);
pImageOle->SetFaceId(nFaceId);
pImageOle->SetFaceIndex(nFaceIndex);
pImageOle->SetBgColor(clrBg);
pImageOle->SetAutoScale(bAutoScale, nReservedWidth);
pImageOle->LoadFromFile(bstrFileName);
hr = ::OleSetContainedObject(pOleObject, TRUE);
reobject.cbStruct = sizeof(REOBJECT);
reobject.clsid = CLSID_ImageOle;
reobject.cp = REO_CP_SELECTION;
reobject.dvaspect = DVASPECT_CONTENT;
reobject.dwFlags = REO_BELOWBASELINE;
reobject.poleobj = pOleObject;
reobject.polesite = pOleClientSite;
reobject.dwUser = 0;
hr = pRichEditOle->InsertObject(&reobject);
Ret0:
if (pOleObject != NULL)
pOleObject->Release();
if (pImageOle != NULL)
pImageOle->Release();
if (pOleClientSite != NULL)
pOleClientSite->Release();
if (pRichEditOle != NULL)
pRichEditOle->Release();
if (bstrFileName != NULL)
::SysFreeString(bstrFileName);
return SUCCEEDED(hr);
}