From 87f4e436ebb9ac10dac8369d1daf2bcde0d4b908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Nicolaysen=20S=C3=B8rnes?= Date: Mon, 21 Jun 2010 00:49:59 +0200 Subject: [PATCH] shdocvw: Allow printing from the menubar in IE. --- dlls/shdocvw/iexplore.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dlls/shdocvw/iexplore.c b/dlls/shdocvw/iexplore.c index 10292db7ddc..b473d41e6f8 100644 --- a/dlls/shdocvw/iexplore.c +++ b/dlls/shdocvw/iexplore.c @@ -32,6 +32,7 @@ #include "oleidl.h" #include "shdocvw.h" +#include "mshtmcid.h" #include "wine/debug.h" @@ -66,6 +67,30 @@ static LRESULT iewnd_OnDestroy(InternetExplorer *This) return 0; } +static LRESULT CALLBACK iewnd_OnCommand(InternetExplorer *This, HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + switch(LOWORD(wparam)) + { + case ID_BROWSE_PRINT: + if(This->doc_host.document) + { + IOleCommandTarget* target; + + if(FAILED(IUnknown_QueryInterface(This->doc_host.document, &IID_IOleCommandTarget, (LPVOID*)&target))) + break; + + IOleCommandTarget_Exec(target, &CGID_MSHTML, IDM_PRINT, OLECMDEXECOPT_DODEFAULT, NULL, NULL); + + IOleCommandTarget_Release(target); + } + break; + + default: + return DefWindowProcW(hwnd, msg, wparam, lparam); + } + return 0; +} + static LRESULT CALLBACK ie_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { @@ -79,6 +104,8 @@ ie_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) return iewnd_OnDestroy(This); case WM_SIZE: return iewnd_OnSize(This, LOWORD(lparam), HIWORD(lparam)); + case WM_COMMAND: + return iewnd_OnCommand(This, hwnd, msg, wparam, lparam); case WM_DOCHOSTTASK: return process_dochost_task(&This->doc_host, lparam); }