Conversion of HACMOBJ to void* (bug #478)

Vincent Béron vberon at mecano.gme.usherb.ca
Mon Mar 25 19:14:56 CST 2002


I had to transform acmMetrics16 to a atub (was dubbed "semi-stub")
because of an impossibility to convert a HACMOBJ16 (16bit offset
pointer, without segment info) to a HACMOBJ (32bit linear pointer): a
pointer less or equal than 0x0000ffff would certainly not access the
right memory area.


Changelog:
Vincent Béron <<vberon at mecano.gme.usherb.ca>>

  dlls/msacm: filter.c, format.c, msacm_main.c
  include/msacm.h:
   - Converts HACMOBJ to void*.
   - Stubified acmMetrics16.
-------------- next part --------------
diff -ur wine-20020325-2110/dlls/msacm/filter.c wine-20020325-2110-HACMOBJ/dlls/msacm/filter.c
--- wine-20020325-2110/dlls/msacm/filter.c	Tue Mar 12 10:37:42 2002
+++ wine-20020325-2110-HACMOBJ/dlls/msacm/filter.c	Mon Mar 25 16:36:23 2002
@@ -235,7 +235,7 @@
     if (had) {
 	HACMDRIVERID	hadid;
 
-	if (acmDriverID(had, &hadid, 0) != MMSYSERR_NOERROR)
+	if (acmDriverID((HACMOBJ)had, &hadid, 0) != MMSYSERR_NOERROR)
 	    return MMSYSERR_INVALHANDLE;
 	MSACM_FilterEnumHelper(MSACM_GetDriverID(hadid), had, pafd,
 			       fnCallback, dwInstance, fdwEnum);
diff -ur wine-20020325-2110/dlls/msacm/format.c wine-20020325-2110-HACMOBJ/dlls/msacm/format.c
--- wine-20020325-2110/dlls/msacm/format.c	Tue Mar 12 10:37:42 2002
+++ wine-20020325-2110-HACMOBJ/dlls/msacm/format.c	Mon Mar 25 16:36:43 2002
@@ -509,7 +509,7 @@
     if (had) {
 	HACMDRIVERID	hadid;
 
-	if (acmDriverID(had, &hadid, 0) != MMSYSERR_NOERROR)
+	if (acmDriverID((HACMOBJ)had, &hadid, 0) != MMSYSERR_NOERROR)
 	    return MMSYSERR_INVALHANDLE;
 	MSACM_FormatEnumHelper(MSACM_GetDriverID(hadid), had, pafd, &wfxRef, 
 			       fnCallback, dwInstance, fdwEnum);
diff -ur wine-20020325-2110/dlls/msacm/msacm_main.c wine-20020325-2110-HACMOBJ/dlls/msacm/msacm_main.c
--- wine-20020325-2110/dlls/msacm/msacm_main.c	Tue Mar 12 10:37:42 2002
+++ wine-20020325-2110-HACMOBJ/dlls/msacm/msacm_main.c	Mon Mar 25 18:28:04 2002
@@ -74,9 +74,9 @@
 MMRESULT16 WINAPI acmMetrics16(
   HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric)
 {
-  FIXME("(0x%04x, %d, %p): semi-stub\n", hao, uMetric, pMetric);
-
-  return acmMetrics(hao, uMetric, pMetric);
+  FIXME("(0x%04x, %d, %p): stub\n", hao, uMetric, pMetric);
+  SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+  return MMSYSERR_ERROR;
 }
 
 /***********************************************************************
diff -ur wine-20020325-2110/include/msacm.h wine-20020325-2110-HACMOBJ/include/msacm.h
--- wine-20020325-2110/include/msacm.h	Mon Mar 25 16:00:13 2002
+++ wine-20020325-2110-HACMOBJ/include/msacm.h	Mon Mar 25 16:30:19 2002
@@ -211,7 +211,7 @@
 DECLARE_HANDLE(HACMDRIVERID);
 DECLARE_HANDLE(HACMDRIVER);
 DECLARE_HANDLE(HACMSTREAM);
-DECLARE_OLD_HANDLE(HACMOBJ);
+DECLARE_HANDLE(HACMOBJ);
 
 /***********************************************************************
  * Callbacks


More information about the wine-patches mailing list