Microsoft KB Archive/107698

= MultLing.exe - Multilingual OLE Automation Object =

Article ID: 107698

Article Last Modified on 8/9/2004

-

APPLIES TO

 Microsoft OLE 2.03 Microsoft OLE 4.0, when used with:  Microsoft Windows NT 4.0

 Microsoft Windows NT 3.51 Service Pack 5

 Microsoft Windows 95 </li></ul>

-

<div class="notice_section">

This article was previously published under Q107698

<div class="summary_section">

SUMMARY
MultLing.exe demonstrates how to create an OLE automation object that supports multiple languages. This allows the controller of an automation object to access properties and methods using any of the languages that are supported.

<div class="moreinformation_section">

MORE INFORMATION
The following files are available for download from the Microsoft Download Center:

MultLing.exe

For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to Obtain Microsoft Support Files from Online Services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.

This multilingual OLE automation object sample checks the Locale ID (LCID) passed methods of the IDispatch interface to determine the language being used by the automation controller. The object supports access of properties and methods in English, French, and German.

One Type Library Per Language
The automation object registers three different type libraries in the registration database--one for each supported language. The type libraries have the same UUIDs but different locale attributes. Each type library is loaded at object creation and the ITypeInfo interface is obtained from each as follows (see LoadTypeInfo in MAIN.CPP): LoadRegTypeLib(LIBID_Hello, 1, 0, lcid, &ptlib); ptlib->GetTypeInfoOfGuid(IID_IHello, &ptinfo); Also see ENGLISH.ODL, FRENCH.ODL, GERMAN.ODL, and HELLO.REG.

Interpret LCID in IDispatch Methods
The implementation of IDispatch::GetTypeInfo, GetIDsOfNames, and Invoke checks the value of the lcid parameter to determine the locale ID and uses the appropriate ITypeInfo for that language (See CHello::GetTypeInfo, GetIDsOfNames, and Invoke in HELLO.CPP).

To Run
The multilingual automation object exposes one VT_BSTR property (HelloMessage) and one method (SayHello). ProgID                 :  HelloMultiLingual.Hello <pre class="fixed_text">Method and Property Names:

English        French         German          Action

HelloMessage   SalutMessage   HalloNachricht  Sets or gets the HelloMessage string. SayHello       DitSalut       SagHallo        Displays the HelloMessage in an edit control. Use the AUTOCTRL sample to control the multilingual automation object. The AUTOCTRL automation controller allows the locale ID to be specified.

Update the path in HELLO.REG to the current location of the object and the type libraries.

To Compile
Requires OLE 2.01 or later.

Include device=vmb.386 in the [386Enh] section of SYSTEM.INI.

NOTE: vmb.386 can be found in \OLE2\BIN. Run the WXSERVER.EXE from \OLE2\BIN before running the makefile.

Additional query words: multi-lingual MultLing

Keywords: kbdownload kbfile kbautomation kbsample KB107698

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.