Jacek Caban : mshtml: Added OLECMDID_OPTICAL_ZOOM tests and stub.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jan 22 15:20:46 CST 2015
Module: wine
Branch: master
Commit: 286e4a86550458a0096b11284f47e312b5087e00
URL: http://source.winehq.org/git/wine.git/?a=commit;h=286e4a86550458a0096b11284f47e312b5087e00
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Jan 22 20:04:52 2015 +0100
mshtml: Added OLECMDID_OPTICAL_ZOOM tests and stub.
---
dlls/mshtml/olecmd.c | 14 +++++++++++---
dlls/mshtml/tests/htmldoc.c | 37 ++++++++++++++++++++++++++++++++-----
2 files changed, 43 insertions(+), 8 deletions(-)
diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c
index 9417311..5916010 100644
--- a/dlls/mshtml/olecmd.c
+++ b/dlls/mshtml/olecmd.c
@@ -546,6 +546,12 @@ static HRESULT exec_get_print_template(HTMLDocument *This, DWORD nCmdexecopt, VA
return E_NOTIMPL;
}
+static HRESULT exec_optical_zoom(HTMLDocument *This, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
+{
+ FIXME("(%p)->(%d %p %p)\n", This, nCmdexecopt, pvaIn, pvaOut);
+ return E_NOTIMPL;
+}
+
static HRESULT query_mshtml_copy(HTMLDocument *This, OLECMD *cmd)
{
FIXME("(%p)\n", This);
@@ -695,7 +701,7 @@ static HRESULT query_enabled_stub(HTMLDocument *This, OLECMD *cmd)
static const struct {
OLECMDF cmdf;
HRESULT (*func)(HTMLDocument*,DWORD,VARIANT*,VARIANT*);
-} exec_table[OLECMDID_GETPRINTTEMPLATE+1] = {
+} exec_table[] = {
{0},
{ OLECMDF_SUPPORTED, exec_open }, /* OLECMDID_OPEN */
{ OLECMDF_SUPPORTED, exec_new }, /* OLECMDID_NEW */
@@ -735,7 +741,9 @@ static const struct {
{ OLECMDF_SUPPORTED, exec_close }, /* OLECMDID_CLOSE */
{0},{0},{0},
{ OLECMDF_SUPPORTED, exec_set_print_template }, /* OLECMDID_SETPRINTTEMPLATE */
- { OLECMDF_SUPPORTED, exec_get_print_template } /* OLECMDID_GETPRINTTEMPLATE */
+ { OLECMDF_SUPPORTED, exec_get_print_template }, /* OLECMDID_GETPRINTTEMPLATE */
+ {0},{0},{0},{0},{0},{0},{0},{0},{0},{0},
+ { 0, /* not reported as supported */ exec_optical_zoom } /* OLECMDID_OPTICAL_ZOOM */
};
static const cmdtable_t base_cmds[] = {
@@ -874,7 +882,7 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
HTMLDocument *This = impl_from_IOleCommandTarget(iface);
if(!pguidCmdGroup) {
- if(nCmdID<OLECMDID_OPEN || nCmdID>OLECMDID_GETPRINTTEMPLATE || !exec_table[nCmdID].func) {
+ if(nCmdID < OLECMDID_OPEN || nCmdID >= sizeof(exec_table)/sizeof(*exec_table) || !exec_table[nCmdID].func) {
WARN("Unsupported cmdID = %d\n", nCmdID);
return OLECMDERR_E_NOTSUPPORTED;
}
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index ace3128..16d6b45 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -6292,7 +6292,7 @@ static void test_clear(IHTMLDocument2 *doc)
ok(hres == S_OK, "clear failed: %08x\n", hres);
}
-static const OLECMDF expect_cmds[OLECMDID_GETPRINTTEMPLATE+1] = {
+static const OLECMDF expect_cmds[] = {
0,
OLECMDF_SUPPORTED, /* OLECMDID_OPEN */
OLECMDF_SUPPORTED, /* OLECMDID_NEW */
@@ -6347,7 +6347,7 @@ static void _test_QueryStatus(unsigned line, IUnknown *unk, REFIID cgid, ULONG c
return;
hres = IOleCommandTarget_QueryStatus(cmdtrg, cgid, 1, &olecmd, NULL);
- ok(hres == S_OK, "QueryStatus(%u) failed: %08x\n", cmdid, hres);
+ ok(hres == cmdf ? S_OK : OLECMDERR_E_NOTSUPPORTED, "QueryStatus(%u) failed: %08x\n", cmdid, hres);
IOleCommandTarget_Release(cmdtrg);
@@ -6380,7 +6380,7 @@ static void test_MSHTML_QueryStatus(IHTMLDocument2 *doc, DWORD cmdf)
static void test_OleCommandTarget(IHTMLDocument2 *doc)
{
IOleCommandTarget *cmdtrg;
- OLECMD cmds[OLECMDID_GETPRINTTEMPLATE];
+ OLECMD cmds[sizeof(expect_cmds)/sizeof(*expect_cmds)-1];
int i;
HRESULT hres;
@@ -6389,7 +6389,7 @@ static void test_OleCommandTarget(IHTMLDocument2 *doc)
if(FAILED(hres))
return;
- for(i=0; i<OLECMDID_GETPRINTTEMPLATE; i++) {
+ for(i=0; i < sizeof(cmds)/sizeof(*cmds); i++) {
cmds[i].cmdID = i+1;
cmds[i].cmdf = 0xf0f0;
}
@@ -6401,7 +6401,7 @@ static void test_OleCommandTarget(IHTMLDocument2 *doc)
CHECK_CALLED(QueryStatus_OPEN);
CHECK_CALLED(QueryStatus_NEW);
- for(i=0; i<OLECMDID_GETPRINTTEMPLATE; i++) {
+ for(i=0; i < sizeof(cmds)/sizeof(*cmds); i++) {
ok(cmds[i].cmdID == i+1, "cmds[%d].cmdID canged to %x\n", i, cmds[i].cmdID);
if(i+1 == OLECMDID_FIND)
continue;
@@ -6624,6 +6624,31 @@ static void test_exec_noargs(IUnknown *unk, DWORD cmdid)
IOleCommandTarget_Release(cmdtrg);
}
+static void test_exec_optical_zoom(IHTMLDocument2 *doc, int factor)
+{
+ IOleCommandTarget *cmdtrg;
+ VARIANT v;
+ HRESULT hres;
+
+ hres = IHTMLDocument2_QueryInterface(doc, &IID_IOleCommandTarget, (void**)&cmdtrg);
+ ok(hres == S_OK, "QueryInterface(IID_IOleCommandTarget) failed: %08x\n", hres);
+ if(FAILED(hres))
+ return;
+
+ V_VT(&v) = VT_I4;
+ V_I4(&v) = factor;
+
+ SET_EXPECT(GetOverrideKeyPath);
+ hres = IOleCommandTarget_Exec(cmdtrg, NULL, OLECMDID_OPTICAL_ZOOM,
+ OLECMDEXECOPT_DODEFAULT, &v, NULL);
+ todo_wine ok(hres == S_OK || broken(hres == OLECMDERR_E_NOTSUPPORTED) /* IE6 */, "Exec failed: %08x\n", hres);
+ CLEAR_CALLED(GetOverrideKeyPath);
+
+ IOleCommandTarget_Release(cmdtrg);
+
+ test_QueryStatus((IUnknown*)doc, NULL, OLECMDID_OPTICAL_ZOOM, 0);
+}
+
static void test_IsDirty(IHTMLDocument2 *doc, HRESULT exhres)
{
IPersistStreamInit *perinit;
@@ -7489,6 +7514,8 @@ static void test_HTMLDocument(BOOL do_load, BOOL mime)
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
test_OleCommandTarget_fail(doc);
test_OleCommandTarget(doc);
+ test_exec_optical_zoom(doc, 200);
+ test_exec_optical_zoom(doc, 100);
test_OnAmbientPropertyChange(doc);
test_Window(doc, TRUE);
test_external(doc, TRUE);
More information about the wine-cvs
mailing list