Detlef Riekenberg : localspl/tests: Get function pointers from the monitor.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Oct 20 04:46:06 CDT 2006


Module: wine
Branch: master
Commit: c4b67816159201e26770790ff015465ff66c1723
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c4b67816159201e26770790ff015465ff66c1723

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Fri Oct 20 00:12:35 2006 +0200

localspl/tests: Get function pointers from the monitor.

---

 dlls/localspl/tests/localmon.c |   50 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/dlls/localspl/tests/localmon.c b/dlls/localspl/tests/localmon.c
index 60d07b7..ca5ee97 100644
--- a/dlls/localspl/tests/localmon.c
+++ b/dlls/localspl/tests/localmon.c
@@ -39,6 +39,23 @@ static HMODULE  hdll;
 static LPMONITOREX (WINAPI *pInitializePrintMonitor)(LPWSTR);
 
 static LPMONITOREX pm;
+static BOOL  (WINAPI *pEnumPorts)(LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD);
+static BOOL  (WINAPI *pOpenPort)(LPWSTR, PHANDLE);
+static BOOL  (WINAPI *pOpenPortEx)(LPWSTR, LPWSTR, PHANDLE, struct _MONITOR *);
+static BOOL  (WINAPI *pStartDocPort)(HANDLE, LPWSTR, DWORD, DWORD, LPBYTE);
+static BOOL  (WINAPI *pWritePort)(HANDLE hPort, LPBYTE, DWORD, LPDWORD);
+static BOOL  (WINAPI *pReadPort)(HANDLE hPort, LPBYTE, DWORD, LPDWORD);
+static BOOL  (WINAPI *pEndDocPort)(HANDLE);
+static BOOL  (WINAPI *pClosePort)(HANDLE);
+static BOOL  (WINAPI *pAddPort)(LPWSTR, HWND, LPWSTR);
+static BOOL  (WINAPI *pAddPortEx)(LPWSTR, DWORD, LPBYTE, LPWSTR);
+static BOOL  (WINAPI *pConfigurePort)(LPWSTR, HWND, LPWSTR);
+static BOOL  (WINAPI *pDeletePort)(LPWSTR, HWND, LPWSTR);
+static BOOL  (WINAPI *pGetPrinterDataFromPort)(HANDLE, DWORD, LPWSTR, LPWSTR, DWORD, LPWSTR, DWORD, LPDWORD);
+static BOOL  (WINAPI *pSetPortTimeOuts)(HANDLE, LPCOMMTIMEOUTS, DWORD);
+static BOOL  (WINAPI *pXcvOpenPort)(HANDLE, LPCWSTR, ACCESS_MASK, PHANDLE phXcv);
+static DWORD (WINAPI *pXcvDataPort)(HANDLE, LPCWSTR, PBYTE, DWORD, PBYTE, DWORD, PDWORD);
+static BOOL  (WINAPI *pXcvClosePort)(HANDLE);
 
 static WCHAR emptyW[] = {0};
 static WCHAR Monitors_LocalPortW[] = { \
@@ -74,6 +91,14 @@ static void test_InitializePrintMonitor(
         "returned %p with %d (expected %p)\n", res, GetLastError(), pm);
 }
 
+/* ########################### */
+
+#define GET_MONITOR_FUNC(name) \
+            if(numentries > 0) { \
+                numentries--; \
+                p##name = (void *) pm->Monitor.pfn##name ;  \
+            }
+
 
 START_TEST(localmon)
 {
@@ -89,5 +114,30 @@ START_TEST(localmon)
        b) upto w2k: Section "Ports" in win.ini
        or InitializePrintMonitor fails. */
     pm = pInitializePrintMonitor(Monitors_LocalPortW);
+    if (pm) {
+        DWORD   numentries;
+        numentries = (pm->dwMonitorSize ) / sizeof(VOID *);
+        /* NT4: 14, since w2k: 17 */
+        ok( numentries == 14 || numentries == 17, 
+            "dwMonitorSize (%d) => %d Functions\n", pm->dwMonitorSize, numentries);
+
+        GET_MONITOR_FUNC(EnumPorts);
+        GET_MONITOR_FUNC(OpenPort);
+        GET_MONITOR_FUNC(OpenPortEx);
+        GET_MONITOR_FUNC(StartDocPort);
+        GET_MONITOR_FUNC(WritePort);
+        GET_MONITOR_FUNC(ReadPort);
+        GET_MONITOR_FUNC(EndDocPort);
+        GET_MONITOR_FUNC(ClosePort);
+        GET_MONITOR_FUNC(AddPort);
+        GET_MONITOR_FUNC(AddPortEx);
+        GET_MONITOR_FUNC(ConfigurePort);
+        GET_MONITOR_FUNC(DeletePort);
+        GET_MONITOR_FUNC(GetPrinterDataFromPort);
+        GET_MONITOR_FUNC(SetPortTimeOuts);
+        GET_MONITOR_FUNC(XcvOpenPort);
+        GET_MONITOR_FUNC(XcvDataPort);
+        GET_MONITOR_FUNC(XcvClosePort);
+    }
     test_InitializePrintMonitor();
 }




More information about the wine-cvs mailing list