MLang

This section covers the functionality provided by MLang, which is intended to help developers solve problems presented by the international scope of the Internet. These tools allow a developer to deal with a variety of international and multilingual issues. MLang provides:

  • Code page and locale enumeration from the MIME database.
  • Code page, locale, and character set information retrieval.
  • Character set conversion between different multibyte character sets, as well as to and from Unicode.
  • A method of working with a set of code pages at once.
  • A way to determine which code pages contain a given character or string.
  • Detection of which possible code pages and languages text data is written in.
  • Custom font creation to display characters from a variety of character sets at once.
  • Locale-aware line breaking for console-based applications.

The following sections describe the services that are exported by the Mlang.dll dynamic-link library.

Overviews/Tutorials

Topic Contents
How to Break Text Based on Locale

Different languages might have different rules for hyphenation, spacing, and where a line should be broken on a page. For this reason, the MLang IMLangLineBreakConsole interface provides a locale-aware line-breaking functionality for console-based applications.

How to Enumerate Code Pages and Locales

MLang provides two enumeration objects that can be used to retrieve the code pages and locales that are recognized by the system from the MIME database.

How to Use Font Linking

MLang implements a service called font linking to assist developers who must output strings that contain characters from a variety of character sets. This service creates a custom font that inherits from a specified source font. The IMLangFontLink interface contains the methods a client uses to perform font linking.

Introduction to MLang

MLang implements a set of services that is designed to help make software that interacts with Internet data more international. More specifically, MLang helps solve problems presented by the multilingual environment that exists for software today. This article describes the services that are provided by the MLang Component Object Model (COM) object.

MLang Functions

This section lists the MLANG exported functions. When an application uses these functions, it must have the source code page and the destination code page to pass as parameters.

 

Objects

Topic Contents
Code Page Enumeration

Retrieves a list of all the code pages the system recognizes.

Conversion

A conversion engine dedicated to a specified combination of source and destination code pages.

Locale Enumeration

Retrieves a sequence of RFC1766INFO structures.

MultiLanguage

Provides access to all other objects and interfaces implemented by MLang. The MultiLanguage object is the primary MLang object.

Script Enumeration

Retrieves a list of all the scripts on the system.

 

Interfaces

Topic Contents
IEnumCodePage

Gets information about many code pages at one time or determines which code pages fit a certain flag.

IEnumRfc1766

Creates a list of all locale identifiers (LCIDs) in the MIME database.

IEnumScript

Enumerates the scripts on the system.

IMLangCodePages

Provides the foundation of the IMLangFontLink interface and implements methods for working with code pages.

IMLangConvertCharset

Converts a string from one code page to another.

IMLangFontLink

Implements a set of services that allow an application to use font linking.

IMLangFontLink2

Implements a set of services that allow an application to use font linking.

IMLangLineBreakConsole

Provides a console-based, line-breaking service.

IMLangString

Not implemented.

IMLangStringAStr

Not implemented.

IMLangStringBuf

Not implemented.

IMLangStringNotifySink

Not implemented.

IMLangStringWStr

Not implemented.

IMLStrAttr

Not implemented.

IMLStrAttrAStr

Not implemented.

IMLStrAttrLocale

Not implemented.

IMLStrAttrLong

Not implemented.

IMLStrAttrNotifySink

Not implemented.

IMLStrAttrWStr

Not implemented.

IMultiLanguage

Collects information about character sets, code pages, or locales from the MIME database; and converts strings from one character set to another.

IMultiLanguage2

Collects information about character sets, code pages, or locales from the MIME database; and converts strings from one character set to another.

IMultiLanguage3

Extends the IMultiLanguage2 interface by adding outbound text detection functionality to it.

 

Functions

Topic Contents
ConvertINetMultiByteToUnicode

Translates a source string to a Unicode string and returns the result to a buffer.

ConvertINetString

Performs character set conversion between a given source code page identifier and a destination code page identifier.

ConvertINetUnicodeToMultiByte

Translates a character stream in Unicode to the specified destination code page.

IsConvertINetStringAvailable

Verifies that the specified character set conversion can be performed.

LcidToRfc1766

Translates a Windows locale identifier (LCID) to a human-readable name that conforms to RFC-1766.

Rfc1766ToLcid

Translates a conforming RFC-1766 name to a locale identifier (LCID) value.

 

Structures

Topic Contents
DetectEncodingInfo

Contains the results of code page detection by the IMultiLanguage2::DetectCodepageInIStream and IMultiLanguage2::DetectInputCodepage methods.

MIMECPINFO

Contains detailed information gathered from the MIME database about a given code page.

MIMECSETINFO

Contains information about a given charset.

RFC1766INFO

Contains information about a given locale identifier value (LCID), including the corresponding RFC1766-conforming name.

SCRIPTFONTINFO

Contains the information about the specified script.

SCRIPTINFO

Contains the information about the specified script.

UNICODERANGE

Contains the Unicode range supported by a particular font.

 

Enumerations

Topic Contents
MIMECONTF

Used as a member of the MIMECPINFO structure to specify the possible uses of a code page.

MLCONVCHAR

Used as an inbound or outbound flag for character set conversion.

MLCP

Used with the IMultiLanguage3::DetectOutboundCodePage and IMultiLanguage3::DetectOutboundCodePageInIStream to control the behavior of the methods.

MLDETECTCP

Used with the code page detection methods IMultiLanguage2::DetectInputCodepage and IMultiLanguage2::DetectCodepageInIStream to specify the type of the incoming data.

SCRIPTCONTF

Contains the script identifiers.

SCRIPTFONTCONTF

Contains the script font values.