diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c index fc377e2151e..99aa99dbfc2 100644 --- a/dlls/comctl32/propsheet.c +++ b/dlls/comctl32/propsheet.c @@ -13,8 +13,6 @@ #include "winbase.h" #include "commctrl.h" #include "prsht.h" -#include "dialog.h" -#include "win.h" #include "winnls.h" #include "comctl32.h" #include "debugtools.h" @@ -129,7 +127,6 @@ static int PROPSHEET_GetPageIndex(HPROPSHEETPAGE hpage, PropSheetInfo* psInfo); static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags); static PADDING_INFO PROPSHEET_GetPaddingInfoWizard(HWND hwndDlg, const PropSheetInfo* psInfo); static BOOL PROPSHEET_IsDialogMessage(HWND hwnd, LPMSG lpMsg); -static INT PROPSHEET_DoDialogBox( HWND hwnd, HWND owner); BOOL WINAPI PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); @@ -343,44 +340,6 @@ BOOL PROPSHEET_CollectPageInfo(LPCPROPSHEETPAGEA lppsp, return TRUE; } -/****************************************************************************** - * PROPSHEET_DoDialogBox - * - * Copied from windows/dialog.c:DIALOG_DoDialogBox - */ -static INT PROPSHEET_DoDialogBox( HWND hwnd, HWND owner) -{ - WND * wndPtr; - DIALOGINFO * dlgInfo; - MSG msg; - INT retval; - - /* Owner must be a top-level window */ - owner = WIN_GetTopParent( owner ); - if (!(wndPtr = WIN_FindWndPtr( hwnd ))) return -1; - dlgInfo = (DIALOGINFO *)wndPtr->wExtra; - - if (!(dlgInfo->flags & DF_END)) /* was EndDialog called in WM_INITDIALOG ? */ - { - EnableWindow( owner, FALSE ); - ShowWindow( hwnd, SW_SHOW ); - while (GetMessageA(&msg, 0, 0, 0)) - { - if (!PROPSHEET_IsDialogMessage( hwnd, &msg)) - { - TranslateMessage( &msg ); - DispatchMessageA( &msg ); - } - if (dlgInfo->flags & DF_END) break; - } - EnableWindow( owner, TRUE ); - } - retval = dlgInfo->idResult; - WIN_ReleaseWndPtr(wndPtr); - DestroyWindow( hwnd ); - return retval; -} - /****************************************************************************** * PROPSHEET_CreateDialog @@ -422,15 +381,19 @@ BOOL PROPSHEET_CreateDialog(PropSheetInfo* psInfo) if (psInfo->useCallback) (*(psInfo->ppshheader.pfnCallback))(0, PSCB_PRECREATE, (LPARAM)temp); - ret = CreateDialogIndirectParamA(psInfo->ppshheader.hInstance, - (LPDLGTEMPLATEA) temp, - psInfo->ppshheader.hwndParent, - (DLGPROC) PROPSHEET_DialogProc, - (LPARAM)psInfo); - if (!(psInfo->ppshheader.dwFlags & PSH_MODELESS)) - ret = PROPSHEET_DoDialogBox((HWND)ret, psInfo->ppshheader.hwndParent); - + ret = DialogBoxIndirectParamA(psInfo->ppshheader.hInstance, + (LPDLGTEMPLATEA) temp, + psInfo->ppshheader.hwndParent, + (DLGPROC) PROPSHEET_DialogProc, + (LPARAM)psInfo); + else + ret = CreateDialogIndirectParamA(psInfo->ppshheader.hInstance, + (LPDLGTEMPLATEA) temp, + psInfo->ppshheader.hwndParent, + (DLGPROC) PROPSHEET_DialogProc, + (LPARAM)psInfo); + COMCTL32_Free(temp); return ret; @@ -529,8 +492,7 @@ static BOOL PROPSHEET_AdjustSize(HWND hwndDlg, PropSheetInfo* psInfo) RECT rc,tabRect; int tabOffsetX, tabOffsetY, buttonHeight; PADDING_INFO padding = PROPSHEET_GetPaddingInfo(hwndDlg); - WND * wndPtr = WIN_FindWndPtr( hwndDlg ); - DIALOGINFO * dlgInfo = (DIALOGINFO *)wndPtr->wExtra; + RECT units; /* Get the height of buttons */ GetClientRect(hwndButton, &rc); @@ -546,6 +508,11 @@ static BOOL PROPSHEET_AdjustSize(HWND hwndDlg, PropSheetInfo* psInfo) MapDialogRect(hwndDlg, &rc); + /* retrieve the dialog units */ + units.left = units.right = 4; + units.top = units.bottom = 8; + MapDialogRect(hwndDlg, &units); + /* * Resize the tab control. */ @@ -556,13 +523,13 @@ static BOOL PROPSHEET_AdjustSize(HWND hwndDlg, PropSheetInfo* psInfo) if ((rc.bottom - rc.top) < (tabRect.bottom - tabRect.top)) { rc.bottom = rc.top + tabRect.bottom - tabRect.top; - psInfo->height = MulDiv((rc.bottom - rc.top),8,dlgInfo->yBaseUnit); + psInfo->height = MulDiv((rc.bottom - rc.top),8,units.top); } if ((rc.right - rc.left) < (tabRect.right - tabRect.left)) { rc.right = rc.left + tabRect.right - tabRect.left; - psInfo->width = MulDiv((rc.right - rc.left),4,dlgInfo->xBaseUnit); + psInfo->width = MulDiv((rc.right - rc.left),4,units.left); } SendMessageA(hwndTabCtrl, TCM_ADJUSTRECT, TRUE, (LPARAM)&rc); @@ -588,8 +555,6 @@ static BOOL PROPSHEET_AdjustSize(HWND hwndDlg, PropSheetInfo* psInfo) */ SetWindowPos(hwndDlg, 0, 0, 0, rc.right, rc.bottom, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); - - WIN_ReleaseWndPtr(wndPtr); return TRUE; } @@ -606,8 +571,7 @@ static BOOL PROPSHEET_AdjustSizeWizard(HWND hwndDlg, PropSheetInfo* psInfo) RECT rc,tabRect; int buttonHeight, lineHeight; PADDING_INFO padding = PROPSHEET_GetPaddingInfoWizard(hwndDlg, psInfo); - WND * wndPtr = WIN_FindWndPtr( hwndDlg ); - DIALOGINFO * dlgInfo = (DIALOGINFO *)wndPtr->wExtra; + RECT units; /* Get the height of buttons */ GetClientRect(hwndButton, &rc); @@ -616,6 +580,11 @@ static BOOL PROPSHEET_AdjustSizeWizard(HWND hwndDlg, PropSheetInfo* psInfo) GetClientRect(hwndLine, &rc); lineHeight = rc.bottom; + /* retrieve the dialog units */ + units.left = units.right = 4; + units.top = units.bottom = 8; + MapDialogRect(hwndDlg, &units); + /* * Biggest page size. */ @@ -631,13 +600,13 @@ static BOOL PROPSHEET_AdjustSizeWizard(HWND hwndDlg, PropSheetInfo* psInfo) if ((rc.bottom - rc.top) < (tabRect.bottom - tabRect.top)) { rc.bottom = rc.top + tabRect.bottom - tabRect.top; - psInfo->height = MulDiv((rc.bottom - rc.top), 8, dlgInfo->yBaseUnit); + psInfo->height = MulDiv((rc.bottom - rc.top), 8, units.top); } if ((rc.right - rc.left) < (tabRect.right - tabRect.left)) { rc.right = rc.left + tabRect.right - tabRect.left; - psInfo->width = MulDiv((rc.right - rc.left), 4, dlgInfo->xBaseUnit); + psInfo->width = MulDiv((rc.right - rc.left), 4, units.left); } TRACE("Biggest page %d %d %d %d\n", rc.left, rc.top, rc.right, rc.bottom); @@ -651,8 +620,6 @@ static BOOL PROPSHEET_AdjustSizeWizard(HWND hwndDlg, PropSheetInfo* psInfo) */ SetWindowPos(hwndDlg, 0, 0, 0, rc.right, rc.bottom, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); - - WIN_ReleaseWndPtr(wndPtr); return TRUE; } diff --git a/dlls/commdlg/filedlg.c b/dlls/commdlg/filedlg.c index bd14d16dfdb..754403e7a53 100644 --- a/dlls/commdlg/filedlg.c +++ b/dlls/commdlg/filedlg.c @@ -19,7 +19,6 @@ #include "heap.h" #include "commdlg.h" #include "module.h" -#include "drive.h" #include "debugtools.h" #include "cderr.h" #include "tweak.h" @@ -606,8 +605,17 @@ static LONG FILEDLG_WMInitDialog(HWND hWnd, WPARAM wParam, LPARAM lParam) WARN("Couldn't read initial directory %s!\n", debugstr_w(tmpstr)); } /* select current drive in combo 2, omit missing drives */ - for(i = 0, n = -1; i <= DRIVE_GetCurrentDrive(); i++) - if (DRIVE_IsValid(i)) n++; + { + char dir[MAX_PATH]; + char str[4] = "a:\\"; + GetCurrentDirectoryA( sizeof(dir), dir ); + for(i = 0, n = -1; i < 26; i++) + { + str[0] = 'a' + i; + if (GetDriveTypeA(str) != DRIVE_DOESNOTEXIST) n++; + if (toupper(str[0]) == toupper(dir[0])) break; + } + } SendDlgItemMessageW(hWnd, cmb2, CB_SETCURSEL, n, 0); if (!(ofn->Flags & OFN_SHOWHELP)) ShowWindow(GetDlgItem(hWnd, pshHelp), SW_HIDE); diff --git a/dlls/commdlg/fontdlg.c b/dlls/commdlg/fontdlg.c index e3f62e24dd8..45d97235417 100644 --- a/dlls/commdlg/fontdlg.c +++ b/dlls/commdlg/fontdlg.c @@ -22,7 +22,6 @@ #include "dlgs.h" #include "module.h" #include "debugtools.h" -#include "font.h" #include "cderr.h" DEFAULT_DEBUG_CHANNEL(commdlg); @@ -39,6 +38,24 @@ LRESULT WINAPI FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam, LRESULT WINAPI FormatCharDlgProc16(HWND16 hDlg, UINT16 message, WPARAM16 wParam, LPARAM lParam); +static void FONT_LogFont16To32A( const LPLOGFONT16 font16, LPLOGFONTA font32 ) +{ + font32->lfHeight = font16->lfHeight; + font32->lfWidth = font16->lfWidth; + font32->lfEscapement = font16->lfEscapement; + font32->lfOrientation = font16->lfOrientation; + font32->lfWeight = font16->lfWeight; + font32->lfItalic = font16->lfItalic; + font32->lfUnderline = font16->lfUnderline; + font32->lfStrikeOut = font16->lfStrikeOut; + font32->lfCharSet = font16->lfCharSet; + font32->lfOutPrecision = font16->lfOutPrecision; + font32->lfClipPrecision = font16->lfClipPrecision; + font32->lfQuality = font16->lfQuality; + font32->lfPitchAndFamily = font16->lfPitchAndFamily; + lstrcpynA( font32->lfFaceName, font16->lfFaceName, LF_FACESIZE ); +} + static void CFn_CHOOSEFONT16to32A(LPCHOOSEFONT16 chf16, LPCHOOSEFONTA chf32a) { chf32a->lStructSize=sizeof(CHOOSEFONTA); @@ -72,6 +89,7 @@ BOOL16 WINAPI ChooseFont16(LPCHOOSEFONT16 lpChFont) FARPROC16 ptr; CHOOSEFONTA cf32a; LOGFONTA lf32a; + LOGFONT16 *font16; SEGPTR lpTemplateName; cf32a.lpLogFont=&lf32a; @@ -157,8 +175,23 @@ BOOL16 WINAPI ChooseFont16(LPCHOOSEFONT16 lpChFont) GlobalFree16(hGlobal16); } lpChFont->lpTemplateName=lpTemplateName; - FONT_LogFont32ATo16(cf32a.lpLogFont, - (LPLOGFONT16)(PTR_SEG_TO_LIN(lpChFont->lpLogFont))); + + + font16 = PTR_SEG_TO_LIN(lpChFont->lpLogFont); + font16->lfHeight = cf32a.lpLogFont->lfHeight; + font16->lfWidth = cf32a.lpLogFont->lfWidth; + font16->lfEscapement = cf32a.lpLogFont->lfEscapement; + font16->lfOrientation = cf32a.lpLogFont->lfOrientation; + font16->lfWeight = cf32a.lpLogFont->lfWeight; + font16->lfItalic = cf32a.lpLogFont->lfItalic; + font16->lfUnderline = cf32a.lpLogFont->lfUnderline; + font16->lfStrikeOut = cf32a.lpLogFont->lfStrikeOut; + font16->lfCharSet = cf32a.lpLogFont->lfCharSet; + font16->lfOutPrecision = cf32a.lpLogFont->lfOutPrecision; + font16->lfClipPrecision = cf32a.lpLogFont->lfClipPrecision; + font16->lfQuality = cf32a.lpLogFont->lfQuality; + font16->lfPitchAndFamily = cf32a.lpLogFont->lfPitchAndFamily; + lstrcpynA( font16->lfFaceName, cf32a.lpLogFont->lfFaceName, LF_FACESIZE ); return bRet; } diff --git a/dlls/mpr/Makefile.in b/dlls/mpr/Makefile.in index 15f934a8fb0..1008cbb7488 100644 --- a/dlls/mpr/Makefile.in +++ b/dlls/mpr/Makefile.in @@ -3,7 +3,6 @@ TOPOBJDIR = ../.. SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = mpr -IMPORTS = ntdll LDDLLFLAGS = @LDDLLFLAGS@ SYMBOLFILE = $(MODULE).tmp.o diff --git a/dlls/mpr/wnet.c b/dlls/mpr/wnet.c index 80fa4e5d95d..ccc5612745f 100644 --- a/dlls/mpr/wnet.c +++ b/dlls/mpr/wnet.c @@ -10,7 +10,6 @@ #include "winbase.h" #include "winnetwk.h" -#include "drive.h" #include "heap.h" #include "debugtools.h" @@ -333,22 +332,22 @@ DWORD WINAPI WNetRestoreConnectionW( HWND hwndOwner, LPWSTR lpszDevice ) DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName, LPSTR lpRemoteName, LPDWORD lpBufferSize ) { - const char *path; + char label[40]; TRACE( "local %s\n", lpLocalName ); if (lpLocalName[1] == ':') { - int drive = toupper(lpLocalName[0]) - 'A'; switch(GetDriveTypeA(lpLocalName)) { case DRIVE_REMOTE: - path = DRIVE_GetLabel(drive); - if (strlen(path) + 1 > *lpBufferSize) + if (!GetVolumeInformationA( lpLocalName, label, sizeof(label), + NULL, NULL, NULL, NULL, 0 )) label[0] = 0; + if (strlen(label) + 1 > *lpBufferSize) { - *lpBufferSize = strlen(path) + 1; + *lpBufferSize = strlen(label) + 1; return WN_MORE_DATA; } - strcpy( lpRemoteName, path ); + strcpy( lpRemoteName, label ); *lpBufferSize = strlen(lpRemoteName) + 1; return WN_SUCCESS; case DRIVE_REMOVABLE: diff --git a/dlls/winmm/mcianim/Makefile.in b/dlls/winmm/mcianim/Makefile.in index e124a8c4195..b328e804847 100644 --- a/dlls/winmm/mcianim/Makefile.in +++ b/dlls/winmm/mcianim/Makefile.in @@ -3,8 +3,9 @@ TOPOBJDIR = ../../.. SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = mcianim.drv -SOVERSION = 1.0 -IMPORTS = winmm user32 kernel32 ntdll + +LDDLLFLAGS = @LDDLLFLAGS@ +SYMBOLFILE = $(MODULE).tmp.o C_SRCS = \ mcianim.c diff --git a/dlls/winmm/mcianim/mcianim.c b/dlls/winmm/mcianim/mcianim.c index f83773a62cd..acdd5de6f9f 100644 --- a/dlls/winmm/mcianim/mcianim.c +++ b/dlls/winmm/mcianim/mcianim.c @@ -382,7 +382,7 @@ static DWORD MCIANIM_mciStatus(UINT16 wDevID, DWORD dwFlags, LPMCI_STATUS_PARMS if (dwFlags & MCI_NOTIFY) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } if (dwFlags & MCI_STATUS_ITEM) { @@ -482,7 +482,7 @@ static DWORD MCIANIM_mciPlay(UINT16 wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpPa if (dwFlags & MCI_NOTIFY) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } return 0; @@ -504,7 +504,7 @@ static DWORD MCIANIM_mciStop(UINT16 wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS l if (dwFlags & MCI_NOTIFY) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } return 0; @@ -523,7 +523,7 @@ static DWORD MCIANIM_mciPause(UINT16 wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS if (dwFlags & MCI_NOTIFY) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND16)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } return 0; @@ -542,7 +542,7 @@ static DWORD MCIANIM_mciResume(UINT16 wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS if (dwFlags & MCI_NOTIFY) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } return 0; @@ -578,7 +578,7 @@ static DWORD MCIANIM_mciSeek(UINT16 wDevID, DWORD dwFlags, LPMCI_SEEK_PARMS lpPa if (dwFlags & MCI_NOTIFY) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } return dwRet; @@ -622,7 +622,7 @@ static DWORD MCIANIM_mciSet(UINT16 wDevID, DWORD dwFlags, LPMCI_SET_PARMS lpParm if (dwFlags & MCI_SET_OFF) return MCIERR_UNSUPPORTED_FUNCTION; if (dwFlags & MCI_NOTIFY) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } return 0; diff --git a/dlls/winmm/mciavi/Makefile.in b/dlls/winmm/mciavi/Makefile.in index 4baf9014c29..020f367b50a 100644 --- a/dlls/winmm/mciavi/Makefile.in +++ b/dlls/winmm/mciavi/Makefile.in @@ -3,8 +3,9 @@ TOPOBJDIR = ../../.. SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = mciavi.drv -SOVERSION = 1.0 -IMPORTS = winmm user32 kernel32 ntdll + +LDDLLFLAGS = @LDDLLFLAGS@ +SYMBOLFILE = $(MODULE).tmp.o C_SRCS = \ mciavi.c diff --git a/dlls/winmm/mciavi/mciavi.c b/dlls/winmm/mciavi/mciavi.c index a67d3e248e0..9aade4f7957 100644 --- a/dlls/winmm/mciavi/mciavi.c +++ b/dlls/winmm/mciavi/mciavi.c @@ -159,7 +159,7 @@ static DWORD AVI_mciPlay(UINT16 wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms) wma->wStatus = MCI_MODE_PLAY; if (lpParms && (dwFlags & MCI_NOTIFY)) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } return 0; @@ -418,7 +418,7 @@ static DWORD AVI_mciStatus(UINT16 wDevID, DWORD dwFlags, LPMCI_DGV_STATUS_PARMSA } if (dwFlags & MCI_NOTIFY) { TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback); - mciDriverNotify16((HWND16)LOWORD(lpParms->dwCallback), + mciDriverNotify((HWND)LOWORD(lpParms->dwCallback), wma->wNotifyDeviceID, MCI_NOTIFY_SUCCESSFUL); } diff --git a/dlls/winspool/Makefile.in b/dlls/winspool/Makefile.in index e24b1ff369c..336fdb4baf4 100644 --- a/dlls/winspool/Makefile.in +++ b/dlls/winspool/Makefile.in @@ -3,8 +3,9 @@ TOPOBJDIR = ../.. SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = winspool.drv -SOVERSION = 1.0 -IMPORTS = user32 gdi32 advapi32 kernel32 ntdll + +LDDLLFLAGS = @LDDLLFLAGS@ +SYMBOLFILE = $(MODULE).tmp.o C_SRCS = \ info.c \ diff --git a/dlls/winspool/info.c b/dlls/winspool/info.c index e0f92ff8261..b1d4e40f17c 100644 --- a/dlls/winspool/info.c +++ b/dlls/winspool/info.c @@ -7,6 +7,7 @@ * Copyright 1999, 2000 Huw D M Davies */ +#include #include #include #include @@ -37,6 +38,14 @@ extern HDPA (WINAPI* WINSPOOL_DPA_CreateEx) (INT, HANDLE); extern LPVOID (WINAPI* WINSPOOL_DPA_GetPtr) (const HDPA, INT); extern INT (WINAPI* WINSPOOL_DPA_InsertPtr) (const HDPA, INT, LPVOID); +static DWORD (WINAPI *GDI_CallDeviceCapabilities16)( LPCSTR lpszDevice, LPCSTR lpszPort, + WORD fwCapability, LPSTR lpszOutput, + LPDEVMODEA lpdm ); +static INT (WINAPI *GDI_CallExtDeviceMode16)( HWND hwnd, LPDEVMODEA lpdmOutput, + LPSTR lpszDevice, LPSTR lpszPort, + LPDEVMODEA lpdmInput, LPSTR lpszProfile, + DWORD fwMode ); + static char Printers[] = "System\\CurrentControlSet\\control\\Print\\Printers\\"; static char Drivers[] = @@ -284,6 +293,13 @@ INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort, WORD cap, LPSTR pOutput, LPDEVMODEA lpdm) { INT ret; + + if (!GDI_CallDeviceCapabilities16) + { + GDI_CallDeviceCapabilities16 = (void*)GetProcAddress( GetModuleHandleA("gdi32"), + (LPCSTR)104 ); + if (!GDI_CallDeviceCapabilities16) return -1; + } ret = GDI_CallDeviceCapabilities16(pDevice, pPort, cap, pOutput, lpdm); /* If DC_PAPERSIZE map POINT16s to POINTs */ @@ -377,6 +393,12 @@ LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter, lpName = HEAP_strdupWtoA(GetProcessHeap(),0,lpNameW); } + if (!GDI_CallExtDeviceMode16) + { + GDI_CallExtDeviceMode16 = (void*)GetProcAddress( GetModuleHandleA("gdi32"), + (LPCSTR)102 ); + if (!GDI_CallExtDeviceMode16) return -1; + } ret = GDI_CallExtDeviceMode16(hWnd, pDevModeOutput, lpName, "LPT1:", pDevModeInput, NULL, fMode); @@ -675,7 +697,7 @@ static HKEY WINSPOOL_OpenDriverReg( LPVOID pEnvironment, BOOL unicode) lpKey = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, strlen(p) + strlen(Drivers)); - (void) wsprintfA( lpKey, Drivers, p); + sprintf( lpKey, Drivers, p); TRACE("%s\n", lpKey); diff --git a/dlls/winspool/winspool.drv.spec b/dlls/winspool/winspool.drv.spec index 9f7100abbe7..360495b34cb 100644 --- a/dlls/winspool/winspool.drv.spec +++ b/dlls/winspool/winspool.drv.spec @@ -3,8 +3,6 @@ type win32 file winspool.drv init WINSPOOL_EntryPoint -import user32.dll -import gdi32.dll import advapi32.dll import kernel32.dll import ntdll.dll diff --git a/include/wingdi.h b/include/wingdi.h index 2c9e2aabd21..da63e629cf4 100644 --- a/include/wingdi.h +++ b/include/wingdi.h @@ -3118,10 +3118,6 @@ BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT); BOOL WINAPI FlattenPath(HDC); BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF); BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT); -DWORD WINAPI GDI_CallDeviceCapabilities16(LPCSTR,LPCSTR,WORD,LPSTR, - LPDEVMODEA); -INT WINAPI GDI_CallExtDeviceMode16(HWND,LPDEVMODEA,LPSTR,LPSTR, - LPDEVMODEA,LPSTR,DWORD); BOOL WINAPI GdiComment(HDC,UINT,const BYTE *); INT WINAPI GetArcDirection(HDC); BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);