On Thu, 8 Jun 2000, Andreas Mohr wrote:

> Hi,
> 
> as there are already going on some prolonged discussions about this matter,
> 
> what about WINSPOOL.DeviceCapabilities(/A/W) ?
> 
> I guess it's the same here...
> 
> (an app I have needs DeviceCapabilities)

    Reminded that this was not answered to by the WWN...


    Yes. I think it's the same thing except that:
 * DeviceCapabilities is correctly declared in winspool.h
 * DeviceCapabilities is declared a stub in the spec file so we cannot
have compilation problems du to the macro

    In the documentation they mention that DeviceCapabilities was
implemented in the printer driver in Win16 and that one had to manually
load the dll and do a GetProcAddress on it. They also say that now it's
part of the standard API and you don't have to do this gymnastic anymore
(and we do have a GDI_CallDeviceCapabilities16 in graphics/driver.c,
that's the one, right?).  Maybe there's something here that can explain
the current state of affairs (still speculating). 

    Back to MCIWndCreate. I know about the UNICODE macro and how it
impacts whether you get the A or W version of the APIs. Yet initially I
was under the impression that MCIWndCreate was able to select between
the A and W version at runtime. But this does not seem to make any
sense. Right? 

    Then, as Alexandre pointed out, we should make MCIWndCreate and
DeviceCapabilities point to the Ansi implementation directly in the spec
file. Here a patch that does that. If there's no objection I'll post it
to wine-patches. 


--
Francois Gouget         [EMAIL PROTECTED]        http://fgouget.free.fr/
        War doesn't determine who's right.  War determines who's left.

Index: include/vfw.h
===================================================================
RCS file: /home/wine/wine/include/vfw.h,v
retrieving revision 1.13
diff -u -r1.13 vfw.h
--- include/vfw.h       2000/06/11 20:07:08     1.13
+++ include/vfw.h       2000/06/15 22:55:47
@@ -10,6 +10,9 @@
 #define VFWAPI WINAPI
 #define VFWAPIV        WINAPIV
 
+HWND        VFWAPIV MCIWndCreateA(HWND hwndParent, HINSTANCE hInstance, DWORD 
+dwStyle, LPCSTR szFile);
+HWND        VFWAPIV MCIWndCreateW(HWND hwndParent, HINSTANCE hInstance, DWORD 
+dwStyle, LPCWSTR szFile);
+#define     MCIWndCreate WINELIB_NAME_AW(MCIWndCreate)
 
 #ifndef mmioFOURCC
 #define mmioFOURCC( ch0, ch1, ch2, ch3 )                               \
Index: dlls/msvideo/msvfw32.spec
===================================================================
RCS file: /home/wine/wine/dlls/msvideo/msvfw32.spec,v
retrieving revision 1.3
diff -u -r1.3 msvfw32.spec
--- dlls/msvideo/msvfw32.spec   2000/04/19 16:54:02     1.3
+++ dlls/msvideo/msvfw32.spec   2000/06/15 22:55:34
@@ -48,7 +48,7 @@
  41 stub    ICSeqCompressFrame
  42 stub    ICSeqCompressFrameEnd
  43 stub    ICSeqCompressFrameStart
- 44 cdecl   MCIWndCreate (long long long ptr) MCIWndCreate
+ 44 cdecl   MCIWndCreate (long long long ptr) MCIWndCreateA
  45 cdecl   MCIWndCreateA (long long long str) MCIWndCreateA
  46 cdecl   MCIWndCreateW (long long long wstr) MCIWndCreateW
  47 stub    MCIWndRegisterClass
Index: dlls/msvideo/msvideo_main.c
===================================================================
RCS file: /home/wine/wine/dlls/msvideo/msvideo_main.c,v
retrieving revision 1.6
diff -u -r1.6 msvideo_main.c
--- dlls/msvideo/msvideo_main.c 2000/03/24 20:46:05     1.6
+++ dlls/msvideo/msvideo_main.c 2000/06/15 22:55:35
@@ -466,17 +466,8 @@
        return 0;
 }
 
-/***********************************************************************
- *             MCIWndCreate            [MSVFW.44]
- */
-HWND VFWAPIV MCIWndCreate (HWND hwndParent, HINSTANCE hInstance,
-                      DWORD dwStyle,LPVOID szFile)
-{      FIXME("%x %x %lx %p\n",hwndParent, hInstance, dwStyle, szFile);
-       return 0;
-}
-
 /***********************************************************************
- *             MCIWndCreateA           [MSVFW.45]
+ *             MCIWndCreateA           [MSVFW.44 & MSVFW.45]
  */
 HWND VFWAPIV MCIWndCreateA(HWND hwndParent, HINSTANCE hInstance,
                       DWORD dwStyle,LPCSTR szFile)
Index: dlls/winspool/winspool.spec
===================================================================
RCS file: /home/wine/wine/dlls/winspool/winspool.spec,v
retrieving revision 1.4
diff -u -r1.4 winspool.spec
--- dlls/winspool/winspool.spec 1999/10/24 21:35:18     1.4
+++ dlls/winspool/winspool.spec 2000/06/15 22:55:43
@@ -52,7 +52,7 @@
 147 stub DeletePrinterDriverW
 148 stub DeletePrinterIC
 149 stub DevQueryPrint
-150 stub DeviceCapabilities
+150 stdcall DeviceCapabilities(str str long ptr ptr) DeviceCapabilitiesA
 151 stdcall DeviceCapabilitiesA(str str long ptr ptr) DeviceCapabilitiesA
 152 stdcall DeviceCapabilitiesW(wstr wstr long wstr ptr) DeviceCapabilitiesW
 153 stub DeviceMode
Index: dlls/winspool/info.c
===================================================================
RCS file: /home/wine/wine/dlls/winspool/info.c,v
retrieving revision 1.14
diff -u -r1.14 info.c
--- dlls/winspool/info.c        2000/05/25 23:02:46     1.14
+++ dlls/winspool/info.c        2000/06/15 22:55:43
@@ -277,7 +277,7 @@
 }
 
 /******************************************************************
- *              DeviceCapabilitiesA    [WINSPOOL.151]
+ *              DeviceCapabilitiesA    [WINSPOOL.150 & WINSPOOL.151]
  *
  */
 INT WINAPI DeviceCapabilitiesA(LPCSTR pDeivce,LPCSTR pPort, WORD cap,
@@ -300,7 +300,7 @@
 
 
 /*****************************************************************************
- *          DeviceCapabilitiesW
+ *          DeviceCapabilitiesW        [WINSPOOL.152]
  *
  * Call DeviceCapabilitiesA since we later call 16bit stuff anyway
  *

Reply via email to