diff --git a/if1632/dummy.c b/if1632/dummy.c index d06477b6fbb..36427005ee6 100644 --- a/if1632/dummy.c +++ b/if1632/dummy.c @@ -10,47 +10,8 @@ DEFAULT_DEBUG_CHANNEL(relay) LONG WINAPI stub_GDI_379(HDC16 hdc) { FIXME("STARTPAGE: stub\n"); return 1; } LONG WINAPI stub_GDI_381(HDC16 hdc, SEGPTR proc) { FIXME("SETABORTPROC: stub\n"); return 1; } LONG WINAPI stub_GDI_382(void) { FIXME("ABORTPROC: stub\n"); return 1; } -LONG WINAPI stub_GDI_530(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_531(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_532(LPINT16 buffer, INT16 xx) { - FIXME("(%p, %hd): stub\n",buffer,xx); - return 0; -} -LONG WINAPI stub_GDI_536(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_538(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_540(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_543(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_555(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_560(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_561(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_564(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_565(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_566(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_571(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_572(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_573(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_556(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_558(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_GDI_569(void) { FIXME("stub\n"); return 0; } LONG WINAPI stub_USER_489(void) { FIXME("stub\n"); return 0; } LONG WINAPI stub_USER_490(void) { FIXME("stub\n"); return 0; } LONG WINAPI stub_USER_492(void) { FIXME("stub\n"); return 0; } LONG WINAPI stub_USER_496(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_902(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_905(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_906(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_907(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_909(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_910(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_911(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_912(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_913(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_914(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_915(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_916(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_918(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_919(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_920(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_922(void) { FIXME("stub\n"); return 0; } -LONG WINAPI stub_USER_923(void) { FIXME("stub\n"); return 0; } LONG WINAPI KERNEL_nop(void) { return 0; } diff --git a/if1632/gdi.spec b/if1632/gdi.spec index 1e93cbedf03..3375fafd3e2 100644 --- a/if1632/gdi.spec +++ b/if1632/gdi.spec @@ -351,26 +351,26 @@ file gdi.exe 527 stub SetMiterLimit 528 stub GDIParametersInfo 529 pascal16 CreateHalftonePalette(word) CreateHalftonePalette16 -# Stubs for Hebrew version -530 pascal16 GDI_530() stub_GDI_530 -531 pascal16 GDI_531() stub_GDI_531 -532 pascal16 GDI_532(ptr word) stub_GDI_532 -536 pascal16 GDI_536() stub_GDI_536 -538 pascal16 GDI_538() stub_GDI_538 -540 pascal16 GDI_540() stub_GDI_540 -543 pascal16 GDI_543() stub_GDI_543 -555 pascal16 GDI_555() stub_GDI_555 -560 pascal16 GDI_560() stub_GDI_560 -561 pascal16 GDI_561() stub_GDI_561 -564 pascal16 GDI_564() stub_GDI_564 -565 pascal16 GDI_565() stub_GDI_565 -566 pascal16 GDI_566() stub_GDI_566 -571 pascal16 GDI_571() stub_GDI_571 -572 pascal16 GDI_572() stub_GDI_572 -573 pascal16 GDI_573() stub_GDI_573 -556 pascal16 GDI_556() stub_GDI_556 -558 pascal16 GDI_558() stub_GDI_558 -569 pascal16 GDI_569() stub_GDI_569 +# Hebrew version API's +530 pascal16 RawTextOut() RawTextOut16 +531 pascal16 RawExtTextOut() RawExtTextOut16 +532 pascal16 RawGetTextExtent(word str word) RawGetTextExtent16 +536 pascal16 BiDiLayout() BiDiLayout16 +538 pascal16 BiDiCreateTabString() BiDiCreateTabString16 +540 pascal16 BiDiGlyphOut() BiDiGlyphOut16 +543 pascal16 BiDiGetStringExtent() BiDiGetStringExtent16 +555 pascal16 BiDiDeleteString() BiDiDeleteString16 +556 pascal16 BiDiSetDefaults() BiDiSetDefaults16 +558 pascal16 BiDiGetDefaults() BiDiGetDefaults16 +560 pascal16 BiDiShape() BiDiShape16 +561 pascal16 BiDiFontComplement() BiDiFontComplement16 +564 pascal16 BiDiSetKashida() BiDiSetKashida16 +565 pascal16 BiDiKExtTextOut() BiDiKExtTextOut16 +566 pascal16 BiDiShapeEx() BiDiShapeEx16 +569 pascal16 BiDiCreateStringEx() BiDiCreateStringEx16 +571 pascal16 GetTextExtentRtoL() GetTextExtentRtoL16 +572 pascal16 GetHDCCharSet() GetHDCCharSet16 +573 pascal16 BiDiLayoutEx() BiDiLayoutEx16 602 pascal16 SetDIBColorTable(word word word ptr) SetDIBColorTable16 603 pascal16 GetDIBColorTable(word word word ptr) GetDIBColorTable16 604 pascal16 SetSolidBrush(word long) SetSolidBrush16 @@ -396,3 +396,5 @@ file gdi.exe 822 stub ICMTranslateRGB 823 stub ICMTranslateRGBs 824 stub ICMCheckCOlorsInGamut +1000 pascal16 SetLayout(word long) SetLayout16 +1001 stub GetLayout diff --git a/if1632/user.spec b/if1632/user.spec index d6cfe1a0d85..905a3da47d7 100644 --- a/if1632/user.spec +++ b/if1632/user.spec @@ -532,22 +532,25 @@ file user.exe 855 stub Usr32ThkConnectionDataSL 890 stub InstallIMT 891 stub UninstallIMT -# Stubs for Hebrew version -902 pascal16 USER_902() stub_USER_902 -905 pascal16 USER_905() stub_USER_905 -906 pascal16 USER_906() stub_USER_906 -907 pascal16 USER_907() stub_USER_907 -909 pascal16 USER_909() stub_USER_909 -910 pascal16 USER_910() stub_USER_910 -911 pascal16 USER_911() stub_USER_911 -912 pascal16 USER_912() stub_USER_912 -913 pascal16 USER_913() stub_USER_913 -914 pascal16 USER_914() stub_USER_914 -915 pascal16 USER_915() stub_USER_915 -916 pascal16 USER_916() stub_USER_916 -918 pascal16 USER_918() stub_USER_918 -919 pascal16 USER_919() stub_USER_919 -920 pascal16 USER_920() stub_USER_920 -922 pascal16 USER_922() stub_USER_922 -923 pascal16 USER_923() stub_USER_923 -924 stub UsrMpr_ThunkData16 +# API for Hebrew version +902 pascal16 LoadSystemLanguageString(word word ptr word word) LoadSystemLanguageString16 +905 pascal16 ChangeDialogTemplate() ChangeDialogTemplate16 +906 pascal16 GetNumLanguages() GetNumLanguages16 +907 pascal16 GetLanguageName(word word ptr word) GetLanguageName16 +909 pascal16 SetWindowTextEx(word str word) SetWindowTextEx16 +910 pascal16 BiDiMessageBoxEx() BiDiMessageBoxEx16 +911 pascal16 SetDlgItemTextEx(word word str word) SetDlgItemTextEx16 +912 pascal ChangeKeyboardLanguage(word word) ChangeKeyboardLanguage16 +913 pascal16 GetCodePageSystemFont(word word) GetCodePageSystemFont16 +914 pascal16 QueryCodePage(word word word long) QueryCodePage16 +915 pascal GetAppCodePage(word) GetAppCodePage16 +916 pascal16 CreateDialogIndirectParamML(word ptr word ptr long word word str word) CreateDialogIndirectParamML16 +918 pascal16 DialogBoxIndirectParamML(word word word ptr long word word str word) DialogBoxIndirectParamML16 +919 pascal16 LoadLanguageString(word word word ptr word) LoadLanguageString16 +920 pascal SetAppCodePage(word word word word) SetAppCodePage16 +922 pascal GetBaseCodePage() GetBaseCodePage16 +923 pascal16 FindLanguageResource(word str str word) FindLanguageResource16 +924 pascal ChangeKeyboardCodePage(word word) ChangeKeyboardCodePage16 +930 pascal16 MessageBoxEx(word str str word word) MessageBoxEx16 +1000 pascal16 SetProcessDefaultLayout(long) SetProcessDefaultLayout16 +1001 pascal16 GetProcessDefaultLayout(ptr) GetProcessDefaultLayout16 diff --git a/misc/Makefile.in b/misc/Makefile.in index df95e88e8b7..4948cbf6336 100644 --- a/misc/Makefile.in +++ b/misc/Makefile.in @@ -7,6 +7,7 @@ VPATH = @srcdir@ MODULE = misc C_SRCS = \ + bidi16.c \ cdrom.c \ comm.c \ cpu.c \ diff --git a/misc/bidi16.c b/misc/bidi16.c new file mode 100644 index 00000000000..ee211ca94a7 --- /dev/null +++ b/misc/bidi16.c @@ -0,0 +1,337 @@ +/* + * Win16 BiDi functions + * Right now, most of these functions do nothing. + */ + +#include "windef.h" +#include "debugtools.h" +#include "windows.h" + +DEFAULT_DEBUG_CHANNEL(relay) + +LONG WINAPI RawTextOut16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI RawExtTextOut16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI RawGetTextExtent16(HDC16 hdc, LPCSTR lpszString, INT16 cbString ) { + FIXME("(%04hx, %p, %hd): stub\n", hdc, lpszString, cbString); + return 0; +} +LONG WINAPI BiDiLayout16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiCreateTabString16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiGlyphOut16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiGetStringExtent16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiDeleteString16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiSetDefaults16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiGetDefaults16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiShape16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiFontComplement16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiSetKashida16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiKExtTextOut16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiShapeEx16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiCreateStringEx16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI GetTextExtentRtoL16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI GetHDCCharSet16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiLayoutEx16(void) { FIXME("stub (no prototype)\n"); return 0; } + +/* the prototypes of these functions have not been found yet */ +LONG WINAPI ChangeDialogTemplate16(void) { FIXME("stub (no prototype)\n"); return 0; } +LONG WINAPI BiDiMessageBoxEx16(void) { FIXME("stub (no prototype)\n"); return 0; } + + +/****************************************************************************** + * ChangeKeyboardCodePage16 [USER.924] + * Change the keyboard layouts to a new pair. + * If the language IDs are set to -1, the language is not to be changed. + */ +DWORD WINAPI ChangeKeyboardCodePage16( UINT16 iLangLeft, UINT16 iLangRight ) +{ + FIXME( "( %hu, %hu ): stub\n", iLangLeft, iLangRight ); + return 0; +} + + +/****************************************************************************** + * ChangeKeyboardLanguage16 [USER.912] + * Change the keyboard layouts to a new pair. + * + * RETURNS + * The old keyboard layout pair. + */ +DWORD WINAPI ChangeKeyboardLanguage16( UINT16 iLangLeft, UINT iLangRight ) +{ + FIXME( "( %hu, %hu ): stub\n", iLangLeft, iLangRight ); + return 0; +} + + +/****************************************************************************** + * CreateDialogIndirectParamML16 [USER.916] + */ +HWND16 WINAPI CreateDialogIndirectParamML16( HINSTANCE16 hinstWnd, + const void * lpvDlgTmp, + HWND16 hwndOwner, + DLGPROC16 dlgProc, + LPARAM lParamInit, + UINT16 iCodePage, UINT16 iLang, + LPCSTR lpDlgName, + HINSTANCE16 hinstLoad ) +{ + FIXME( "( %04hx, %p, %04hx, %p, %08lx, %hu, %hu, %p, %04hx ): stub\n", + hinstWnd, lpvDlgTmp, hwndOwner, dlgProc, lParamInit, + iCodePage, iLang, lpDlgName, hinstLoad ); + return 0; +} + + +/****************************************************************************** + * DialogBoxIndirectParamML16 [USER.916] + */ +HWND16 WINAPI DialogBoxIndirectParamML16( HINSTANCE16 hinstWnd, + HGLOBAL16 hglbDlgTemp, + HWND16 hwndOwner, + DLGPROC16 dlgprc, + LPARAM lParamInit, + UINT16 iCodePage, UINT16 iLang, + LPCSTR lpDlgName, + HINSTANCE16 hinstLoad ) +{ + FIXME( "( %04hx, %04hx, %04hx, %p, %08lx, %hu, %hu, %p, %04hx ): stub\n", + hinstWnd, hglbDlgTemp, hwndOwner, dlgprc, lParamInit, + iCodePage, iLang, lpDlgName, hinstLoad ); + return 0; +} + + + +/****************************************************************************** + * FindLanguageResource16 [USER.923] + */ +HRSRC16 WINAPI FindLanguageResource16( HINSTANCE16 hinst, LPCSTR lpRes, + LPCSTR lpResType, UINT16 iLang ) +{ + FIXME( "( %04hx, %p, %p, %hu ): stub\n", hinst, lpRes, lpResType, iLang ); + return 0; +} + + +/****************************************************************************** + * GetAppCodePage16 [USER.915] + * Returns the code page and language of the window + * + * RETURNS + * The low word contains the code page, the high word contains the resource language. + */ +DWORD WINAPI GetAppCodePage16( HWND16 hwnd ) +{ + FIXME( "( %04hx ): stub\n", hwnd ); + return 0; +} + + +/****************************************************************************** + * GetBaseCodePage16 [USER.922] + * Returns the base code page and resource language. + * For example, Hebrew windows will return HebrewCodePage in the low word + * and English in the high word. + */ +DWORD WINAPI GetBaseCodePage16( void ) +{ + FIXME( ": stub\n" ); + return 0; +} + + + +/****************************************************************************** + * GetCodePageSystemFont16 [USER.913] + * Returns the stock font for the requested code page. + */ +HFONT16 WINAPI GetCodePageSystemFont16( UINT16 iFont, UINT16 iCodePage ) +{ + FIXME( "( %hu, %hu ): stub\n", iFont, iCodePage ); + return 0; +} + + + +/****************************************************************************** + * GetLanguageName16 [USER.906] + * Returns the name of one language in (possibly) a different language. + * Currently only handles language 0 (english). + * + * RETURNS + * Success: The number of bytes copied to the buffer, not including the null. + * Failure: 0 + */ +UINT WINAPI GetLanguageName16( UINT16 iLang, UINT16 iName, + LPSTR lpszName, UINT16 cbBuffer ) +{ + if ( (iLang == 0) && (iName == 0) ) { + if ( !lpszName || cbBuffer < 8 ) { + SetLastError( ERROR_INVALID_PARAMETER ); + return 0; + } + strcpy( lpszName, "English" ); + return 7; + } + + FIXME( "( %hu, %hu, %p, %hu ): No BiDi16\n", iLang, iName, lpszName, cbBuffer ); + return 0; +} + + +/****************************************************************************** + * GetNumLanguages16 [USER.906] + * Returns the number of languages in the system. + */ +UINT WINAPI GetNumLanguages16( void ) +{ + FIXME( ": No Bidi16\n" ); + return 1; +} + + + +/****************************************************************************** + * GetProcessDefaultLayout16 [USER.1001] + * + * Gets the default layout for parentless windows. + * Right now, just returns 0 (left-to-right). + * + * RETURNS + * Success: Nonzero + * Failure: Zero + */ +BOOL16 WINAPI GetProcessDefaultLayout16( DWORD *pdwDefaultLayout ) +{ + FIXME( "( %p ): no BiDi16\n", pdwDefaultLayout ); + return GetProcessDefaultLayout( pdwDefaultLayout ); +} + + +/****************************************************************************** + * LoadLanguageString16 [USER.919] + * Loads a string for a specific language. + * + * RETURNS + * SUCCESS: The length of the string loaded. + * FAILURE: Zero. + */ +UINT16 WINAPI LoadLanguageString16( HINSTANCE16 hinst, UINT16 id, UINT16 iLang, + LPSTR lpszText, INT16 nBytes ) +{ + FIXME( "( %04hx, %hu, %hu, %p, %hd ): stub\n", hinst, id, iLang, lpszText, nBytes ); + return 0; +} + + + +/****************************************************************************** + * LoadSystemLanguageString16 [USER.902] + * Loads a string which is in one of the system language modules. + * + * RETURNS + * Success: The length of the string loaded + * Failure: Zero + */ +UINT WINAPI LoadSystemLanguageString16( HINSTANCE16 hinstCaller, UINT16 id, + LPSTR lpszText, INT16 nBytes, UINT16 iLang ) +{ + FIXME( "( %04hx, %hu, %p, %hd, %hu ): stub\n", hinstCaller, id, lpszText, nBytes, iLang ); + return 0; +} + + +/*********************************************************************** + * MessageBoxEx16 [USER.930] + * The multilingual version of MessageBox. + */ +INT16 WINAPI MessageBoxEx16( HWND16 hwndParent, LPCSTR lpszText, + LPCSTR lpszTitle, UINT16 fuStyle, UINT16 iLang ) +{ + FIXME( "( %04hx, %p, %p, %hu, %hu ): stub\n", hwndParent, lpszText, lpszTitle, + fuStyle, iLang ); + return 0; +} + + +/*********************************************************************** + * QueryCodePage16 [USER.914] + * Query code page specific data. + */ +LRESULT WINAPI QueryCodePage16( UINT16 idxLang, UINT16 msg, + WPARAM16 wParam, LPARAM lParam ) +{ + FIXME( "( %hu, %hu, %04hx, %08lx ): stub\n", idxLang, msg, wParam, lParam ); + return 0; +} + + +/*********************************************************************** + * SetAppCodePage16 [USER.920] + * Set the code page and language of the window to new values. + * + * RETURNS + * The low word contains the old code page, the high word contains + * the old resource language. + */ +DWORD WINAPI SetAppCodePage16( HWND16 hwnd, UINT16 iCodePage, UINT16 iLang, + UINT16 fRedraw ) +{ + FIXME( "( %04hx, %hu, %hu, %hu ): stub\n", hwnd, iCodePage, iLang, fRedraw ); + return 0; +} + + + +/*********************************************************************** + * SetDlgItemTextEx16 [USER.911] + * Sets the title or text of a control in a dialog box. + * Currently only works for language 0 (english) + */ +void WINAPI SetDlgItemTextEx16( HWND16 hwnd, INT16 id, + LPCSTR lpszText, UINT16 iLang ) +{ + FIXME( "( %04hx, %hd, %p, %hu ): stub\n", hwnd, id, lpszText, iLang ); +} + + + +/*********************************************************************** + * SetLayout16 [GDI.1000] + * + * Sets left->right or right->left text layout flags of a dc. + */ +BOOL16 WINAPI SetLayout16( HDC16 hdc, DWORD layout ) +{ + FIXME( "( %04hx, %08lx ): No BiDi16\n", hdc, layout ); + return SetLayout( hdc, layout ); +} + + + +/****************************************************************************** + * SetProcessDefaultLayout16 [USER.1000] + * + * Sets the default layout for parentless windows. + * Right now, only accepts 0 (left-to-right). + * + * RETURNS + * Success: Nonzero + * Failure: Zero + */ +BOOL16 WINAPI SetProcessDefaultLayout16( DWORD dwDefaultLayout ) +{ + FIXME( "( %08lx ): No BiDi16\n", dwDefaultLayout ); + return SetProcessDefaultLayout( dwDefaultLayout ); +} + + +/****************************************************************************** + * SetWindowTextEx16 [USER.909] + * Sets the given window's title to the specified text in the specified language. + */ +void WINAPI SetWindowTextEx16( HWND16 hwnd, LPCSTR lpsz, UINT16 iLang ) +{ + FIXME( "( %04hx, %p, %hu ): stub\n", hwnd, lpsz, iLang ); +} +