sync with Wine:

- Fix warnings in 64bit. (Kevin Koltzau <kevin@plop.org>)
- simplify 'sei' structure initialization in ShellExecuteA/W

svn path=/trunk/; revision=18184
This commit is contained in:
Martin Fuchs 2005-10-01 08:20:12 +00:00
parent 7cd4df132d
commit f57183be46
2 changed files with 9 additions and 11 deletions

View file

@ -210,7 +210,7 @@ inline static WCHAR * __SHCloneStrAtoW(WCHAR ** target, const char * source)
#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16)) #define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16))
#define HINSTANCE_16(h32) (LOWORD(h32)) #define HINSTANCE_16(h32) (LOWORD(h32))
typedef UINT (*SHELL_ExecuteW32)(const WCHAR *lpCmd, WCHAR *env, BOOL shWait, typedef UINT_PTR (*SHELL_ExecuteW32)(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
LPSHELLEXECUTEINFOW sei, LPSHELLEXECUTEINFOW sei_out); LPSHELLEXECUTEINFOW sei, LPSHELLEXECUTEINFOW sei_out);
BOOL WINAPI ShellExecuteExW32(LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc); BOOL WINAPI ShellExecuteExW32(LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc);

View file

@ -334,12 +334,12 @@ static HRESULT SHELL_ResolveShortCutW(LPWSTR wcmd, LPWSTR wargs, LPWSTR wdir, HW
* SHELL_ExecuteW [Internal] * SHELL_ExecuteW [Internal]
* *
*/ */
static UINT SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait, static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out) LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out)
{ {
STARTUPINFOW startup; STARTUPINFOW startup;
PROCESS_INFORMATION info; PROCESS_INFORMATION info;
UINT retval = 31; UINT_PTR retval = 31;
UINT gcdret = 0; UINT gcdret = 0;
WCHAR curdir[MAX_PATH]; WCHAR curdir[MAX_PATH];
@ -864,13 +864,13 @@ static unsigned dde_connect(WCHAR* key, WCHAR* start, WCHAR* ddeexec,
/************************************************************************* /*************************************************************************
* execute_from_key [Internal] * execute_from_key [Internal]
*/ */
static UINT execute_from_key(LPWSTR key, LPCWSTR lpFile, WCHAR *env, LPCWSTR szCommandline, static UINT_PTR execute_from_key(LPWSTR key, LPCWSTR lpFile, WCHAR *env, LPCWSTR szCommandline,
SHELL_ExecuteW32 execfunc, SHELL_ExecuteW32 execfunc,
LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out) LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out)
{ {
WCHAR cmd[1024]; WCHAR cmd[1024];
LONG cmdlen = sizeof(cmd); LONG cmdlen = sizeof(cmd);
UINT retval = 31; UINT_PTR retval = 31;
cmd[0] = '\0'; cmd[0] = '\0';
@ -936,7 +936,7 @@ HINSTANCE WINAPI FindExecutableA(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResu
*/ */
HINSTANCE WINAPI FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult) HINSTANCE WINAPI FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult)
{ {
UINT retval = 31; /* default - 'No association was found' */ UINT_PTR retval = 31; /* default - 'No association was found' */
WCHAR old_dir[1024]; WCHAR old_dir[1024];
TRACE("File %s, Dir %s\n", TRACE("File %s, Dir %s\n",
@ -989,7 +989,7 @@ BOOL WINAPI ShellExecuteExW32 (LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfun
WCHAR *env; WCHAR *env;
WCHAR lpstrProtocol[256]; WCHAR lpstrProtocol[256];
LPCWSTR lpFile; LPCWSTR lpFile;
UINT retval = 31; UINT_PTR retval = 31;
WCHAR wcmd[1024]; WCHAR wcmd[1024];
WCHAR buffer[MAX_PATH]; WCHAR buffer[MAX_PATH];
const WCHAR* ext; const WCHAR* ext;
@ -1360,7 +1360,6 @@ HINSTANCE WINAPI ShellExecuteA(HWND hWnd, LPCSTR lpOperation,LPCSTR lpFile,
LPCSTR lpParameters,LPCSTR lpDirectory, INT iShowCmd) LPCSTR lpParameters,LPCSTR lpDirectory, INT iShowCmd)
{ {
SHELLEXECUTEINFOA sei; SHELLEXECUTEINFOA sei;
HANDLE hProcess = 0;
TRACE("%p,%s,%s,%s,%s,%d\n", TRACE("%p,%s,%s,%s,%s,%d\n",
hWnd, debugstr_a(lpOperation), debugstr_a(lpFile), hWnd, debugstr_a(lpOperation), debugstr_a(lpFile),
@ -1378,7 +1377,7 @@ HINSTANCE WINAPI ShellExecuteA(HWND hWnd, LPCSTR lpOperation,LPCSTR lpFile,
sei.lpClass = 0; sei.lpClass = 0;
sei.hkeyClass = 0; sei.hkeyClass = 0;
sei.dwHotKey = 0; sei.dwHotKey = 0;
sei.hProcess = hProcess; sei.hProcess = 0;
ShellExecuteExA (&sei); ShellExecuteExA (&sei);
return sei.hInstApp; return sei.hInstApp;
@ -1450,7 +1449,6 @@ HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile,
LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd) LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
{ {
SHELLEXECUTEINFOW sei; SHELLEXECUTEINFOW sei;
HANDLE hProcess = 0;
TRACE("\n"); TRACE("\n");
sei.cbSize = sizeof(sei); sei.cbSize = sizeof(sei);
@ -1465,7 +1463,7 @@ HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile,
sei.lpClass = 0; sei.lpClass = 0;
sei.hkeyClass = 0; sei.hkeyClass = 0;
sei.dwHotKey = 0; sei.dwHotKey = 0;
sei.hProcess = hProcess; sei.hProcess = 0;
ShellExecuteExW32 (&sei, SHELL_ExecuteW); ShellExecuteExW32 (&sei, SHELL_ExecuteW);
return sei.hInstApp; return sei.hInstApp;