MultLing.exe - Multilingual OLE Automation Object

ID: Q107698


The information in this article applies to:
  • Microsoft OLE Libraries for Windows and Win32s
  • Microsoft OLE Libraries, used with:
    • Microsoft Windows NT, versions 3.5, 3.51
    • Microsoft Windows 95


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.


MORE INFORMATION

The following files are available for download from the Microsoft Download Center. Click the file names below to download the files:


MultLing.exe

For more information about how to download files from the Microsoft Download Center, please visit the Download Center at the following Web address

http://www.microsoft.com/downloads/search.asp
and then click How to use the Microsoft Download Center.

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 

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

Keywords : kbfile kbsample kbAutomation kbNTOS350 kbNTOS351 kbOLE200 kbWinOS95 kbGrpCom kbDSupport
Version : WINDOWS:95; :
Platform : WINDOWS
Issue type :


Last Reviewed: December 13, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.