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
c6ba4eed
Commit
c6ba4eed
authored
Jan 28, 2009
by
Aric Stewart
Committed by
Alexandre Julliard
Jan 29, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
shell32: In ParseDisplayName make use of shdocvw if the display name is not a drive but has a :.
parent
7392162e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
1 deletion
+35
-1
Makefile.in
dlls/shell32/Makefile.in
+1
-1
shfldr_desktop.c
dlls/shell32/shfldr_desktop.c
+8
-0
shlfolder.c
dlls/shell32/tests/shlfolder.c
+26
-0
No files found.
dlls/shell32/Makefile.in
View file @
c6ba4eed
...
...
@@ -6,7 +6,7 @@ VPATH = @srcdir@
MODULE
=
shell32.dll
IMPORTLIB
=
shell32
IMPORTS
=
uuid shlwapi comctl32 user32 gdi32 advapi32 kernel32 ntdll
DELAYIMPORTS
=
ole32 oleaut32
DELAYIMPORTS
=
ole32 oleaut32
shdocvw
C_SRCS
=
\
appbar.c
\
...
...
dlls/shell32/shfldr_desktop.c
View file @
c6ba4eed
...
...
@@ -55,6 +55,10 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
shell
);
/* Undocumented functions from shdocvw */
extern
HRESULT
WINAPI
IEParseDisplayNameWithBCW
(
DWORD
codepage
,
LPCWSTR
lpszDisplayName
,
LPBC
pbc
,
LPITEMIDLIST
*
ppidl
);
/***********************************************************************
* Desktopfolder implementation
*/
...
...
@@ -181,6 +185,10 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface,
*
ppidl
=
pidlTemp
;
return
S_OK
;
}
else
if
(
strchrW
(
lpszDisplayName
,
':'
))
{
return
IEParseDisplayNameWithBCW
(
CP_ACP
,
lpszDisplayName
,
pbc
,
ppidl
);
}
else
{
/* it's a filesystem path on the desktop. Let a FSFolder parse it */
...
...
dlls/shell32/tests/shlfolder.c
View file @
c6ba4eed
...
...
@@ -82,6 +82,8 @@ static void test_ParseDisplayName(void)
IShellFolder
*
IDesktopFolder
;
static
const
char
*
cNonExistDir1A
=
"c:
\\
nonexist_subdir"
;
static
const
char
*
cNonExistDir2A
=
"c:
\\\\
nonexist_subdir"
;
static
const
char
*
cInetTestA
=
"http:
\\
yyy"
;
static
const
char
*
cInetTest2A
=
"xx:yyy"
;
DWORD
res
;
WCHAR
cTestDirW
[
MAX_PATH
]
=
{
0
};
ITEMIDLIST
*
newPIDL
;
...
...
@@ -90,6 +92,30 @@ static void test_ParseDisplayName(void)
hr
=
SHGetDesktopFolder
(
&
IDesktopFolder
);
if
(
hr
!=
S_OK
)
return
;
MultiByteToWideChar
(
CP_ACP
,
0
,
cInetTestA
,
-
1
,
cTestDirW
,
MAX_PATH
);
hr
=
IShellFolder_ParseDisplayName
(
IDesktopFolder
,
NULL
,
NULL
,
cTestDirW
,
NULL
,
&
newPIDL
,
0
);
todo_wine
ok
((
SUCCEEDED
(
hr
)
||
broken
(
hr
==
E_FAIL
)
/* NT4 */
),
"ParseDisplayName returned %08x, expected SUCCESS or E_FAIL
\n
"
,
hr
);
if
(
SUCCEEDED
(
hr
))
{
ok
(
pILFindLastID
(
newPIDL
)
->
mkid
.
abID
[
0
]
==
0x61
,
"Last pidl should be of type "
"PT_IESPECIAL1, but is: %02x
\n
"
,
pILFindLastID
(
newPIDL
)
->
mkid
.
abID
[
0
]);
IMalloc_Free
(
ppM
,
newPIDL
);
}
MultiByteToWideChar
(
CP_ACP
,
0
,
cInetTest2A
,
-
1
,
cTestDirW
,
MAX_PATH
);
hr
=
IShellFolder_ParseDisplayName
(
IDesktopFolder
,
NULL
,
NULL
,
cTestDirW
,
NULL
,
&
newPIDL
,
0
);
todo_wine
ok
((
SUCCEEDED
(
hr
)
||
broken
(
hr
==
E_FAIL
)
/* NT4 */
),
"ParseDisplayName returned %08x, expected SUCCESS or E_FAIL
\n
"
,
hr
);
if
(
SUCCEEDED
(
hr
))
{
ok
(
pILFindLastID
(
newPIDL
)
->
mkid
.
abID
[
0
]
==
0x61
,
"Last pidl should be of type "
"PT_IESPECIAL1, but is: %02x
\n
"
,
pILFindLastID
(
newPIDL
)
->
mkid
.
abID
[
0
]);
IMalloc_Free
(
ppM
,
newPIDL
);
}
res
=
GetFileAttributesA
(
cNonExistDir1A
);
if
(
res
!=
INVALID_FILE_ATTRIBUTES
)
return
;
...
...
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