本文整理汇总了C++中IOleClientSite_QueryInterface函数的典型用法代码示例。如果您正苦于以下问题:C++ IOleClientSite_QueryInterface函数的具体用法?C++ IOleClientSite_QueryInterface怎么用?C++ IOleClientSite_QueryInterface使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IOleClientSite_QueryInterface函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: get_container_hwnd
static HWND get_container_hwnd(WindowsMediaPlayer *This)
{
IOleWindow *ole_window;
HWND hwnd = NULL;
HRESULT hres;
/* IOleInPlaceSite (which inherits from IOleWindow) is preferred. */
hres = IOleClientSite_QueryInterface(This->client_site, &IID_IOleInPlaceSite, (void**)&ole_window);
if(FAILED(hres)) {
hres = IOleClientSite_QueryInterface(This->client_site, &IID_IOleWindow, (void**)&ole_window);
if(FAILED(hres)) {
IOleContainer *container = NULL;
hres = IOleClientSite_GetContainer(This->client_site, &container);
if(SUCCEEDED(hres)) {
hres = IOleContainer_QueryInterface(container, &IID_IOleWindow, (void**)&ole_window);
IOleContainer_Release(container);
}
}
}
if(FAILED(hres))
return NULL;
hres = IOleWindow_GetWindow(ole_window, &hwnd);
IOleWindow_Release(ole_window);
if(FAILED(hres))
return NULL;
TRACE("Got window %p\n", hwnd);
return hwnd;
}
开发者ID:AlexSteel,项目名称:wine,代码行数:32,代码来源:oleobj.c
示例2: activate_inplace
static HRESULT activate_inplace(WindowsMediaPlayer *This)
{
IOleInPlaceSiteWindowless *ipsite_windowless;
IOleInPlaceSiteEx *ipsiteex = NULL;
IOleInPlaceSite *ipsite;
IOleInPlaceUIWindow *ip_window = NULL;
IOleInPlaceFrame *ip_frame = NULL;
RECT posrect = {0}, cliprect = {0};
OLEINPLACEFRAMEINFO frameinfo = { sizeof(frameinfo) };
HRESULT hres;
if(This->hwnd) {
FIXME("Already activated\n");
return E_UNEXPECTED;
}
hres = IOleClientSite_QueryInterface(This->client_site, &IID_IOleInPlaceSiteWindowless, (void**)&ipsite_windowless);
if(SUCCEEDED(hres)) {
hres = IOleInPlaceSiteWindowless_CanWindowlessActivate(ipsite_windowless);
IOleInPlaceSiteWindowless_Release(ipsite_windowless);
if(hres == S_OK)
FIXME("Windowless activation not supported\n");
ipsiteex = (IOleInPlaceSiteEx*)ipsite_windowless;
}else {
IOleClientSite_QueryInterface(This->client_site, &IID_IOleInPlaceSiteEx, (void**)&ipsiteex);
}
if(ipsiteex) {
BOOL redraw = FALSE; /* Not really used. */
IOleInPlaceSiteEx_OnInPlaceActivateEx(ipsiteex, &redraw, 0);
ipsite = (IOleInPlaceSite*)ipsiteex;
}else {
IOleClientSite_QueryInterface(This->client_site, &IID_IOleInPlaceSite, (void**)&ipsite);
if(FAILED(hres)) {
FIXME("No IOleInPlaceSite instance\n");
return hres;
}
IOleInPlaceSite_OnInPlaceActivate(ipsite);
}
hres = IOleInPlaceSite_GetWindowContext(ipsite, &ip_frame, &ip_window, &posrect, &cliprect, &frameinfo);
IOleInPlaceSite_Release(ipsite);
if(FAILED(hres)) {
FIXME("GetWindowContext failed: %08x\n", hres);
return hres;
}
This->hwnd = create_wmp_window(This, &posrect);
if(!This->hwnd)
return E_FAIL;
IOleClientSite_ShowObject(This->client_site);
return S_OK;
}
开发者ID:AlexSteel,项目名称:wine,代码行数:55,代码来源:oleobj.c
示例3: update_title
void update_title(HTMLDocumentObj *This)
{
IOleCommandTarget *olecmd;
HRESULT hres;
if(!(This->update & UPDATE_TITLE))
return;
This->update &= ~UPDATE_TITLE;
if(!This->client)
return;
hres = IOleClientSite_QueryInterface(This->client, &IID_IOleCommandTarget, (void**)&olecmd);
if(SUCCEEDED(hres)) {
VARIANT title;
WCHAR empty[] = {0};
V_VT(&title) = VT_BSTR;
V_BSTR(&title) = SysAllocString(empty);
IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_SETTITLE, OLECMDEXECOPT_DONTPROMPTUSER,
&title, NULL);
SysFreeString(V_BSTR(&title));
IOleCommandTarget_Release(olecmd);
}
}
开发者ID:pstrealer,项目名称:wine,代码行数:27,代码来源:view.c
示例4: 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
示例5: notify_travellog_update
static void notify_travellog_update(HTMLDocumentObj *doc)
{
IOleCommandTarget *cmdtrg;
HRESULT hres;
if(!doc->is_webbrowser)
return;
/* Don't notify if we were in about: page */
if(doc->basedoc.window->uri) {
DWORD scheme;
hres = IUri_GetScheme(doc->basedoc.window->uri, &scheme);
if(SUCCEEDED(hres) && scheme == URL_SCHEME_ABOUT)
return;
}
hres = IOleClientSite_QueryInterface(doc->client, &IID_IOleCommandTarget, (void**)&cmdtrg);
if(SUCCEEDED(hres)) {
VARIANT vin;
V_VT(&vin) = VT_I4;
V_I4(&vin) = 0;
IOleCommandTarget_Exec(cmdtrg, &CGID_Explorer, CMDID_EXPLORER_UPDATEHISTORY, 0, &vin, NULL);
IOleCommandTarget_Release(cmdtrg);
}
}
开发者ID:fabriceleal,项目名称:wine,代码行数:28,代码来源:persist.c
示例6: OleObject_SetClientSite
static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite *pClientSite)
{
WindowsMediaPlayer *This = impl_from_IOleObject(iface);
IOleControlSite *control_site;
HRESULT hres;
TRACE("(%p)->(%p)\n", This, pClientSite);
release_client_site(This);
if(!pClientSite)
return S_OK;
IOleClientSite_AddRef(pClientSite);
This->client_site = pClientSite;
hres = IOleClientSite_QueryInterface(pClientSite, &IID_IOleControlSite, (void**)&control_site);
if(SUCCEEDED(hres)) {
IDispatch *disp;
hres = IOleControlSite_GetExtendedControl(control_site, &disp);
if(SUCCEEDED(hres) && disp) {
FIXME("Use extended control\n");
IDispatch_Release(disp);
}
IOleControlSite_Release(control_site);
}
return S_OK;
}
开发者ID:AlexSteel,项目名称:wine,代码行数:30,代码来源:oleobj.c
示例7: DocHostContainer_exec
static HRESULT DocHostContainer_exec(DocHost *doc_host, const GUID *cmd_group, DWORD cmdid, DWORD execopt, VARIANT *in,
VARIANT *out)
{
WebBrowser *This = impl_from_DocHost(doc_host);
IOleCommandTarget *cmdtrg = NULL;
HRESULT hres;
if(This->client) {
hres = IOleClientSite_QueryInterface(This->client, &IID_IOleCommandTarget, (void**)&cmdtrg);
if(FAILED(hres))
cmdtrg = NULL;
}
if(!cmdtrg && This->container) {
hres = IOleContainer_QueryInterface(This->container, &IID_IOleCommandTarget, (void**)&cmdtrg);
if(FAILED(hres))
cmdtrg = NULL;
}
if(!cmdtrg)
return E_NOTIMPL;
hres = IOleCommandTarget_Exec(cmdtrg, cmd_group, cmdid, execopt, in, out);
IOleCommandTarget_Release(cmdtrg);
if(SUCCEEDED(hres))
TRACE("Exec returned %08x %s\n", hres, debugstr_variant(out));
else
FIXME("Exec failed\n");
return hres;
}
开发者ID:DusteDdk,项目名称:wine-multimedia,代码行数:31,代码来源:webbrowser.c
示例8: on_timer
static LRESULT on_timer(HTMLDocumentObj *This)
{
TRACE("(%p) %x\n", This, This->update);
KillTimer(This->hwnd, TIMER_ID);
if(!This->update)
return 0;
if(This->update & UPDATE_UI) {
if(This->hostui)
IDocHostUIHandler_UpdateUI(This->hostui);
if(This->client) {
IOleCommandTarget *cmdtrg;
HRESULT hres;
hres = IOleClientSite_QueryInterface(This->client, &IID_IOleCommandTarget,
(void**)&cmdtrg);
if(SUCCEEDED(hres)) {
IOleCommandTarget_Exec(cmdtrg, NULL, OLECMDID_UPDATECOMMANDS,
OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
IOleCommandTarget_Release(cmdtrg);
}
}
}
update_title(This);
This->update = 0;
return 0;
}
开发者ID:pstrealer,项目名称:wine,代码行数:31,代码来源:view.c
示例9: handle_docobj_load
static void handle_docobj_load(HTMLDocumentObj *doc)
{
IOleCommandTarget *olecmd = NULL;
HRESULT hres;
if(!doc->client)
return;
hres = IOleClientSite_QueryInterface(doc->client, &IID_IOleCommandTarget, (void**)&olecmd);
if(SUCCEEDED(hres)) {
if(doc->download_state) {
VARIANT state, progress;
V_VT(&progress) = VT_I4;
V_I4(&progress) = 0;
IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_SETPROGRESSPOS,
OLECMDEXECOPT_DONTPROMPTUSER, &progress, NULL);
V_VT(&state) = VT_I4;
V_I4(&state) = 0;
IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_SETDOWNLOADSTATE,
OLECMDEXECOPT_DONTPROMPTUSER, &state, NULL);
}
IOleCommandTarget_Exec(olecmd, &CGID_ShellDocView, 103, 0, NULL, NULL);
IOleCommandTarget_Exec(olecmd, &CGID_MSHTML, IDM_PARSECOMPLETE, 0, NULL, NULL);
IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_HTTPEQUIV_DONE, 0, NULL, NULL);
IOleCommandTarget_Release(olecmd);
}
doc->download_state = 0;
}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:32,代码来源:nsevents.c
示例10: prepare_for_binding
void prepare_for_binding(HTMLDocument *This, IMoniker *mon, DWORD flags)
{
HRESULT hres;
if(This->doc_obj->client) {
VARIANT silent, offline;
hres = get_client_disp_property(This->doc_obj->client, DISPID_AMBIENT_SILENT, &silent);
if(SUCCEEDED(hres)) {
if(V_VT(&silent) != VT_BOOL)
WARN("silent = %s\n", debugstr_variant(&silent));
else if(V_BOOL(&silent))
FIXME("silent == true\n");
}
hres = get_client_disp_property(This->doc_obj->client,
DISPID_AMBIENT_OFFLINEIFNOTCONNECTED, &offline);
if(SUCCEEDED(hres)) {
if(V_VT(&offline) != VT_BOOL)
WARN("offline = %s\n", debugstr_variant(&offline));
else if(V_BOOL(&offline))
FIXME("offline == true\n");
}
}
if(This->window->mon) {
update_doc(This, UPDATE_TITLE|UPDATE_UI);
}else {
update_doc(This, UPDATE_TITLE);
set_current_mon(This->window, mon, flags);
}
if(This->doc_obj->client) {
IOleCommandTarget *cmdtrg = NULL;
hres = IOleClientSite_QueryInterface(This->doc_obj->client, &IID_IOleCommandTarget,
(void**)&cmdtrg);
if(SUCCEEDED(hres)) {
VARIANT var, out;
if(flags & BINDING_NAVIGATED) {
V_VT(&var) = VT_UNKNOWN;
V_UNKNOWN(&var) = (IUnknown*)&This->window->base.IHTMLWindow2_iface;
V_VT(&out) = VT_EMPTY;
hres = IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 63, 0, &var, &out);
if(SUCCEEDED(hres))
VariantClear(&out);
}else if(!(flags & BINDING_FROMHIST)) {
V_VT(&var) = VT_I4;
V_I4(&var) = 0;
IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 37, 0, &var, NULL);
}
IOleCommandTarget_Release(cmdtrg);
}
}
}
开发者ID:GeonHun,项目名称:wine,代码行数:57,代码来源:persist.c
示例11: PersistHistory_LoadHistory
static HRESULT WINAPI PersistHistory_LoadHistory(IPersistHistory *iface, IStream *pStream, IBindCtx *pbc)
{
HTMLDocument *This = impl_from_IPersistHistory(iface);
ULONG str_len, read;
WCHAR *uri_str;
IUri *uri;
HRESULT hres;
TRACE("(%p)->(%p %p)\n", This, pStream, pbc);
if(!This->window) {
FIXME("No current window\n");
return E_UNEXPECTED;
}
if(pbc)
FIXME("pbc not supported\n");
if(This->doc_obj->client) {
IOleCommandTarget *cmdtrg = NULL;
hres = IOleClientSite_QueryInterface(This->doc_obj->client, &IID_IOleCommandTarget,
(void**)&cmdtrg);
if(SUCCEEDED(hres)) {
IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 138, 0, NULL, NULL);
IOleCommandTarget_Release(cmdtrg);
}
}
hres = IStream_Read(pStream, &str_len, sizeof(str_len), &read);
if(FAILED(hres))
return hres;
if(read != sizeof(str_len))
return E_FAIL;
uri_str = heap_alloc((str_len+1)*sizeof(WCHAR));
if(!uri_str)
return E_OUTOFMEMORY;
hres = IStream_Read(pStream, uri_str, str_len*sizeof(WCHAR), &read);
if(SUCCEEDED(hres) && read != str_len*sizeof(WCHAR))
hres = E_FAIL;
if(SUCCEEDED(hres)) {
uri_str[str_len] = 0;
hres = create_uri(uri_str, 0, &uri);
}
heap_free(uri_str);
if(FAILED(hres))
return hres;
hres = load_uri(This->window, uri, BINDING_FROMHIST);
IUri_Release(uri);
return hres;
}
开发者ID:GeonHun,项目名称:wine,代码行数:54,代码来源:persist.c
示例12: notif_focus
void notif_focus(HTMLDocument *This)
{
IOleControlSite *site;
HRESULT hres;
hres = IOleClientSite_QueryInterface(This->client, &IID_IOleControlSite, (void**)&site);
if(FAILED(hres))
return;
IOleControlSite_OnFocus(site, This->focus);
IOleControlSite_Release(site);
}
开发者ID:NVIDIA,项目名称:winex_lgpl,代码行数:12,代码来源:view.c
示例13: activate_inplace
static HRESULT activate_inplace(WebBrowser *This, IOleClientSite *active_site, HWND parent_hwnd)
{
HRESULT hres;
if(This->inplace)
return S_OK;
if(!active_site)
return E_INVALIDARG;
hres = IOleClientSite_QueryInterface(active_site, &IID_IOleInPlaceSite,
(void**)&This->inplace);
if(FAILED(hres)) {
WARN("Could not get IOleInPlaceSite\n");
return hres;
}
hres = IOleInPlaceSite_CanInPlaceActivate(This->inplace);
if(hres != S_OK) {
WARN("CanInPlaceActivate returned: %08lx\n", hres);
IOleInPlaceSite_Release(This->inplace);
return E_FAIL;
}
hres = IOleInPlaceSite_GetWindow(This->inplace, &This->iphwnd);
if(FAILED(hres))
This->iphwnd = parent_hwnd;
IOleInPlaceSite_OnInPlaceActivate(This->inplace);
IOleInPlaceSite_GetWindowContext(This->inplace, &This->frame, &This->uiwindow,
&This->pos_rect, &This->clip_rect,
&This->frameinfo);
SetWindowPos(This->shell_embedding_hwnd, NULL,
This->pos_rect.left, This->pos_rect.top,
This->pos_rect.right-This->pos_rect.left,
This->pos_rect.bottom-This->pos_rect.top,
SWP_NOZORDER | SWP_SHOWWINDOW);
if(This->client) {
IOleClientSite_ShowObject(This->client);
IOleClientSite_GetContainer(This->client, &This->container);
}
if(This->frame)
IOleInPlaceFrame_GetWindow(This->frame, &This->frame_hwnd);
return S_OK;
}
开发者ID:howard5888,项目名称:wineT,代码行数:50,代码来源:oleobject.c
示例14: deactivate_window
static void deactivate_window(WindowsMediaPlayer *This)
{
IOleInPlaceSite *ip_site;
HRESULT hres;
hres = IOleClientSite_QueryInterface(This->client_site, &IID_IOleInPlaceSite, (void**)&ip_site);
if(SUCCEEDED(hres)) {
IOleInPlaceSite_OnInPlaceDeactivate(ip_site);
IOleInPlaceSite_Release(ip_site);
}
DestroyWindow(This->hwnd);
This->hwnd = NULL;
}
开发者ID:AlexSteel,项目名称:wine,代码行数:14,代码来源:oleobj.c
示例15: notify_on_focus
static void notify_on_focus(WebBrowser *This, BOOL got_focus)
{
IOleControlSite *control_site;
HRESULT hres;
if(!This->client)
return;
hres = IOleClientSite_QueryInterface(This->client, &IID_IOleControlSite, (void**)&control_site);
if(FAILED(hres))
return;
IOleControlSite_OnFocus(control_site, got_focus);
IOleControlSite_Release(control_site);
}
开发者ID:Moteesh,项目名称:reactos,代码行数:15,代码来源:oleobject.c
示例16: AtlAxGetHost
/***********************************************************************
* AtlAxGetHost [[email protected]]
*
*/
HRESULT WINAPI AtlAxGetHost(HWND hWnd, IUnknown **host)
{
IOCS *This;
TRACE("(%p, %p)\n", hWnd, host);
*host = NULL;
This = (IOCS*) GetPropW( hWnd, wine_atl_iocsW );
if ( !This )
{
WARN("No container attached to %p\n", hWnd );
return E_FAIL;
}
return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, &IID_IUnknown, (void**)host);
}
开发者ID:Strongc,项目名称:reactos,代码行数:21,代码来源:atl_ax.c
示例17: set_downloading_proc
static void set_downloading_proc(task_t *_task)
{
download_proc_task_t *task = (download_proc_task_t*)_task;
HTMLDocumentObj *doc = task->doc;
IOleCommandTarget *olecmd;
HRESULT hres;
TRACE("(%p)\n", doc);
set_statustext(doc, IDS_STATUS_DOWNLOADINGFROM, task->url);
CoTaskMemFree(task->url);
if(!doc->client)
return;
if(task->set_download) {
hres = IOleClientSite_QueryInterface(doc->client, &IID_IOleCommandTarget, (void**)&olecmd);
if(SUCCEEDED(hres)) {
VARIANT var;
V_VT(&var) = VT_I4;
V_I4(&var) = 1;
IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_SETDOWNLOADSTATE,
OLECMDEXECOPT_DONTPROMPTUSER, &var, NULL);
IOleCommandTarget_Release(olecmd);
}
doc->download_state = 1;
}
if(doc->view_sink)
IAdviseSink_OnViewChange(doc->view_sink, DVASPECT_CONTENT, -1);
if(doc->hostui) {
IDropTarget *drop_target = NULL;
hres = IDocHostUIHandler_GetDropTarget(doc->hostui, NULL /* FIXME */, &drop_target);
if(drop_target) {
FIXME("Use IDropTarget\n");
IDropTarget_Release(drop_target);
}
}
}
开发者ID:dvdhoo,项目名称:wine,代码行数:44,代码来源:persist.c
示例18: PHServiceProvider_QueryService
static HRESULT WINAPI PHServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
{
PluginHost *This = impl_from_IServiceProvider(iface);
if(IsEqualGUID(guidService, &SID_SBindHost)) {
TRACE("SID_SBindHost service\n");
return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, riid, ppv);
}
TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
if(!This->doc || !This->doc->basedoc.window) {
*ppv = NULL;
return E_NOINTERFACE;
}
return IServiceProvider_QueryService(&This->doc->basedoc.window->base.IServiceProvider_iface,
guidService, riid, ppv);
}
开发者ID:miurahr,项目名称:wine,代码行数:19,代码来源:pluginhost.c
示例19: call_docview_84
/* Calls undocumented 84 cmd of CGID_ShellDocView */
void call_docview_84(HTMLDocumentObj *doc)
{
IOleCommandTarget *olecmd;
VARIANT var;
HRESULT hres;
if(!doc->client)
return;
hres = IOleClientSite_QueryInterface(doc->client, &IID_IOleCommandTarget, (void**)&olecmd);
if(FAILED(hres))
return;
VariantInit(&var);
hres = IOleCommandTarget_Exec(olecmd, &CGID_ShellDocView, 84, 0, NULL, &var);
IOleCommandTarget_Release(olecmd);
if(SUCCEEDED(hres) && V_VT(&var) != VT_NULL)
FIXME("handle result\n");
}
开发者ID:Dietr1ch,项目名称:wine,代码行数:20,代码来源:oleobj.c
示例20: notify_travellog_update
static void notify_travellog_update(HTMLDocumentObj *doc)
{
IOleCommandTarget *cmdtrg;
HRESULT hres;
if(!doc->webbrowser)
return;
hres = IOleClientSite_QueryInterface(doc->client, &IID_IOleCommandTarget, (void**)&cmdtrg);
if(SUCCEEDED(hres)) {
VARIANT vin;
V_VT(&vin) = VT_I4;
V_I4(&vin) = 0;
IOleCommandTarget_Exec(cmdtrg, &CGID_Explorer, CMDID_EXPLORER_UPDATEHISTORY, 0, &vin, NULL);
IOleCommandTarget_Release(cmdtrg);
}
}
开发者ID:GeonHun,项目名称:wine,代码行数:19,代码来源:persist.c
注:本文中的IOleClientSite_QueryInterface函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论