Commit 5cab72bc authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

winmm: For MCI parsing, use 64bit compatible variables.

parent c62cf2e0
...@@ -972,7 +972,7 @@ static WORD MCI_GetMessage(LPCWSTR lpCmd) ...@@ -972,7 +972,7 @@ static WORD MCI_GetMessage(LPCWSTR lpCmd)
/************************************************************************** /**************************************************************************
* MCI_GetDWord [internal] * MCI_GetDWord [internal]
*/ */
static BOOL MCI_GetDWord(LPDWORD data, LPWSTR* ptr) static BOOL MCI_GetDWord(DWORD_PTR* data, LPWSTR* ptr)
{ {
DWORD val; DWORD val;
LPWSTR ret; LPWSTR ret;
...@@ -1025,7 +1025,7 @@ static DWORD MCI_GetString(LPWSTR* str, LPWSTR* args) ...@@ -1025,7 +1025,7 @@ static DWORD MCI_GetString(LPWSTR* str, LPWSTR* args)
/************************************************************************** /**************************************************************************
* MCI_ParseOptArgs [internal] * MCI_ParseOptArgs [internal]
*/ */
static DWORD MCI_ParseOptArgs(LPDWORD data, int _offset, LPCWSTR lpCmd, static DWORD MCI_ParseOptArgs(DWORD_PTR* data, int _offset, LPCWSTR lpCmd,
LPWSTR args, LPDWORD dwFlags) LPWSTR args, LPDWORD dwFlags)
{ {
int len, offset; int len, offset;
...@@ -1147,8 +1147,8 @@ static DWORD MCI_ParseOptArgs(LPDWORD data, int _offset, LPCWSTR lpCmd, ...@@ -1147,8 +1147,8 @@ static DWORD MCI_ParseOptArgs(LPDWORD data, int _offset, LPCWSTR lpCmd,
/************************************************************************** /**************************************************************************
* MCI_HandleReturnValues [internal] * MCI_HandleReturnValues [internal]
*/ */
static DWORD MCI_HandleReturnValues(DWORD dwRet, LPWINE_MCIDRIVER wmd, DWORD retType, static DWORD MCI_HandleReturnValues(DWORD dwRet, LPWINE_MCIDRIVER wmd, DWORD retType,
LPDWORD data, LPWSTR lpstrRet, UINT uRetLen) DWORD_PTR* data, LPWSTR lpstrRet, UINT uRetLen)
{ {
static const WCHAR wszLd [] = {'%','l','d',0}; static const WCHAR wszLd [] = {'%','l','d',0};
static const WCHAR wszLd4 [] = {'%','l','d',' ','%','l','d',' ','%','l','d',' ','%','l','d',0}; static const WCHAR wszLd4 [] = {'%','l','d',' ','%','l','d',' ','%','l','d',' ','%','l','d',0};
...@@ -1226,12 +1226,12 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, ...@@ -1226,12 +1226,12 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet,
LPWINE_MCIDRIVER wmd = 0; LPWINE_MCIDRIVER wmd = 0;
DWORD dwFlags = 0, dwRet = 0; DWORD dwFlags = 0, dwRet = 0;
int offset = 0; int offset = 0;
DWORD data[MCI_DATA_SIZE]; DWORD_PTR data[MCI_DATA_SIZE];
DWORD retType; DWORD retType;
LPCWSTR lpCmd = 0; LPCWSTR lpCmd = 0;
static const WCHAR wszNew[] = {'n','e','w',0}; static const WCHAR wszNew[] = {'n','e','w',0};
static const WCHAR wszSAliasS[] = {' ','a','l','i','a','s',' ',0}; static const WCHAR wszSAliasS[] = {' ','a','l','i','a','s',' ',0};
static const WCHAR wszTypeS[] = {'t','y','p','e',' ',0}; static const WCHAR wszTypeS[] = {'t','y','p','e',' ',0};
TRACE("(%s, %p, %d, %p)\n", TRACE("(%s, %p, %d, %p)\n",
debugstr_w(lpstrCommand), lpstrRet, uRetLen, hwndCallback); debugstr_w(lpstrCommand), lpstrRet, uRetLen, hwndCallback);
...@@ -1278,15 +1278,15 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, ...@@ -1278,15 +1278,15 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet,
tmp = devType; devType = dev; dev = tmp; tmp = devType; devType = dev; dev = tmp;
dwFlags |= MCI_OPEN_TYPE; dwFlags |= MCI_OPEN_TYPE;
data[2] = (DWORD)devType; data[2] = (DWORD_PTR)devType;
devType = str_dup_upper(devType); devType = str_dup_upper(devType);
dwFlags |= MCI_OPEN_ELEMENT; dwFlags |= MCI_OPEN_ELEMENT;
data[3] = (DWORD)dev; data[3] = (DWORD_PTR)dev;
} else if (DRIVER_GetLibName(dev, wszMci, buf, sizeof(buf))) { } else if (DRIVER_GetLibName(dev, wszMci, buf, sizeof(buf))) {
/* this is the name of a mci driver's type */ /* this is the name of a mci driver's type */
tmp = strchrW(dev, ' '); tmp = strchrW(dev, ' ');
if (tmp) *tmp = '\0'; if (tmp) *tmp = '\0';
data[2] = (DWORD)dev; data[2] = (DWORD_PTR)dev;
devType = str_dup_upper(dev); devType = str_dup_upper(dev);
if (tmp) *tmp = ' '; if (tmp) *tmp = ' ';
dwFlags |= MCI_OPEN_TYPE; dwFlags |= MCI_OPEN_TYPE;
...@@ -1305,7 +1305,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, ...@@ -1305,7 +1305,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet,
devType = str_dup_upper(buf); devType = str_dup_upper(buf);
} }
dwFlags |= MCI_OPEN_ELEMENT; dwFlags |= MCI_OPEN_ELEMENT;
data[3] = (DWORD)dev; data[3] = (DWORD_PTR)dev;
} }
if (!strstrW(args, wszSAliasS) && !dev) { if (!strstrW(args, wszSAliasS) && !dev) {
dwRet = MCIERR_NEW_REQUIRES_ALIAS; dwRet = MCIERR_NEW_REQUIRES_ALIAS;
...@@ -1362,7 +1362,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, ...@@ -1362,7 +1362,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet,
switch (retType = MCI_GetReturnType(lpCmd)) { switch (retType = MCI_GetReturnType(lpCmd)) {
case 0: offset = 1; break; case 0: offset = 1; break;
case MCI_INTEGER: offset = 2; break; case MCI_INTEGER: offset = 2; break;
case MCI_STRING: data[1] = (DWORD)lpstrRet; data[2] = uRetLen; offset = 3; break; case MCI_STRING: data[1] = (DWORD_PTR)lpstrRet; data[2] = uRetLen; offset = 3; break;
case MCI_RECT: offset = 5; break; case MCI_RECT: offset = 5; break;
default: ERR("oops\n"); default: ERR("oops\n");
} }
...@@ -1375,7 +1375,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, ...@@ -1375,7 +1375,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet,
/* set up call back */ /* set up call back */
if (dwFlags & MCI_NOTIFY) { if (dwFlags & MCI_NOTIFY) {
data[0] = (DWORD)hwndCallback; data[0] = (DWORD_PTR)hwndCallback;
} }
/* FIXME: the command should get it's own notification window set up and /* FIXME: the command should get it's own notification window set up and
...@@ -1383,7 +1383,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, ...@@ -1383,7 +1383,7 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet,
*/ */
if (lpstrRet && uRetLen) *lpstrRet = '\0'; if (lpstrRet && uRetLen) *lpstrRet = '\0';
TRACE("[%d, %s, %08x, %08x/%s %08x/%s %08x/%s %08x/%s %08x/%s %08x/%s]\n", TRACE("[%d, %s, %08x, %08lx/%s %08lx/%s %08lx/%s %08lx/%s %08lx/%s %08lx/%s]\n",
wmd->wDeviceID, MCI_MessageToString(MCI_GetMessage(lpCmd)), dwFlags, wmd->wDeviceID, MCI_MessageToString(MCI_GetMessage(lpCmd)), dwFlags,
data[0], debugstr_w((WCHAR *)data[0]), data[1], debugstr_w((WCHAR *)data[1]), data[0], debugstr_w((WCHAR *)data[0]), data[1], debugstr_w((WCHAR *)data[1]),
data[2], debugstr_w((WCHAR *)data[2]), data[3], debugstr_w((WCHAR *)data[3]), data[2], debugstr_w((WCHAR *)data[2]), data[3], debugstr_w((WCHAR *)data[3]),
...@@ -2214,7 +2214,7 @@ HTASK WINAPI mciGetCreatorTask(MCIDEVICEID uDeviceID) ...@@ -2214,7 +2214,7 @@ HTASK WINAPI mciGetCreatorTask(MCIDEVICEID uDeviceID)
LPWINE_MCIDRIVER wmd; LPWINE_MCIDRIVER wmd;
HTASK ret = 0; HTASK ret = 0;
if ((wmd = MCI_GetDriver(uDeviceID))) ret = (HTASK)wmd->CreatorThread; if ((wmd = MCI_GetDriver(uDeviceID))) ret = (HTASK)(DWORD_PTR)wmd->CreatorThread;
TRACE("(%u) => %p\n", uDeviceID, ret); TRACE("(%u) => %p\n", uDeviceID, ret);
return ret; return ret;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment