Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
35a45d81
Commit
35a45d81
authored
Dec 23, 2010
by
David Hedberg
Committed by
Alexandre Julliard
Dec 23, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
shell32: Add IInputObject stub to ExplorerBrowser.
parent
378df94e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
176 additions
and
0 deletions
+176
-0
ebrowser.c
dlls/shell32/ebrowser.c
+67
-0
ebrowser.c
dlls/shell32/tests/ebrowser.c
+109
-0
No files found.
dlls/shell32/ebrowser.c
View file @
35a45d81
...
...
@@ -58,6 +58,7 @@ typedef struct _ExplorerBrowserImpl {
ICommDlgBrowser3
ICommDlgBrowser3_iface
;
IObjectWithSite
IObjectWithSite_iface
;
INameSpaceTreeControlEvents
INameSpaceTreeControlEvents_iface
;
IInputObject
IInputObject_iface
;
LONG
ref
;
BOOL
destroyed
;
...
...
@@ -790,6 +791,10 @@ static HRESULT WINAPI IExplorerBrowser_fnQueryInterface(IExplorerBrowser *iface,
{
*
ppvObject
=
&
This
->
IObjectWithSite_iface
;
}
else
if
(
IsEqualIID
(
riid
,
&
IID_IInputObject
))
{
*
ppvObject
=
&
This
->
IInputObject_iface
;
}
if
(
*
ppvObject
)
{
...
...
@@ -1971,6 +1976,67 @@ const INameSpaceTreeControlEventsVtbl vt_INameSpaceTreeControlEvents = {
NSTCEvents_fnOnGetDefaultIconIndex
};
/**************************************************************************
* IInputObject Implementation
*/
static
inline
ExplorerBrowserImpl
*
impl_from_IInputObject
(
IInputObject
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
ExplorerBrowserImpl
,
IInputObject_iface
);
}
static
HRESULT
WINAPI
IInputObject_fnQueryInterface
(
IInputObject
*
iface
,
REFIID
riid
,
void
**
ppvObject
)
{
ExplorerBrowserImpl
*
This
=
impl_from_IInputObject
(
iface
);
TRACE
(
"%p
\n
"
,
This
);
return
IUnknown_QueryInterface
((
IUnknown
*
)
This
,
riid
,
ppvObject
);
}
static
ULONG
WINAPI
IInputObject_fnAddRef
(
IInputObject
*
iface
)
{
ExplorerBrowserImpl
*
This
=
impl_from_IInputObject
(
iface
);
TRACE
(
"%p
\n
"
,
This
);
return
IUnknown_AddRef
((
IUnknown
*
)
This
);
}
static
ULONG
WINAPI
IInputObject_fnRelease
(
IInputObject
*
iface
)
{
ExplorerBrowserImpl
*
This
=
impl_from_IInputObject
(
iface
);
TRACE
(
"%p
\n
"
,
This
);
return
IUnknown_Release
((
IUnknown
*
)
This
);
}
static
HRESULT
WINAPI
IInputObject_fnUIActivateIO
(
IInputObject
*
iface
,
BOOL
fActivate
,
MSG
*
pMsg
)
{
ExplorerBrowserImpl
*
This
=
impl_from_IInputObject
(
iface
);
FIXME
(
"stub, %p (%d, %p)
\n
"
,
This
,
fActivate
,
pMsg
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
IInputObject_fnHasFocusIO
(
IInputObject
*
iface
)
{
ExplorerBrowserImpl
*
This
=
impl_from_IInputObject
(
iface
);
FIXME
(
"stub, %p
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
IInputObject_fnTranslateAcceleratorIO
(
IInputObject
*
iface
,
MSG
*
pMsg
)
{
ExplorerBrowserImpl
*
This
=
impl_from_IInputObject
(
iface
);
FIXME
(
"stub, %p (%p)
\n
"
,
This
,
pMsg
);
return
E_NOTIMPL
;
}
static
IInputObjectVtbl
vt_IInputObject
=
{
IInputObject_fnQueryInterface
,
IInputObject_fnAddRef
,
IInputObject_fnRelease
,
IInputObject_fnUIActivateIO
,
IInputObject_fnHasFocusIO
,
IInputObject_fnTranslateAcceleratorIO
};
HRESULT
WINAPI
ExplorerBrowser_Constructor
(
IUnknown
*
pUnkOuter
,
REFIID
riid
,
void
**
ppv
)
{
ExplorerBrowserImpl
*
eb
;
...
...
@@ -1990,6 +2056,7 @@ HRESULT WINAPI ExplorerBrowser_Constructor(IUnknown *pUnkOuter, REFIID riid, voi
eb
->
ICommDlgBrowser3_iface
.
lpVtbl
=
&
vt_ICommDlgBrowser3
;
eb
->
IObjectWithSite_iface
.
lpVtbl
=
&
vt_IObjectWithSite
;
eb
->
INameSpaceTreeControlEvents_iface
.
lpVtbl
=
&
vt_INameSpaceTreeControlEvents
;
eb
->
IInputObject_iface
.
lpVtbl
=
&
vt_IInputObject
;
/* Default settings */
eb
->
navpane
.
width
=
150
;
...
...
dlls/shell32/tests/ebrowser.c
View file @
35a45d81
...
...
@@ -1607,6 +1607,114 @@ static void test_GetCurrentView(void)
IExplorerBrowser_Release
(
peb
);
}
static
void
test_InputObject
(
void
)
{
IExplorerBrowser
*
peb
;
IShellFolder
*
psf
;
IInputObject
*
pio
;
HRESULT
hr
;
RECT
rc
;
UINT
i
;
WPARAM
supported_key_accels_mode1
[]
=
{
VK_BACK
,
VK_TAB
,
VK_RETURN
,
VK_PRIOR
,
VK_NEXT
,
VK_END
,
VK_HOME
,
VK_LEFT
,
VK_UP
,
VK_RIGHT
,
VK_DOWN
,
VK_DELETE
,
VK_F1
,
VK_F2
,
VK_F5
,
VK_F6
,
VK_F10
,
0
};
WPARAM
supported_key_accels_mode2
[]
=
{
VK_RETURN
,
VK_PRIOR
,
VK_NEXT
,
VK_END
,
VK_HOME
,
VK_LEFT
,
VK_UP
,
VK_RIGHT
,
VK_DOWN
,
VK_DELETE
,
VK_F1
,
VK_F2
,
VK_F10
,
0
};
WPARAM
*
key_accels
;
MSG
msg_a
=
{
hwnd
,
WM_KEYDOWN
,
VK_F5
,
0
,
GetTickCount
(),
{
5
,
2
}
};
ebrowser_instantiate
(
&
peb
);
hr
=
IExplorerBrowser_QueryInterface
(
peb
,
&
IID_IInputObject
,
(
void
**
)
&
pio
);
ok
(
hr
==
S_OK
,
"Got 0x%08x
\n
"
,
hr
);
if
(
FAILED
(
hr
))
{
win_skip
(
"IInputObject not supported.
\n
"
);
return
;
}
/* Before initializing */
hr
=
IInputObject_TranslateAcceleratorIO
(
pio
,
&
msg_a
);
todo_wine
ok
(
hr
==
E_FAIL
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_HasFocusIO
(
pio
);
todo_wine
ok
(
hr
==
E_FAIL
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_UIActivateIO
(
pio
,
TRUE
,
&
msg_a
);
todo_wine
ok
(
hr
==
S_OK
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_HasFocusIO
(
pio
);
todo_wine
ok
(
hr
==
E_FAIL
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_TranslateAcceleratorIO
(
pio
,
&
msg_a
);
todo_wine
ok
(
hr
==
E_FAIL
,
"Got 0x%08x
\n
"
,
hr
);
rc
.
left
=
0
;
rc
.
top
=
0
;
rc
.
right
=
100
;
rc
.
bottom
=
100
;
hr
=
IExplorerBrowser_Initialize
(
peb
,
hwnd
,
&
rc
,
NULL
);
ok
(
hr
==
S_OK
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_HasFocusIO
(
pio
);
todo_wine
ok
(
hr
==
E_FAIL
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_TranslateAcceleratorIO
(
pio
,
&
msg_a
);
todo_wine
ok
(
hr
==
E_FAIL
,
"Got 0x%08x
\n
"
,
hr
);
/* Browse to the desktop */
SHGetDesktopFolder
(
&
psf
);
hr
=
IExplorerBrowser_BrowseToObject
(
peb
,
(
IUnknown
*
)
psf
,
SBSP_DEFBROWSER
);
ok
(
hr
==
S_OK
,
"Got 0x%08x
\n
"
,
hr
);
IShellFolder_Release
(
psf
);
hr
=
IInputObject_UIActivateIO
(
pio
,
TRUE
,
&
msg_a
);
todo_wine
ok
(
hr
==
S_OK
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_HasFocusIO
(
pio
);
todo_wine
ok
(
hr
==
S_OK
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_UIActivateIO
(
pio
,
FALSE
,
&
msg_a
);
todo_wine
ok
(
hr
==
S_OK
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_HasFocusIO
(
pio
);
todo_wine
ok
(
hr
==
S_OK
,
"Got 0x%08x
\n
"
,
hr
);
hr
=
IInputObject_TranslateAcceleratorIO
(
pio
,
&
msg_a
);
if
(
hr
==
S_OK
)
key_accels
=
supported_key_accels_mode1
;
else
key_accels
=
supported_key_accels_mode2
;
for
(
i
=
0
;
i
<
0x100
;
i
++
)
{
BOOL
found
=
FALSE
;
UINT
j
;
for
(
j
=
0
;
key_accels
[
j
]
!=
0
;
j
++
)
if
(
key_accels
[
j
]
==
i
)
{
found
=
TRUE
;
break
;
}
msg_a
.
wParam
=
i
;
process_msgs
();
hr
=
IInputObject_TranslateAcceleratorIO
(
pio
,
&
msg_a
);
todo_wine
ok
(
hr
==
(
found
?
S_OK
:
S_FALSE
),
"Got 0x%08x (%04x)
\n
"
,
hr
,
i
);
}
process_msgs
();
IInputObject_Release
(
pio
);
IExplorerBrowser_Destroy
(
peb
);
IExplorerBrowser_Release
(
peb
);
}
static
BOOL
test_instantiate_control
(
void
)
{
IExplorerBrowser
*
peb
;
...
...
@@ -1658,6 +1766,7 @@ START_TEST(ebrowser)
test_navigation
();
test_GetCurrentView
();
test_SetSite
();
test_InputObject
();
DestroyWindow
(
hwnd
);
OleUninitialize
();
...
...
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