mirror of
https://github.com/reactos/wine.git
synced 2024-11-25 12:49:45 +00:00
324 lines
11 KiB
C
324 lines
11 KiB
C
/*
|
|
* Win16 BiDi functions
|
|
* Copyright 2000 Erez Volk
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*
|
|
* NOTE: Right now, most of these functions do nothing.
|
|
*/
|
|
|
|
#include <stdarg.h>
|
|
#include <string.h>
|
|
#include "windef.h"
|
|
#include "winbase.h"
|
|
#include "wingdi.h"
|
|
#include "wine/winuser16.h"
|
|
#include "winerror.h"
|
|
#include "wine/debug.h"
|
|
|
|
WINE_DEFAULT_DEBUG_CHANNEL(relay);
|
|
|
|
/***********************************************************************
|
|
* ChangeDialogTemplate (USER.905)
|
|
* FIXME: The prototypes of this function have not been found yet.
|
|
*/
|
|
LONG WINAPI ChangeDialogTemplate16(void) { FIXME("stub (no prototype)\n"); return 0; }
|
|
|
|
/***********************************************************************
|
|
* BiDiMessageBoxEx (USER.910)
|
|
* FIXME: The prototypes of this function have not been found yet.
|
|
*/
|
|
LONG WINAPI BiDiMessageBoxEx16(void) { FIXME("stub (no prototype)\n"); return 0; }
|
|
|
|
|
|
/******************************************************************************
|
|
* ChangeKeyboardCodePage [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;
|
|
}
|
|
|
|
|
|
/******************************************************************************
|
|
* ChangeKeyboardLanguage [USER.912]
|
|
* Change the keyboard layouts to a new pair.
|
|
*
|
|
* RETURNS
|
|
* The old keyboard layout pair.
|
|
*/
|
|
DWORD WINAPI ChangeKeyboardLanguage16( UINT16 iLangLeft, UINT16 iLangRight )
|
|
{
|
|
FIXME( "( %hu, %hu ): stub\n", iLangLeft, iLangRight );
|
|
return 0;
|
|
}
|
|
|
|
|
|
/******************************************************************************
|
|
* CreateDialogIndirectParamML [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;
|
|
}
|
|
|
|
|
|
/******************************************************************************
|
|
* DialogBoxIndirectParamML [USER.918]
|
|
*/
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
* FindLanguageResource [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;
|
|
}
|
|
|
|
|
|
/******************************************************************************
|
|
* GetAppCodePage [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;
|
|
}
|
|
|
|
|
|
/******************************************************************************
|
|
* GetBaseCodePage [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;
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
* GetCodePageSystemFont [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;
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
* GetLanguageName [USER.907]
|
|
* 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;
|
|
}
|
|
|
|
|
|
/******************************************************************************
|
|
* GetNumLanguages [USER.906]
|
|
* Returns the number of languages in the system.
|
|
*/
|
|
UINT WINAPI GetNumLanguages16( void )
|
|
{
|
|
FIXME( ": No Bidi16\n" );
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
* GetProcessDefaultLayout [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 );
|
|
}
|
|
|
|
|
|
/******************************************************************************
|
|
* LoadLanguageString [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;
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
* LoadSystemLanguageString [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;
|
|
}
|
|
|
|
|
|
/***********************************************************************
|
|
* MessageBoxEx [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;
|
|
}
|
|
|
|
|
|
/***********************************************************************
|
|
* QueryCodePage [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;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* SetAppCodePage [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;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* SetDlgItemTextEx [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 );
|
|
}
|
|
|
|
/******************************************************************************
|
|
* SetProcessDefaultLayout [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( "( %08x ): No BiDi16\n", dwDefaultLayout );
|
|
return SetProcessDefaultLayout( dwDefaultLayout );
|
|
}
|
|
|
|
/******************************************************************************
|
|
* SetWindowTextEx [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 );
|
|
}
|