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
67826491
Commit
67826491
authored
Sep 25, 2017
by
Alex Henrie
Committed by
Alexandre Julliard
Sep 27, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
shell32: Implement ShellExec_RunDLL.
Signed-off-by:
Alex Henrie
<
alexhenrie24@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
5ec4d1be
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
3 deletions
+55
-3
shell32.spec
dlls/shell32/shell32.spec
+3
-3
shlexec.c
dlls/shell32/shlexec.c
+52
-0
No files found.
dlls/shell32/shell32.spec
View file @
67826491
...
...
@@ -440,9 +440,9 @@
@ stub SheShortenPathW
@ stdcall ShellAboutA(long str str long)
@ stdcall ShellAboutW(long wstr wstr long)
@ st
ub ShellExec_RunDLL
@ st
ub ShellExec_RunDLLA
@ st
ub ShellExec_RunDLLW
@ st
dcall ShellExec_RunDLL(long long str long) ShellExec_RunDLLA
@ st
dcall ShellExec_RunDLLA(long long str long)
@ st
dcall ShellExec_RunDLLW(long long wstr long)
@ stdcall ShellExecuteA(long str str str str long)
@ stdcall ShellExecuteEx (long) ShellExecuteExA
@ stdcall ShellExecuteExA (long)
...
...
dlls/shell32/shlexec.c
View file @
67826491
...
...
@@ -2016,6 +2016,58 @@ HINSTANCE WINAPI WOWShellExecute(HWND hWnd, LPCSTR lpVerb,LPCSTR lpFile,
}
/*************************************************************************
* ShellExec_RunDLLW [SHELL32.@]
*/
void
WINAPI
ShellExec_RunDLLW
(
HWND
hwnd
,
HINSTANCE
instance
,
WCHAR
*
cmdline
,
int
cmdshow
)
{
BOOL
in_single_quotes
=
FALSE
,
in_double_quotes
=
FALSE
;
WCHAR
*
args
;
TRACE
(
"%p, %p, %s, %d
\n
"
,
hwnd
,
instance
,
debugstr_w
(
cmdline
),
cmdshow
);
/* Replace the first whitespace character in the command line string with a
null terminator to separate the program name from the program arguments */
for
(
args
=
cmdline
;
*
args
;
args
++
)
{
switch
(
*
args
)
{
case
'\\'
:
args
++
;
/* skip the next character */
break
;
case
'\''
:
if
(
!
in_double_quotes
)
in_single_quotes
=
!
in_single_quotes
;
break
;
case
'"'
:
if
(
!
in_single_quotes
)
in_double_quotes
=
!
in_double_quotes
;
break
;
case
' '
:
case
'\t'
:
if
(
!
in_single_quotes
&&
!
in_double_quotes
)
{
*
args
=
0
;
args
++
;
goto
execute
;
}
}
}
execute:
ShellExecuteW
(
hwnd
,
NULL
,
cmdline
,
args
,
NULL
,
cmdshow
);
}
/*************************************************************************
* ShellExec_RunDLLA [SHELL32.@]
*/
void
WINAPI
ShellExec_RunDLLA
(
HWND
hwnd
,
HINSTANCE
instance
,
CHAR
*
cmdline
,
int
cmdshow
)
{
WCHAR
*
cmdlineW
;
ShellExec_RunDLLW
(
hwnd
,
instance
,
__SHCloneStrAtoW
(
&
cmdlineW
,
cmdline
),
cmdshow
);
SHFree
(
cmdlineW
);
}
/*************************************************************************
* OpenAs_RunDLLA [SHELL32.@]
*/
void
WINAPI
OpenAs_RunDLLA
(
HWND
hwnd
,
HINSTANCE
hinst
,
LPCSTR
cmdline
,
int
cmdshow
)
...
...
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