本文整理汇总了C++中IOleClientSite_Release函数的典型用法代码示例。如果您正苦于以下问题:C++ IOleClientSite_Release函数的具体用法?C++ IOleClientSite_Release怎么用?C++ IOleClientSite_Release使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IOleClientSite_Release函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: release_client_site
static void release_client_site(WebBrowser *This, BOOL destroy_win)
{
release_dochost_client(&This->doc_host);
if(This->client) {
IOleClientSite_Release(This->client);
This->client = NULL;
}
if(This->client_closed) {
IOleClientSite_Release(This->client_closed);
This->client_closed = NULL;
}
if(destroy_win && This->shell_embedding_hwnd) {
DestroyWindow(This->shell_embedding_hwnd);
This->shell_embedding_hwnd = NULL;
}
if(This->inplace) {
IOleInPlaceSiteEx_Release(This->inplace);
This->inplace = NULL;
}
if(This->container) {
IOleContainer_Release(This->container);
This->container = NULL;
}
if(This->uiwindow) {
IOleInPlaceUIWindow_Release(This->uiwindow);
This->uiwindow = NULL;
}
}
开发者ID:Moteesh,项目名称:reactos,代码行数:34,代码来源:oleobject.c
示例2: BindStatusCallback_OnStopBinding
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface,
HRESULT hresult, LPCWSTR szError)
{
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));
set_status_text(This, 0, emptyW);
if(!This->doc_host)
return S_OK;
if(!This->doc_host->olecmd)
notify_download_state(This->doc_host, FALSE);
if(FAILED(hresult))
handle_navigation_error(This->doc_host, hresult, This->url, NULL);
IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
This->doc_host = NULL;
IBinding_Release(This->binding);
This->binding = NULL;
return S_OK;
}
开发者ID:joobn72,项目名称:wine,代码行数:25,代码来源:navigate.c
示例3: ControlSite_TranslateAccelerator
static HRESULT WINAPI ControlSite_TranslateAccelerator(IOleControlSite *iface, MSG *pMsg,
DWORD grfModifiers)
{
DocHost *This = impl_from_IOleControlSite(iface);
IOleObject *wb_obj;
IOleClientSite *clientsite;
IOleControlSite *controlsite;
HRESULT hr;
TRACE("(%p)->(%p, %08x)\n", This, pMsg, grfModifiers);
hr = IDispatch_QueryInterface(This->disp, &IID_IOleObject, (void**)&wb_obj);
if(SUCCEEDED(hr)) {
hr = IOleObject_GetClientSite(wb_obj, &clientsite);
if(SUCCEEDED(hr)) {
hr = IOleClientSite_QueryInterface(clientsite, &IID_IOleControlSite, (void**)&controlsite);
if(SUCCEEDED(hr)) {
hr = IOleControlSite_TranslateAccelerator(controlsite, pMsg, grfModifiers);
IOleControlSite_Release(controlsite);
}
IOleClientSite_Release(clientsite);
}
IOleObject_Release(wb_obj);
}
if(FAILED(hr))
return S_FALSE;
else
return hr;
}
开发者ID:Sunmonds,项目名称:wine,代码行数:30,代码来源:client.c
示例4: ME_DeleteReObject
void ME_DeleteReObject(REOBJECT* reo)
{
if (reo->poleobj) IOleObject_Release(reo->poleobj);
if (reo->pstg) IStorage_Release(reo->pstg);
if (reo->polesite) IOleClientSite_Release(reo->polesite);
FREE_OBJ(reo);
}
开发者ID:Eltechs,项目名称:wine,代码行数:7,代码来源:richole.c
示例5: PersistMoniker_Load
static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAvailable,
IMoniker *pimkName, LPBC pibc, DWORD grfMode)
{
HTMLDocument *This = impl_from_IPersistMoniker(iface);
IMoniker *mon;
HRESULT hres;
TRACE("(%p)->(%x %p %p %08x)\n", This, fFullyAvailable, pimkName, pibc, grfMode);
if(pibc) {
IUnknown *unk = NULL;
/* FIXME:
* Use params:
* "__PrecreatedObject"
* "BIND_CONTEXT_PARAM"
* "__HTMLLOADOPTIONS"
* "__DWNBINDINFO"
* "URL Context"
* "_ITransData_Object_"
* "_EnumFORMATETC_"
*/
hres = IBindCtx_GetObjectParam(pibc, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM, &unk);
if(SUCCEEDED(hres) && unk) {
IOleClientSite *client = NULL;
hres = IUnknown_QueryInterface(unk, &IID_IOleClientSite, (void**)&client);
if(SUCCEEDED(hres)) {
TRACE("Got client site %p\n", client);
IOleObject_SetClientSite(&This->IOleObject_iface, client);
IOleClientSite_Release(client);
}
IUnknown_Release(unk);
}
}
if(This->doc_obj->is_mhtml) {
IUnknown *unk;
hres = MimeOleObjectFromMoniker(0, pimkName, pibc, &IID_IUnknown, (void**)&unk, &mon);
if(FAILED(hres))
return hres;
IUnknown_Release(unk);
pibc = NULL;
}else {
IMoniker_AddRef(mon = pimkName);
}
prepare_for_binding(This, mon, FALSE);
call_docview_84(This->doc_obj);
hres = set_moniker(This->window, mon, NULL, pibc, NULL, TRUE);
IMoniker_Release(mon);
if(FAILED(hres))
return hres;
return start_binding(This->window->pending_window, (BSCallback*)This->window->pending_window->bscallback, pibc);
}
开发者ID:AndreRH,项目名称:wine,代码行数:59,代码来源:persist.c
示例6: deactivate_document
void deactivate_document(DocHost *This)
{
IOleInPlaceObjectWindowless *winobj;
IOleObject *oleobj = NULL;
IHlinkTarget *hlink = NULL;
HRESULT hres;
if(This->doc_navigate) {
IUnknown_Release(This->doc_navigate);
This->doc_navigate = NULL;
}
if(This->is_prop_notif)
advise_prop_notif(This, FALSE);
if(This->view)
IOleDocumentView_UIActivate(This->view, FALSE);
hres = IUnknown_QueryInterface(This->document, &IID_IOleInPlaceObjectWindowless,
(void**)&winobj);
if(SUCCEEDED(hres)) {
IOleInPlaceObjectWindowless_InPlaceDeactivate(winobj);
IOleInPlaceObjectWindowless_Release(winobj);
}
if(This->view) {
IOleDocumentView_Show(This->view, FALSE);
IOleDocumentView_CloseView(This->view, 0);
IOleDocumentView_SetInPlaceSite(This->view, NULL);
IOleDocumentView_Release(This->view);
This->view = NULL;
}
hres = IUnknown_QueryInterface(This->document, &IID_IOleObject, (void**)&oleobj);
if(SUCCEEDED(hres))
IOleObject_Close(oleobj, OLECLOSE_NOSAVE);
hres = IUnknown_QueryInterface(This->document, &IID_IHlinkTarget, (void**)&hlink);
if(SUCCEEDED(hres)) {
IHlinkTarget_SetBrowseContext(hlink, NULL);
IHlinkTarget_Release(hlink);
}
if(oleobj) {
IOleClientSite *client_site = NULL;
IOleObject_GetClientSite(oleobj, &client_site);
if(client_site) {
if(client_site == &This->IOleClientSite_iface)
IOleObject_SetClientSite(oleobj, NULL);
IOleClientSite_Release(client_site);
}
IOleObject_Release(oleobj);
}
IUnknown_Release(This->document);
This->document = NULL;
}
开发者ID:mikekap,项目名称:wine,代码行数:59,代码来源:dochost.c
示例7: NewWindowManager_Release
static ULONG WINAPI NewWindowManager_Release(INewWindowManager *iface)
{
NewWindowManager *This = impl_from_INewWindowManager(iface);
TRACE("(%p)\n", This);
return IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
}
开发者ID:DusteDdk,项目名称:wine-multimedia,代码行数:8,代码来源:shellbrowser.c
示例8: release_client_site
static void release_client_site(WindowsMediaPlayer *This)
{
if(!This->client_site)
return;
if(This->hwnd)
deactivate_window(This);
IOleClientSite_Release(This->client_site);
This->client_site = NULL;
}
开发者ID:AlexSteel,项目名称:wine,代码行数:11,代码来源:oleobj.c
示例9: BindStatusCallback_OnStopBinding
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface,
HRESULT hresult, LPCWSTR szError)
{
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));
set_status_text(This, emptyW);
if(This->doc_host) {
IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
This->doc_host = NULL;
}
return S_OK;
}
开发者ID:mikekap,项目名称:wine,代码行数:16,代码来源:navigate.c
示例10: IRichEditOle_fnRelease
static ULONG WINAPI
IRichEditOle_fnRelease(IRichEditOle *me)
{
IRichEditOleImpl *This = impl_from_IRichEditOle(me);
ULONG ref = InterlockedDecrement(&This->ref);
TRACE ("%p ref=%u\n", This, ref);
if (!ref)
{
TRACE ("Destroying %p\n", This);
This->txtSel->reOle = NULL;
ITextSelection_Release(&This->txtSel->ITextSelection_iface);
IOleClientSite_Release(&This->clientSite->IOleClientSite_iface);
heap_free(This);
}
return ref;
}
开发者ID:Eltechs,项目名称:wine,代码行数:18,代码来源:richole.c
示例11: BindStatusCallback_Release
static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface)
{
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
LONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref);
if(!ref) {
if(This->doc_host)
IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
if(This->post_data)
GlobalFree(This->post_data);
SysFreeString(This->headers);
heap_free(This->url);
heap_free(This);
}
return ref;
}
开发者ID:mikekap,项目名称:wine,代码行数:19,代码来源:navigate.c
示例12: OleObject_DoVerb
static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, struct tagMSG* lpmsg,
LPOLECLIENTSITE pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect)
{
WebBrowser *This = impl_from_IOleObject(iface);
TRACE("(%p)->(%d %p %p %d %p %s)\n", This, iVerb, lpmsg, pActiveSite, lindex, hwndParent,
wine_dbgstr_rect(lprcPosRect));
/* restore closed client site if we have one */
if(!This->client && This->client_closed) {
IOleClientSite *client = This->client_closed;
This->client_closed = NULL;
IOleObject_SetClientSite(iface, client);
IOleClientSite_Release(client);
}
switch (iVerb)
{
case OLEIVERB_SHOW:
TRACE("OLEIVERB_SHOW\n");
return activate_ui(This, pActiveSite);
case OLEIVERB_UIACTIVATE:
TRACE("OLEIVERB_UIACTIVATE\n");
return activate_ui(This, pActiveSite);
case OLEIVERB_INPLACEACTIVATE:
TRACE("OLEIVERB_INPLACEACTIVATE\n");
return activate_inplace(This, pActiveSite);
case OLEIVERB_HIDE:
TRACE("OLEIVERB_HIDE\n");
if(This->inplace)
IOleInPlaceSiteEx_OnInPlaceDeactivate(This->inplace);
if(This->shell_embedding_hwnd)
ShowWindow(This->shell_embedding_hwnd, SW_HIDE);
return S_OK;
default:
FIXME("stub for %d\n", iVerb);
break;
}
return E_NOTIMPL;
}
开发者ID:Moteesh,项目名称:reactos,代码行数:41,代码来源:oleobject.c
示例13: ReleaseWebBrowser
void ReleaseWebBrowser(HHInfo *info)
{
WebBrowserContainer *container = info->web_browser;
HRESULT hres;
if(!container)
return;
if(container->ole_obj) {
IOleInPlaceSite *inplace;
hres = IOleObject_QueryInterface(container->ole_obj, &IID_IOleInPlaceSite, (void**)&inplace);
if(SUCCEEDED(hres)) {
IOleInPlaceSite_OnInPlaceDeactivate(inplace);
IOleInPlaceSite_Release(inplace);
}
IOleObject_SetClientSite(container->ole_obj, NULL);
}
info->web_browser = NULL;
IOleClientSite_Release(&container->IOleClientSite_iface);
}
开发者ID:GYGit,项目名称:reactos,代码行数:23,代码来源:webbrowser.c
示例14: Frame_Release
static ULONG STDMETHODCALLTYPE Frame_Release(IOleInPlaceFrame *iface)
{
WebBrowserContainer *This = impl_from_IOleInPlaceFrame(iface);
return IOleClientSite_Release(&This->IOleClientSite_iface);
}
开发者ID:GYGit,项目名称:reactos,代码行数:6,代码来源:webbrowser.c
示例15: UI_Release
static ULONG STDMETHODCALLTYPE UI_Release(IDocHostUIHandler * iface)
{
WebBrowserContainer *This = impl_from_IDocHostUIHandler(iface);
return IOleClientSite_Release(&This->IOleClientSite_iface);
}
开发者ID:GYGit,项目名称:reactos,代码行数:6,代码来源:webbrowser.c
示例16: ClDispatch_Release
static ULONG WINAPI ClDispatch_Release(IDispatch *iface)
{
DocHost *This = impl_from_IDispatch(iface);
return IOleClientSite_Release(&This->IOleClientSite_iface);
}
开发者ID:Sunmonds,项目名称:wine,代码行数:5,代码来源:client.c
示例17: ClOleCommandTarget_Release
static ULONG WINAPI ClOleCommandTarget_Release(IOleCommandTarget *iface)
{
DocHost *This = impl_from_IOleCommandTarget(iface);
return IOleClientSite_Release(&This->IOleClientSite_iface);
}
开发者ID:mikekap,项目名称:wine,代码行数:5,代码来源:dochost.c
示例18: OleObject_SetClientSite
static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite *pClientSite)
{
HTMLDocument *This = impl_from_IOleObject(iface);
IOleCommandTarget *cmdtrg = NULL;
IOleWindow *ole_window;
IBrowserService *browser_service;
BOOL hostui_setup;
VARIANT silent;
HWND hwnd;
HRESULT hres;
TRACE("(%p)->(%p)\n", This, pClientSite);
if(pClientSite == This->doc_obj->client)
return S_OK;
if(This->doc_obj->client) {
IOleClientSite_Release(This->doc_obj->client);
This->doc_obj->client = NULL;
This->doc_obj->usermode = UNKNOWN_USERMODE;
}
if(This->doc_obj->client_cmdtrg) {
IOleCommandTarget_Release(This->doc_obj->client_cmdtrg);
This->doc_obj->client_cmdtrg = NULL;
}
if(This->doc_obj->hostui && !This->doc_obj->custom_hostui) {
IDocHostUIHandler_Release(This->doc_obj->hostui);
This->doc_obj->hostui = NULL;
}
if(This->doc_obj->doc_object_service) {
IDocObjectService_Release(This->doc_obj->doc_object_service);
This->doc_obj->doc_object_service = NULL;
}
if(This->doc_obj->webbrowser) {
IUnknown_Release(This->doc_obj->webbrowser);
This->doc_obj->webbrowser = NULL;
}
if(This->doc_obj->browser_service) {
IUnknown_Release(This->doc_obj->browser_service);
This->doc_obj->browser_service = NULL;
}
if(This->doc_obj->travel_log) {
ITravelLog_Release(This->doc_obj->travel_log);
This->doc_obj->travel_log = NULL;
}
memset(&This->doc_obj->hostinfo, 0, sizeof(DOCHOSTUIINFO));
if(!pClientSite)
return S_OK;
IOleClientSite_AddRef(pClientSite);
This->doc_obj->client = pClientSite;
hostui_setup = This->doc_obj->hostui_setup;
if(!This->doc_obj->hostui) {
IDocHostUIHandler *uihandler;
This->doc_obj->custom_hostui = FALSE;
hres = IOleClientSite_QueryInterface(pClientSite, &IID_IDocHostUIHandler, (void**)&uihandler);
if(SUCCEEDED(hres))
This->doc_obj->hostui = uihandler;
}
if(This->doc_obj->hostui) {
DOCHOSTUIINFO hostinfo;
LPOLESTR key_path = NULL, override_key_path = NULL;
IDocHostUIHandler2 *uihandler2;
memset(&hostinfo, 0, sizeof(DOCHOSTUIINFO));
hostinfo.cbSize = sizeof(DOCHOSTUIINFO);
hres = IDocHostUIHandler_GetHostInfo(This->doc_obj->hostui, &hostinfo);
if(SUCCEEDED(hres)) {
TRACE("hostinfo = {%u %08x %08x %s %s}\n",
hostinfo.cbSize, hostinfo.dwFlags, hostinfo.dwDoubleClick,
debugstr_w(hostinfo.pchHostCss), debugstr_w(hostinfo.pchHostNS));
update_hostinfo(This->doc_obj, &hostinfo);
This->doc_obj->hostinfo = hostinfo;
}
if(!hostui_setup) {
hres = IDocHostUIHandler_GetOptionKeyPath(This->doc_obj->hostui, &key_path, 0);
if(hres == S_OK && key_path) {
if(key_path[0]) {
/* FIXME: use key_path */
FIXME("key_path = %s\n", debugstr_w(key_path));
}
CoTaskMemFree(key_path);
}
hres = IDocHostUIHandler_QueryInterface(This->doc_obj->hostui, &IID_IDocHostUIHandler2,
(void**)&uihandler2);
//.........这里部分代码省略.........
开发者ID:Dietr1ch,项目名称:wine,代码行数:101,代码来源:oleobj.c
示例19: OleDocumentSite_Release
static ULONG WINAPI OleDocumentSite_Release(IOleDocumentSite *iface)
{
DocHost *This = DOCSITE_THIS(iface);
return IOleClientSite_Release(CLIENTSITE(This));
}
开发者ID:howard5888,项目名称:wineT,代码行数:5,代码来源:client.c
示例20: InPlaceFrame_Release
static ULONG WINAPI InPlaceFrame_Release(IOleInPlaceFrame *iface)
{
DocHost *This = impl_from_IOleInPlaceFrame(iface);
return IOleClientSite_Release(&This->IOleClientSite_iface);
}
开发者ID:AlexSteel,项目名称:wine,代码行数:5,代码来源:frame.c
注:本文中的IOleClientSite_Release函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论