localspl/tests: Get function pointers from the monitor.

This commit is contained in:
Detlef Riekenberg 2006-10-20 00:12:35 +02:00 committed by Alexandre Julliard
parent ef78da2d5a
commit c4b6781615
1 changed files with 50 additions and 0 deletions

View File

@ -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(void)
"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();
}