/*************************************************************** * ExtDeviceMode [WINEPS16.90] */ INT16 WINAPI PSDRV_ExtDeviceMode16(HWND16 hwnd, HANDLE16 hDriver, LPDEVMODEA lpdmOutput, LPSTR lpszDevice, LPSTR lpszPort, LPDEVMODEA lpdmInput, LPSTR lpszProfile, WORD fwMode) { if (!load_wineps() || !pExtDeviceMode) return -1; return pExtDeviceMode( NULL, HWND_32(hwnd), lpdmOutput, lpszDevice, lpszPort, lpdmInput, lpszProfile, fwMode ); }
/***************************************************************************** * @ [GDI32.102] * * This should load the correct driver for lpszDevice and calls this driver's * ExtDeviceMode proc. * * FIXME: convert ExtDeviceMode to unicode in the driver interface */ INT WINAPI GDI_CallExtDeviceMode16( HWND hwnd, LPDEVMODEA lpdmOutput, LPSTR lpszDevice, LPSTR lpszPort, LPDEVMODEA lpdmInput, LPSTR lpszProfile, DWORD fwMode ) { WCHAR deviceW[300]; WCHAR bufW[300]; char buf[300]; HDC hdc; DC *dc; INT ret = -1; INT (*pExtDeviceMode)(LPSTR,HWND,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,DWORD); TRACE("(%p, %p, %s, %s, %p, %s, %ld)\n", hwnd, lpdmOutput, lpszDevice, lpszPort, lpdmInput, lpszProfile, fwMode ); if (!lpszDevice) return -1; if (!MultiByteToWideChar(CP_ACP, 0, lpszDevice, -1, deviceW, 300)) return -1; if(!DRIVER_GetDriverName( deviceW, bufW, 300 )) return -1; if (!WideCharToMultiByte(CP_ACP, 0, bufW, -1, buf, 300, NULL, NULL)) return -1; if (!(hdc = CreateICA( buf, lpszDevice, lpszPort, NULL ))) return -1; if ((dc = DC_GetDCPtr( hdc ))) { pExtDeviceMode = dc->funcs->pExtDeviceMode; GDI_ReleaseObj( hdc ); if (pExtDeviceMode) ret = pExtDeviceMode(buf, hwnd, lpdmOutput, lpszDevice, lpszPort, lpdmInput, lpszProfile, fwMode); } DeleteDC( hdc ); return ret; }