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
72f12e72
Commit
72f12e72
authored
Feb 17, 1999
by
Marcus Meissner
Committed by
Alexandre Julliard
Feb 17, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mmioDescend: fixed FIND_xxxx, verified with mciavi32.dll.
mciLoadCommandResource32: second arg is wide string mciGetDriverData: spec has just one long argument
parent
452db3f1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
23 deletions
+36
-23
mmsystem.h
include/mmsystem.h
+1
-1
mmio.c
multimedia/mmio.c
+30
-18
mmsystem.c
multimedia/mmsystem.c
+3
-2
winmm.spec
relay32/winmm.spec
+2
-2
No files found.
include/mmsystem.h
View file @
72f12e72
...
...
@@ -2939,7 +2939,7 @@ BOOL32 WINAPI mciDriverNotify32(HWND32 hwndCallback, UINT32 uDeviceID,
UINT16
WINAPI
mciLoadCommandResource16
(
HINSTANCE16
hInstance
,
LPCSTR
lpResName
,
UINT16
uType
);
UINT32
WINAPI
mciLoadCommandResource32
(
HINSTANCE32
hInstance
,
LPCSTR
lpResName
,
UINT32
uType
);
LPC
W
STR
lpResName
,
UINT32
uType
);
#define mciLoadCommandResource WINELIB_NAME(mciLoadCommandResource)
BOOL16
WINAPI
mciFreeCommandResource16
(
UINT16
uTable
);
...
...
multimedia/mmio.c
View file @
72f12e72
...
...
@@ -931,6 +931,7 @@ UINT16 WINAPI mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck,
const
MMCKINFO
*
lpckParent
,
UINT16
uFlags
)
{
DWORD
dwfcc
,
dwOldPos
;
LPDWORD
tocheck
;
TRACE
(
mmio
,
"(%04X, %p, %p, %04X);
\n
"
,
hmmio
,
lpck
,
lpckParent
,
uFlags
);
...
...
@@ -948,18 +949,27 @@ UINT16 WINAPI mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck,
TRACE
(
mmio
,
"seek inside parent at %ld !
\n
"
,
lpckParent
->
dwDataOffset
);
dwOldPos
=
mmioSeek32
(
hmmio
,
lpckParent
->
dwDataOffset
,
SEEK_SET
);
}
/*
It seems to be that FINDRIFF should not be treated the same as the
other FINDxxx so I treat it as a MMIO_FINDxxx
/* The SDK docu says 'ckid' is used for all cases. Real World
* examples disagree -Marcus,990216.
*/
if ((uFlags & MMIO_FINDCHUNK) || (uFlags & MMIO_FINDRIFF) ||
(uFlags & MMIO_FINDLIST)) {
*/
if
((
uFlags
&
MMIO_FINDCHUNK
)
||
(
uFlags
&
MMIO_FINDLIST
))
{
/* find_chunk looks for 'ckid' */
if
(
uFlags
&
MMIO_FINDCHUNK
)
{
tocheck
=
&
(
lpck
->
ckid
);
dwfcc
=
lpck
->
ckid
;
}
/* find_riff and find_list look for 'fccType' */
if
(
uFlags
&
(
MMIO_FINDLIST
|
MMIO_FINDRIFF
))
{
dwfcc
=
lpck
->
fccType
;
tocheck
=
&
(
lpck
->
fccType
);
}
if
(
uFlags
&
(
MMIO_FINDCHUNK
|
MMIO_FINDLIST
|
MMIO_FINDRIFF
))
{
TRACE
(
mmio
,
"MMIO_FINDxxxx dwfcc=%08lX !
\n
"
,
dwfcc
);
while
(
TRUE
)
{
LONG
ix
;
char
fcc
[
5
],
ckid
[
5
];
ix
=
mmioRead32
(
hmmio
,
(
LPSTR
)
lpck
,
3
*
sizeof
(
DWORD
));
TRACE
(
mmio
,
"after _lread32 ix = %ld req = %d, errno = %d
\n
"
,
ix
,
3
*
sizeof
(
DWORD
),
errno
);
...
...
@@ -969,23 +979,28 @@ UINT16 WINAPI mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck,
return
MMIOERR_CHUNKNOTFOUND
;
}
lpck
->
dwDataOffset
=
dwOldPos
+
2
*
sizeof
(
DWORD
);
if
(
lpck
->
ckid
==
FOURCC_RIFF
||
lpck
->
ckid
==
FOURCC_LIST
)
lpck
->
dwDataOffset
+=
sizeof
(
DWORD
);
if
(
ix
<
lpck
->
dwDataOffset
-
dwOldPos
)
{
mmioSeek32
(
hmmio
,
dwOldPos
,
SEEK_SET
);
WARN
(
mmio
,
"return ChunkNotFound
\n
"
);
return
MMIOERR_CHUNKNOTFOUND
;
}
TRACE
(
mmio
,
"dwfcc=%08lX ckid=%08lX cksize=%08lX !
\n
"
,
dwfcc
,
lpck
->
ckid
,
lpck
->
cksize
);
if
(
dwfcc
==
lpck
->
ckid
)
memcpy
(
fcc
,
&
dwfcc
,
4
);
fcc
[
4
]
=
'\0'
;
memcpy
(
ckid
,
&
lpck
->
ckid
,
4
);
ckid
[
4
]
=
'\0'
;
TRACE
(
mmio
,
"dwfcc=%s ckid=%s cksize=%08lX !
\n
"
,
fcc
,
ckid
,
lpck
->
cksize
);
if
(
dwfcc
==
*
tocheck
)
break
;
dwOldPos
=
lpck
->
dwDataOffset
+
lpck
->
cksize
;
mmioSeek32
(
hmmio
,
dwOldPos
,
SEEK_SET
);
}
}
else
{
/* If we were looking for RIFF/LIST chunks, the final dataptr
* is after the chunkid. If we were just looking for the chunk
* it is after the cksize. So add 4 in RIFF/LIST case.
*/
if
(
uFlags
&
(
MMIO_FINDLIST
|
MMIO_FINDRIFF
))
lpck
->
dwDataOffset
+=
sizeof
(
DWORD
);
}
else
{
/* FIXME: unverified, does it do this? */
if
(
mmioRead32
(
hmmio
,
(
LPSTR
)
lpck
,
sizeof
(
MMCKINFO
))
<
sizeof
(
MMCKINFO
))
{
mmioSeek32
(
hmmio
,
dwOldPos
,
SEEK_SET
);
WARN
(
mmio
,
"return ChunkNotFound 2nd
\n
"
);
...
...
@@ -996,11 +1011,8 @@ UINT16 WINAPI mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck,
lpck
->
dwDataOffset
+=
sizeof
(
DWORD
);
}
mmioSeek32
(
hmmio
,
lpck
->
dwDataOffset
,
SEEK_SET
);
TRACE
(
mmio
,
"lpck->ckid=%08lX lpck->cksize=%ld !
\n
"
,
lpck
->
ckid
,
lpck
->
cksize
);
TRACE
(
mmio
,
"lpck->ckid=%08lX lpck->cksize=%ld !
\n
"
,
lpck
->
ckid
,
lpck
->
cksize
);
TRACE
(
mmio
,
"lpck->fccType=%08lX !
\n
"
,
lpck
->
fccType
);
return
0
;
}
...
...
multimedia/mmsystem.c
View file @
72f12e72
...
...
@@ -37,6 +37,7 @@
#include "callback.h"
#include "module.h"
#include "selectors.h"
#include "debugstr.h"
#include "debug.h"
int
mciInstalledCount
;
...
...
@@ -1535,9 +1536,9 @@ BOOL32 WINAPI mciFreeCommandResource32(UINT32 uTable)
/**************************************************************************
* mciLoadCommandResource [WINMM.48]
*/
UINT32
WINAPI
mciLoadCommandResource32
(
HANDLE32
hinst
,
LPCSTR
resname
,
UINT32
type
)
UINT32
WINAPI
mciLoadCommandResource32
(
HANDLE32
hinst
,
LPC
W
STR
resname
,
UINT32
type
)
{
return
mciLoadCommandResource16
(
hinst
,
resname
,
type
);
FIXME
(
mmsys
,
"(%04x,%s,%d): stub!
\n
"
,
hinst
,
debugstr_w
(
resname
)
,
type
);
}
const
char
*
MCI_CommandToString
(
UINT16
wMsg
)
...
...
relay32/winmm.spec
View file @
72f12e72
...
...
@@ -44,11 +44,11 @@ type win32
41 stdcall mciGetDeviceIDA(str) mciGetDeviceID32A
42 stdcall mciGetDeviceIDFromElementIDW(long str) mciGetDeviceIDFromElementID32W
43 stdcall mciGetDeviceIDW(str) mciGetDeviceID32W
44 stdcall mciGetDriverData(long
long
) mciGetDriverData32
44 stdcall mciGetDriverData(long) mciGetDriverData32
45 stdcall mciGetErrorStringA(long ptr long) mciGetErrorString32A
46 stdcall mciGetErrorStringW(long ptr long) mciGetErrorString32W
47 stdcall mciGetYieldProc(long ptr) mciGetYieldProc32
48 stdcall mciLoadCommandResource(long str long) mciLoadCommandResource32
48 stdcall mciLoadCommandResource(long
w
str long) mciLoadCommandResource32
49 stdcall mciSendCommandA(long long long long) mciSendCommand32A
50 stdcall mciSendCommandW(long long long long) mciSendCommand32W
51 stdcall mciSendStringA(str ptr long long) mciSendString32A
...
...
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