[PATCH v2] winmm: Use _lopen instead of OpenFile.

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Sun Mar 29 16:54:30 CDT 2020


OpenFile has a filpath limit of 128.
Use _lopen which calls through to CreateFile which
doesn't have this limit.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48832
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=27324

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 dlls/winmm/mmio.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c
index 6f14301975..800a86894f 100644
--- a/dlls/winmm/mmio.c
+++ b/dlls/winmm/mmio.c
@@ -76,8 +76,10 @@ static LRESULT CALLBACK mmioDosIOProc(LPMMIOINFO lpmmioinfo, UINT uMessage,
 
 	    /* if filename NULL, assume open file handle in adwInfo[0] */
 	    if (szFileName) {
-                OFSTRUCT    ofs;
-                lpmmioinfo->adwInfo[0] = OpenFile(szFileName, &ofs, lpmmioinfo->dwFlags & 0xFFFF);
+                if (lpmmioinfo->dwFlags & OF_CREATE)
+                    lpmmioinfo->adwInfo[0] = _lcreat(szFileName, lpmmioinfo->dwFlags);
+                else
+                    lpmmioinfo->adwInfo[0] = _lopen(szFileName, lpmmioinfo->dwFlags);
             }
 	    if (lpmmioinfo->adwInfo[0] == HFILE_ERROR)
 		ret = MMIOERR_FILENOTFOUND;
-- 
2.25.1




More information about the wine-devel mailing list