Click or drag to resize

Ansi2OemBuff Function

X#
Convert a specified number of ANSI characters in a source buffer to a buffer of corresponding OEM characters.

Namespace:  XSharp.Core
Assembly:  XSharp.Core (in XSharp.Core.dll) Version: 2.19
Syntax
 FUNCTION Ansi2OemBuff(
	pszTarget AS BYTE[],
	pszSource AS BYTE[],
	dwCount AS DWORD
) AS BYTE[]
Request Example View Source

Parameters

pszTarget
Type: Byte
A pointer to the buffer that will contain the converted string.
pszSource
Type: Byte
A pointer to the buffer that contains the string to convert.
dwCount
Type: DWord
The number of characters to convert.

Return Value

Type: Byte
A pointer to the buffer that contains the converted string.
Remarks
Ansi2OemBuff() is similar to Ansi2Oem(), except that the resulting string is stored in the buffer pointed to by pszTarget.
Also, the dwCount argument lets you specify the number of characters to be converted.
Tip Tip
You are responsible for allocating space for the buffer pointed to by pszTarget.
Using an unallocated buffer pointer can have adverse results.
Remarks
Caution note Caution
The Ansi2Oem() and Oem2Ansi() family of functions are compatibility functions. Do not use them unless you really have to. X# is a Unicode language and conversions from Unicode - Ansi - Oem - Unicode will take place if you use these functions.
You should also realize that Ansi2Oem(Oem2Ansi(cSource)) will not always return cSource. Some characters may not be available in the OEM codepage and could be translated to other characters. For example: Windows codepage 1252 has Capital E Umlaut (Ë) on position 203. When translated to OEM codepage 437 this will become capital E without umlaut (69). Converting back to Ansi this will remain a E without umlaut.
Examples
This example uses Ansi2OemBuff() to convert the contents of the ANSI string "ßä" to the OEM character set. Note that the source string is also used as a target string:
X#
1LOCAL cStr := "ßä"
2Ansi2OemBuff(PSZ(_CAST, cStr), PSZ(_CAST, cStr), SLen(cStr))
See Also