wine/dlls/user/bidi16.c
2006-05-23 14:11:13 +02:00

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, UINT 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( "( %08lx ): 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 );
}