|
|
/*++
Copyright (c) 1985 - 1999, Microsoft Corporation
Module Name:
dbcs.c
Abstract:
Author:
KazuM May.11.1992
Revision History:
--*/
#include "precomp.h"
#pragma hdrstop
#if defined(FE_SB)
#include "conime.h"
#if !defined(BUILD_WOW6432)
BOOL APIENTRY GetConsoleNlsMode( IN HANDLE hConsoleHandle, OUT LPDWORD lpNlsMode )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
lpNlsMode - Supplies a pointer to the NLS mode.
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{
#if defined(FE_IME)
CONSOLE_API_MSG m; PCONSOLE_NLS_MODE_MSG a = &m.u.GetConsoleNlsMode; NTSTATUS Status;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->Handle = hConsoleHandle; a->Ready = FALSE;
Status = NtCreateEvent(&(a->hEvent), EVENT_ALL_ACCESS, NULL, SynchronizationEvent, (BOOLEAN)FALSE ); if (!NT_SUCCESS(Status)) { SET_LAST_NT_ERROR(Status); return FALSE; }
CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepGetNlsMode ), sizeof( *a ) );
if (NT_SUCCESS( m.ReturnValue )) { Status = NtWaitForSingleObject(a->hEvent, FALSE, NULL);
if (a->Ready == FALSE) { /*
* If not ready conversion status on this console, * then one more try get status. */ CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepGetNlsMode ), sizeof( *a ) ); if (! NT_SUCCESS( m.ReturnValue )) { SET_LAST_NT_ERROR (m.ReturnValue); NtClose(a->hEvent); return FALSE; } else { Status = NtWaitForSingleObject(a->hEvent, FALSE, NULL); } }
NtClose(a->hEvent);
try { *lpNlsMode = a->NlsMode; } except( EXCEPTION_EXECUTE_HANDLER ) { SET_LAST_ERROR (ERROR_INVALID_ACCESS); return FALSE; } return TRUE; } else { SET_LAST_NT_ERROR (m.ReturnValue); NtClose(a->hEvent); return FALSE; } #else
return FALSE; #endif
}
BOOL APIENTRY SetConsoleNlsMode( IN HANDLE hConsoleHandle, IN DWORD dwNlsMode )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
dwNlsMode - Supplies NLS mode.
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{
#if defined(FE_IME)
CONSOLE_API_MSG m; PCONSOLE_NLS_MODE_MSG a = &m.u.SetConsoleNlsMode; NTSTATUS Status;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->Handle = hConsoleHandle; a->NlsMode = dwNlsMode;
Status = NtCreateEvent(&(a->hEvent), EVENT_ALL_ACCESS, NULL, SynchronizationEvent, (BOOLEAN)FALSE ); if (!NT_SUCCESS(Status)) { SET_LAST_NT_ERROR(Status); return FALSE; }
CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepSetNlsMode ), sizeof( *a ) ); if (NT_SUCCESS( m.ReturnValue )) { Status = NtWaitForSingleObject(a->hEvent, FALSE, NULL); NtClose(a->hEvent); if (Status != 0) { SET_LAST_NT_ERROR(Status); return FALSE; } return TRUE; } else { SET_LAST_NT_ERROR (m.ReturnValue); NtClose(a->hEvent); return FALSE; } #else
return FALSE; #endif
}
BOOL APIENTRY GetConsoleCharType( IN HANDLE hConsoleHandle, IN COORD coordCheck, OUT PDWORD pdwType )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
coordCheck - set check position to these coordinates
pdwType - receive character type
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{
CONSOLE_API_MSG m; PCONSOLE_CHAR_TYPE_MSG a = &m.u.GetConsoleCharType;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->Handle = hConsoleHandle; a->coordCheck = coordCheck; CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepCharType ), sizeof( *a ) ); if (NT_SUCCESS( m.ReturnValue )) { try { *pdwType = a->dwType; } except( EXCEPTION_EXECUTE_HANDLER ) { SET_LAST_ERROR (ERROR_INVALID_ACCESS); return FALSE; } return TRUE; } else { SET_LAST_NT_ERROR (m.ReturnValue); return FALSE; }
}
BOOL APIENTRY SetConsoleLocalEUDC( IN HANDLE hConsoleHandle, IN WORD wCodePoint, IN COORD cFontSize, IN PCHAR lpSB )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
wCodePoint - Code point of font by Shift JIS code.
cFontSize - FontSize of Font
lpSB - Pointer of font bitmap Buffer
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{
CONSOLE_API_MSG m; PCONSOLE_LOCAL_EUDC_MSG a = &m.u.SetConsoleLocalEUDC; PCSR_CAPTURE_HEADER CaptureBuffer; ULONG DataLength;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->Handle = hConsoleHandle; a->CodePoint = wCodePoint; a->FontSize = cFontSize;
DataLength = ((cFontSize.X + 7) / 8) * cFontSize.Y;
CaptureBuffer = CsrAllocateCaptureBuffer( 1, DataLength ); if (CaptureBuffer == NULL) { SET_LAST_ERROR(ERROR_NOT_ENOUGH_MEMORY); return FALSE; } CsrCaptureMessageBuffer( CaptureBuffer, lpSB, DataLength, (PVOID *) &a->FontFace );
CsrClientCallServer( (PCSR_API_MSG)&m, CaptureBuffer, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepSetLocalEUDC ), sizeof( *a ) ); CsrFreeCaptureBuffer( CaptureBuffer );
if (NT_SUCCESS( m.ReturnValue )) { return TRUE; } else { SET_LAST_NT_ERROR (m.ReturnValue); return FALSE; }
}
BOOL APIENTRY SetConsoleCursorMode( IN HANDLE hConsoleHandle, IN BOOL Blink, IN BOOL DBEnable )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
Blink - Blinking enable/disable switch.
DBEnable - Double Byte width enable/disable switch.
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{
CONSOLE_API_MSG m; PCONSOLE_CURSOR_MODE_MSG a = &m.u.SetConsoleCursorMode;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->Handle = hConsoleHandle; a->Blink = Blink; a->DBEnable = DBEnable; CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepSetCursorMode ), sizeof( *a ) ); if (NT_SUCCESS( m.ReturnValue )) { return TRUE; } else { SET_LAST_NT_ERROR (m.ReturnValue); return FALSE; }
}
BOOL APIENTRY GetConsoleCursorMode( IN HANDLE hConsoleHandle, OUT PBOOL pbBlink, OUT PBOOL pbDBEnable )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
Blink - Blinking enable/disable switch.
DBEnable - Double Byte width enable/disable switch.
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{
CONSOLE_API_MSG m; PCONSOLE_CURSOR_MODE_MSG a = &m.u.GetConsoleCursorMode;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->Handle = hConsoleHandle; CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepGetCursorMode ), sizeof( *a ) ); if (NT_SUCCESS( m.ReturnValue )) { try { *pbBlink = a->Blink; *pbDBEnable = a->DBEnable; } except( EXCEPTION_EXECUTE_HANDLER ) { SET_LAST_ERROR (ERROR_INVALID_ACCESS); return FALSE; } return TRUE; } else { SET_LAST_NT_ERROR (m.ReturnValue); return FALSE; }
}
BOOL APIENTRY RegisterConsoleOS2( IN BOOL fOs2Register )
/*++
Description:
This routine registers the OS/2 with the console.
Parameters:
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ CONSOLE_API_MSG m; PCONSOLE_REGISTEROS2_MSG a = &m.u.RegisterConsoleOS2; NTSTATUS Status;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->fOs2Register = fOs2Register;
CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepRegisterOS2 ), sizeof( *a ) ); if (!NT_SUCCESS( m.ReturnValue)) { SET_LAST_NT_ERROR(m.ReturnValue); return FALSE; } else { return TRUE; } }
BOOL APIENTRY SetConsoleOS2OemFormat( IN BOOL fOs2OemFormat )
/*++
Description:
This routine sets the OS/2 OEM Format with the console.
Parameters:
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ CONSOLE_API_MSG m; PCONSOLE_SETOS2OEMFORMAT_MSG a = &m.u.SetConsoleOS2OemFormat;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->fOs2OemFormat = fOs2OemFormat; CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepSetOS2OemFormat ), sizeof( *a ) ); if (!NT_SUCCESS( m.ReturnValue)) { SET_LAST_NT_ERROR(m.ReturnValue); return FALSE; } else { return TRUE; } }
#endif //!defined(BUILD_WOW6432)
#if defined(FE_IME)
#if !defined(BUILD_WOW6432)
BOOL APIENTRY RegisterConsoleIMEInternal( IN HWND hWndConsoleIME, IN DWORD dwConsoleIMEThreadId, IN DWORD DesktopLength, IN LPWSTR Desktop, OUT DWORD *dwConsoleThreadId ) {
CONSOLE_API_MSG m; PCONSOLE_REGISTER_CONSOLEIME_MSG a = &m.u.RegisterConsoleIME; PCSR_CAPTURE_HEADER CaptureBuffer = NULL;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->hWndConsoleIME = hWndConsoleIME; a->dwConsoleIMEThreadId = dwConsoleIMEThreadId; a->DesktopLength = DesktopLength;
CaptureBuffer = CsrAllocateCaptureBuffer( 1, DesktopLength ); if (CaptureBuffer == NULL) { SET_LAST_ERROR(ERROR_NOT_ENOUGH_MEMORY); return FALSE; }
CsrCaptureMessageBuffer( CaptureBuffer, Desktop, a->DesktopLength, (PVOID *) &a->Desktop );
//
// Connect to the server process
//
CsrClientCallServer( (PCSR_API_MSG)&m, CaptureBuffer, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepRegisterConsoleIME ), sizeof( *a ) );
//HS Jan.20 if (CaptureBuffer) {
CsrFreeCaptureBuffer( CaptureBuffer ); //HS Jan.20 }
if (!NT_SUCCESS( m.ReturnValue)) { SET_LAST_NT_ERROR(m.ReturnValue); return FALSE; } else { try { if (dwConsoleThreadId != NULL) *dwConsoleThreadId = a->dwConsoleThreadId; } except( EXCEPTION_EXECUTE_HANDLER ) { SET_LAST_ERROR (ERROR_INVALID_ACCESS); return FALSE; } return TRUE; }
}
#endif //!defined(BUILD_WOW6432)
#if !defined(BUILD_WOW64)
BOOL APIENTRY RegisterConsoleIME( IN HWND hWndConsoleIME, OUT DWORD *dwConsoleThreadId )
/*++
Description:
This routine register the Console IME on the current desktop.
Parameters:
Return Value:
TRUE - The operation was successful.
FALSE - The operation failed.
--*/
{ STARTUPINFOW StartupInfo; DWORD dwDesktopLength; GetStartupInfoW(&StartupInfo);
if (StartupInfo.lpDesktop != NULL && *StartupInfo.lpDesktop != 0) { dwDesktopLength = (USHORT)((wcslen(StartupInfo.lpDesktop)+1)*sizeof(WCHAR)); dwDesktopLength = (USHORT)(min(dwDesktopLength,MAX_TITLE_LENGTH)); } else { dwDesktopLength = 0; }
return RegisterConsoleIMEInternal(hWndConsoleIME, GetCurrentThreadId(), dwDesktopLength, StartupInfo.lpDesktop, dwConsoleThreadId); }
#endif //!defined(BUILD_WOW64)
#if !defined(BUILD_WOW6432)
BOOL APIENTRY UnregisterConsoleIMEInternal( IN DWORD dwConsoleIMEThtreadId ) { CONSOLE_API_MSG m; PCONSOLE_UNREGISTER_CONSOLEIME_MSG a = &m.u.UnregisterConsoleIME;
a->ConsoleHandle = GET_CONSOLE_HANDLE; a->dwConsoleIMEThreadId = dwConsoleIMEThtreadId;
//
// Connect to the server process
//
CsrClientCallServer( (PCSR_API_MSG)&m, NULL, CSR_MAKE_API_NUMBER( CONSRV_SERVERDLL_INDEX, ConsolepUnregisterConsoleIME ), sizeof( *a ) );
if (!NT_SUCCESS( m.ReturnValue)) { SET_LAST_NT_ERROR(m.ReturnValue); return FALSE; } else { return TRUE; } }
#endif //!defined(BUILD_WOW6432)
#if !defined(BUILD_WOW64)
BOOL APIENTRY UnregisterConsoleIME( )
/*++
Description:
This routine unregister the Console IME on the current desktop.
Parameters:
Return Value:
TRUE - The operation was successful.
FALSE - The operation failed.
--*/
{
return UnregisterConsoleIMEInternal(GetCurrentThreadId());
}
NTSTATUS MyRegOpenKey( IN HANDLE hKey, IN LPWSTR lpSubKey, OUT PHANDLE phResult ) { OBJECT_ATTRIBUTES Obja; UNICODE_STRING SubKey;
//
// Convert the subkey to a counted Unicode string.
//
RtlInitUnicodeString( &SubKey, lpSubKey );
//
// Initialize the OBJECT_ATTRIBUTES structure and open the key.
//
InitializeObjectAttributes( &Obja, &SubKey, OBJ_CASE_INSENSITIVE, hKey, NULL );
return NtOpenKey( phResult, KEY_READ, &Obja ); }
NTSTATUS MyRegQueryValue( IN HANDLE hKey, IN LPWSTR lpValueName, IN DWORD dwValueLength, OUT LPBYTE lpData ) { UNICODE_STRING ValueName; ULONG BufferLength; ULONG ResultLength; PKEY_VALUE_FULL_INFORMATION KeyValueInformation; NTSTATUS Status;
//
// Convert the subkey to a counted Unicode string.
//
RtlInitUnicodeString( &ValueName, lpValueName );
BufferLength = sizeof(KEY_VALUE_FULL_INFORMATION) + dwValueLength + ValueName.Length;; KeyValueInformation = LocalAlloc(LPTR,BufferLength); if (KeyValueInformation == NULL) return STATUS_NO_MEMORY;
Status = NtQueryValueKey( hKey, &ValueName, KeyValueFullInformation, KeyValueInformation, BufferLength, &ResultLength ); if (NT_SUCCESS(Status)) { ASSERT(KeyValueInformation->DataLength <= dwValueLength); RtlMoveMemory(lpData, (PBYTE)KeyValueInformation + KeyValueInformation->DataOffset, KeyValueInformation->DataLength); if (KeyValueInformation->Type == REG_SZ) { if (KeyValueInformation->DataLength + sizeof(WCHAR) > dwValueLength) { KeyValueInformation->DataLength -= sizeof(WCHAR); } lpData[KeyValueInformation->DataLength++] = 0; lpData[KeyValueInformation->DataLength] = 0; } } LocalFree(KeyValueInformation); return Status; }
VOID GetCommandLineString( IN LPWSTR CommandLine, IN DWORD dwSize ) { NTSTATUS Status; HANDLE hkRegistry; WCHAR awchBuffer[ 512 ]; DWORD dwRet;
dwRet = GetSystemDirectoryW(CommandLine, dwSize); if (dwRet) { CommandLine[dwRet++] = L'\\'; CommandLine[dwRet] = L'\0'; dwSize -= dwRet;
} else { CommandLine[0] = L'\0'; }
Status = MyRegOpenKey(NULL, MACHINE_REGISTRY_CONSOLE, &hkRegistry); if (NT_SUCCESS( Status )) { Status = MyRegQueryValue(hkRegistry, MACHINE_REGISTRY_CONSOLEIME, sizeof(awchBuffer), (PBYTE)&awchBuffer); if (NT_SUCCESS( Status )) { dwRet = wcslen(awchBuffer); if (dwRet < dwSize) { wcscat(CommandLine, awchBuffer); } else { CommandLine[0] = L'\0'; goto ErrorExit; } } else { goto ErrorExit; }
NtClose(hkRegistry); } else { goto ErrorExit; }
return;
ErrorExit: wcscat(CommandLine, L"conime.exe"); return; }
DWORD ConsoleIMERoutine( IN LPVOID lpThreadParameter )
/*++
Routine Description:
This thread is created when the create input thread. It invokes the console IME process.
Arguments:
lpThreadParameter - not use.
Return Value:
STATUS_SUCCESS - function was successful
--*/
{ NTSTATUS Status; BOOL fRet; static BOOL fInConIMERoutine = FALSE;
DWORD fdwCreate; STARTUPINFOW StartupInfo; STARTUPINFOW StartupInfoConsole; WCHAR CommandLine[MAX_PATH*2]; PROCESS_INFORMATION ProcessInformation; HANDLE hEvent; DWORD dwWait;
Status = STATUS_SUCCESS;
//
// Prevent the user from launching multiple applets attached
// to a single console
//
if (fInConIMERoutine) { return (ULONG)STATUS_UNSUCCESSFUL; }
fInConIMERoutine = TRUE;
//
// Create event
//
hEvent = CreateEventW(NULL, // Security attributes
FALSE, // Manual reset
FALSE, // Initial state
CONSOLEIME_EVENT); // Event object name
if (hEvent == NULL) { goto ErrorExit; } if (GetLastError() == ERROR_ALREADY_EXISTS) { goto ErrorExit; }
//
// Get Console IME process name and event name
//
GetCommandLineString(CommandLine, sizeof(CommandLine)/sizeof(WCHAR));
GetStartupInfoW(&StartupInfoConsole); RtlZeroMemory(&StartupInfo, sizeof(StartupInfo)); StartupInfo.cb = sizeof(StartupInfo); StartupInfo.wShowWindow = SW_HIDE; StartupInfo.dwFlags = STARTF_FORCEONFEEDBACK; StartupInfo.lpDesktop = StartupInfoConsole.lpDesktop;
//
// create Console IME process
//
fdwCreate = NORMAL_PRIORITY_CLASS | CREATE_DEFAULT_ERROR_MODE | CREATE_NEW_PROCESS_GROUP; fRet = CreateProcessW(NULL, // Application name
CommandLine, // Command line
NULL, // process security attributes
NULL, // thread security attributes
FALSE, // inherit handles
fdwCreate, // create flags
NULL, // environment
NULL, // current directory
&StartupInfo, // Start up information
&ProcessInformation // process information
); if (! fRet) { Status = GetLastError(); } else { dwWait = WaitForSingleObject(hEvent, 10 * 1000); // wait 10 sec for console IME process
if (dwWait == WAIT_TIMEOUT) { TerminateProcess(ProcessInformation.hProcess, 0); } CloseHandle(ProcessInformation.hThread) ; CloseHandle(ProcessInformation.hProcess) ; }
CloseHandle(hEvent);
ErrorExit:
fInConIMERoutine = FALSE;
return Status; }
#endif //!defined(BUILD_WOW6432)
#endif // FE_IME
#else // FE_SB
// Followings are stub functions for FE Console Support
#if !defined(BUILD_WOW6432)
BOOL APIENTRY GetConsoleNlsMode( IN HANDLE hConsoleHandle, OUT LPDWORD lpNlsMode )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
lpNlsMode - Supplies a pointer to the NLS mode.
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ return FALSE; }
BOOL APIENTRY SetConsoleNlsMode( IN HANDLE hConsoleHandle, IN DWORD dwNlsMode )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
dwNlsMode - Supplies NLS mode.
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ return FALSE; }
BOOL APIENTRY GetConsoleCharType( IN HANDLE hConsoleHandle, IN COORD coordCheck, OUT PDWORD pdwType )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
coordCheck - set check position to these coordinates
pdwType - receive character type
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ return FALSE; }
BOOL APIENTRY SetConsoleLocalEUDC( IN HANDLE hConsoleHandle, IN WORD wCodePoint, IN COORD cFontSize, IN PCHAR lpSB )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
wCodePoint - Code point of font by Shift JIS code.
cFontSize - FontSize of Font
lpSB - Pointer of font bitmap Buffer
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ return FALSE; }
BOOL APIENTRY SetConsoleCursorMode( IN HANDLE hConsoleHandle, IN BOOL Blink, IN BOOL DBEnable )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
Blink - Blinking enable/disable switch.
DBEnable - Double Byte width enable/disable switch.
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ return FALSE; }
BOOL APIENTRY GetConsoleCursorMode( IN HANDLE hConsoleHandle, OUT PBOOL pbBlink, OUT PBOOL pbDBEnable )
/*++
Parameters:
hConsoleHandle - Supplies a console input or output handle.
Blink - Blinking enable/disable switch.
DBEnable - Double Byte width enable/disable switch.
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ return FALSE; }
BOOL APIENTRY RegisterConsoleOS2( IN BOOL fOs2Register )
/*++
Description:
This routine registers the OS/2 with the console.
Parameters:
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ return FALSE; }
BOOL APIENTRY SetConsoleOS2OemFormat( IN BOOL fOs2OemFormat )
/*++
Description:
This routine sets the OS/2 OEM Format with the console.
Parameters:
Return Value:
TRUE - The operation was successful.
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ return FALSE; }
#endif //!defined(BUILD_WOW6432)
#if defined(FE_IME)
#if !defined(BUILD_WOW64)
BOOL APIENTRY RegisterConsoleIME( IN HWND hWndConsoleIME, OUT DWORD *dwConsoleThreadId )
/*++
Description:
This routine register the Console IME on the current desktop.
Parameters:
Return Value:
TRUE - The operation was successful.
FALSE - The operation failed.
--*/
{
return FALSE;
}
BOOL APIENTRY UnregisterConsoleIME( )
/*++
Description:
This routine unregister the Console IME on the current desktop.
Parameters:
Return Value:
TRUE - The operation was successful.
FALSE - The operation failed.
--*/
{
return FALSE;
}
#endif //!defined(BUILD_WOW64)
#endif // FE_IME
#endif // FE_SB
|