Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
0adfeb28
Commit
0adfeb28
authored
Nov 17, 2010
by
David Hedberg
Committed by
Alexandre Julliard
Nov 17, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
shdocvw: Implement ControlSite::TranslateAccelerator.
parent
42ef5a0f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
149 additions
and
3 deletions
+149
-3
client.c
dlls/shdocvw/client.c
+25
-2
webbrowser.c
dlls/shdocvw/tests/webbrowser.c
+124
-1
No files found.
dlls/shdocvw/client.c
View file @
0adfeb28
...
...
@@ -415,8 +415,31 @@ static HRESULT WINAPI ControlSite_TranslateAccelerator(IOleControlSite *iface, M
DWORD
grfModifiers
)
{
DocHost
*
This
=
impl_from_IOleControlSite
(
iface
);
FIXME
(
"(%p)->(%p, %08x)
\n
"
,
This
,
pMsg
,
grfModifiers
);
return
E_NOTIMPL
;
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
;
}
static
HRESULT
WINAPI
ControlSite_OnFocus
(
IOleControlSite
*
iface
,
BOOL
fGotFocus
)
...
...
dlls/shdocvw/tests/webbrowser.c
View file @
0adfeb28
...
...
@@ -130,6 +130,8 @@ DEFINE_EXPECT(TranslateUrl);
DEFINE_EXPECT
(
ShowUI
);
DEFINE_EXPECT
(
HideUI
);
DEFINE_EXPECT
(
RequestUIActivate
);
DEFINE_EXPECT
(
ControlSite_TranslateAccelerator
);
DEFINE_EXPECT
(
OnFocus
);
static
const
WCHAR
wszItem
[]
=
{
'i'
,
't'
,
'e'
,
'm'
,
0
};
static
const
WCHAR
emptyW
[]
=
{
0
};
...
...
@@ -140,6 +142,7 @@ static IWebBrowser2 *wb;
static
HWND
container_hwnd
,
shell_embedding_hwnd
;
static
BOOL
is_downloading
,
is_first_load
;
static
HRESULT
hr_dochost_TranslateAccelerator
=
E_NOTIMPL
;
static
HRESULT
hr_site_TranslateAccelerator
=
E_NOTIMPL
;
static
const
char
*
current_url
;
#define DWL_EXPECT_BEFORE_NAVIGATE 0x01
...
...
@@ -852,6 +855,85 @@ static const IOleClientSiteVtbl ClientSiteVtbl = {
static
IOleClientSite
ClientSite
=
{
&
ClientSiteVtbl
};
static
HRESULT
WINAPI
IOleControlSite_fnQueryInterface
(
IOleControlSite
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
*
ppv
=
NULL
;
return
E_NOINTERFACE
;
}
static
ULONG
WINAPI
IOleControlSite_fnAddRef
(
IOleControlSite
*
iface
)
{
return
2
;
}
static
ULONG
WINAPI
IOleControlSite_fnRelease
(
IOleControlSite
*
iface
)
{
return
1
;
}
static
HRESULT
WINAPI
IOleControlSite_fnOnControlInfoChanged
(
IOleControlSite
*
This
)
{
ok
(
0
,
"unexpected call
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
IOleControlSite_fnLockInPlaceActive
(
IOleControlSite
*
This
,
BOOL
fLock
)
{
ok
(
0
,
"unexpected call
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
IOleControlSite_fnGetExtendedControl
(
IOleControlSite
*
This
,
IDispatch
**
ppDisp
)
{
ok
(
0
,
"unexpected call
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
IOleControlSite_fnTransformCoords
(
IOleControlSite
*
This
,
POINTL
*
pPtlHimetric
,
POINTF
*
pPtfContainer
,
DWORD
dwFlags
)
{
ok
(
0
,
"unexpected call
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
IOleControlSite_fnTranslateAccelerator
(
IOleControlSite
*
This
,
MSG
*
pMsg
,
DWORD
grfModifiers
)
{
CHECK_EXPECT
(
ControlSite_TranslateAccelerator
);
return
hr_site_TranslateAccelerator
;
}
static
HRESULT
WINAPI
IOleControlSite_fnOnFocus
(
IOleControlSite
*
This
,
BOOL
fGotFocus
)
{
CHECK_EXPECT2
(
OnFocus
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
IOleControlSite_fnShowPropertyFrame
(
IOleControlSite
*
This
)
{
ok
(
0
,
"unexpected call
\n
"
);
return
E_NOTIMPL
;
}
static
IOleControlSiteVtbl
ControlSiteVtbl
=
{
IOleControlSite_fnQueryInterface
,
IOleControlSite_fnAddRef
,
IOleControlSite_fnRelease
,
IOleControlSite_fnOnControlInfoChanged
,
IOleControlSite_fnLockInPlaceActive
,
IOleControlSite_fnGetExtendedControl
,
IOleControlSite_fnTransformCoords
,
IOleControlSite_fnTranslateAccelerator
,
IOleControlSite_fnOnFocus
,
IOleControlSite_fnShowPropertyFrame
};
static
IOleControlSite
ControlSite
=
{
&
ControlSiteVtbl
};
static
HRESULT
WINAPI
InPlaceUIWindow_QueryInterface
(
IOleInPlaceFrame
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
...
...
@@ -1433,7 +1515,7 @@ static HRESULT QueryInterface(REFIID riid, void **ppv)
else
if
(
IsEqualGUID
(
&
IID_IDocHostShowUI
,
riid
))
trace
(
"interface IID_IDocHostShowUI
\n
"
);
else
if
(
IsEqualGUID
(
&
IID_IOleControlSite
,
riid
))
trace
(
"interface IID_IOleControlSite
\n
"
)
;
*
ppv
=
&
ControlSite
;
else
if
(
IsEqualGUID
(
&
IID_IOleCommandTarget
,
riid
))
trace
(
"interface IID_IOleCommandTarget
\n
"
);
...
...
@@ -1494,6 +1576,7 @@ static void test_DoVerb(IUnknown *unk)
SET_EXPECT
(
Frame_SetActiveObject
);
SET_EXPECT
(
UIWindow_SetActiveObject
);
SET_EXPECT
(
SetMenu
);
SET_EXPECT
(
OnFocus
);
hres
=
IOleObject_DoVerb
(
oleobj
,
OLEIVERB_SHOW
,
NULL
,
&
ClientSite
,
0
,
(
HWND
)
0xdeadbeef
,
&
rect
);
...
...
@@ -1510,6 +1593,7 @@ static void test_DoVerb(IUnknown *unk)
CHECK_CALLED
(
Frame_SetActiveObject
);
CHECK_CALLED
(
UIWindow_SetActiveObject
);
CHECK_CALLED
(
SetMenu
);
todo_wine
CHECK_CALLED
(
OnFocus
);
hres
=
IOleObject_DoVerb
(
oleobj
,
OLEIVERB_SHOW
,
NULL
,
&
ClientSite
,
0
,
(
HWND
)
0xdeadbeef
,
&
rect
);
...
...
@@ -2539,6 +2623,7 @@ static void test_TranslateAccelerator(IUnknown *unk)
ok
(
hres
==
S_OK
,
"Got 0x%08x
\n
"
,
hres
);
if
(
SUCCEEDED
(
hres
))
{
IDocHostUIHandler2
*
dochost
;
IOleControlSite
*
doc_controlsite
;
IUnknown
*
unk_test
;
hres
=
IOleClientSite_QueryInterface
(
doc_clientsite
,
&
IID_IOleInPlaceFrame
,
(
void
**
)
&
unk_test
);
...
...
@@ -2575,6 +2660,44 @@ static void test_TranslateAccelerator(IUnknown *unk)
IDocHostUIHandler2_Release
(
dochost
);
}
hres
=
IOleClientSite_QueryInterface
(
doc_clientsite
,
&
IID_IOleControlSite
,
(
void
**
)
&
doc_controlsite
);
ok
(
hres
==
S_OK
,
"Got 0x%08x
\n
"
,
hres
);
if
(
SUCCEEDED
(
hres
))
{
msg_a
.
message
=
WM_KEYDOWN
;
hr_site_TranslateAccelerator
=
0xdeadbeef
;
for
(
keycode
=
0
;
keycode
<
0x100
;
keycode
++
)
{
msg_a
.
wParam
=
keycode
;
SET_EXPECT
(
ControlSite_TranslateAccelerator
);
hres
=
IOleControlSite_TranslateAccelerator
(
doc_controlsite
,
&
msg_a
,
0
);
if
(
keycode
==
0x9
||
keycode
==
0x75
)
todo_wine
ok
(
hres
==
S_OK
,
"Got 0x%08x (keycode: %04x)
\n
"
,
hres
,
keycode
);
else
ok
(
hres
==
S_FALSE
,
"Got 0x%08x (keycode: %04x)
\n
"
,
hres
,
keycode
);
CHECK_CALLED
(
ControlSite_TranslateAccelerator
);
}
msg_a
.
wParam
=
VK_LEFT
;
SET_EXPECT
(
ControlSite_TranslateAccelerator
);
hres
=
IOleControlSite_TranslateAccelerator
(
doc_controlsite
,
&
msg_a
,
0
);
ok
(
hres
==
S_FALSE
,
"Got 0x%08x (keycode: %04x)
\n
"
,
hres
,
keycode
);
CHECK_CALLED
(
ControlSite_TranslateAccelerator
);
hr_site_TranslateAccelerator
=
S_OK
;
SET_EXPECT
(
ControlSite_TranslateAccelerator
);
hres
=
IOleControlSite_TranslateAccelerator
(
doc_controlsite
,
&
msg_a
,
0
);
ok
(
hres
==
S_OK
,
"Got 0x%08x (keycode: %04x)
\n
"
,
hres
,
keycode
);
CHECK_CALLED
(
ControlSite_TranslateAccelerator
);
hr_site_TranslateAccelerator
=
E_NOTIMPL
;
SET_EXPECT
(
ControlSite_TranslateAccelerator
);
hres
=
IOleControlSite_TranslateAccelerator
(
doc_controlsite
,
&
msg_a
,
0
);
ok
(
hres
==
S_FALSE
,
"Got 0x%08x (keycode: %04x)
\n
"
,
hres
,
keycode
);
CHECK_CALLED
(
ControlSite_TranslateAccelerator
);
IOleControlSite_Release
(
doc_controlsite
);
}
IOleClientSite_Release
(
doc_clientsite
);
}
IOleObject_Release
(
obj_doc
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment