Apple Mac OS X iMessage Configuration for Additional Email Accounts

20140226we-apple-support-tips-500x500

Summary

It’s possible to setup iMessage to function with other email addresses. For example, if someone uses your email address (instead of your mobile phone number) to send you a text message (instead of sending you an email to your email address) it’s possible to configure iMessage to recognize that and deliver that text message to the iMessage program on your iOS device(s). This requires an existing Apple iMessage account.

Instructions

Follow these instructions to configure iMessage to function with an additional email address.

  1. Start iMessage on your Apple computer. Do this by clicking on the Messages icon in your Applications list.
  2. From the Messages menu, choose Preferences.
  3. Click on the Accounts tab.
  4. Choose your iMessage account listed in the left column.
  5. Click on the Add Email button on the right.
  6. Type the new email address in the space provided. Once entered, that address will be gray with a message next to it saying Email Sent. It will remain gray and unchecked until you confirm that you’re the owner of that account.
  7. A message will be sent to this new email address. Be sure to check your Junk folder in case it isn’t delivered directly to your inbox. To ensure proper delivery, you may want to add this email address to your contacts: appleid@id.apple.com
  8. You’ll receive an email in the email account for the address you just added in step #6 above. Click the link that says Verify Now >
  9. The link will send you to the My Apple ID page on Apple’s website. Login with your Apple ID cloud account. This step, and the previous two steps, ensure that you are the authentic owner of the email address and also of the Apple cloud account being used.
  10. You should get a message on screen that says, Email address verified.
  11. In iMessage Preferences, the new email address should no longer be gray, but instead be black with a checkmark next to it.

Apple Mac OS X Mavericks v10.9.2 Update Fixes SSL Security and Other Issues

20140226we-apple-computer-security-500x500

It’s Time to Update Your Apple Mac Computer

There’s an important security update available for your Apple Mac computer, assuming you’re using Apple OS X Mavericks v10.9.x. To update, go to the Apple menu (upper right corner) and then click on Software Update (second option from the top). You’ll need to restart the computer to complete the update. So, finish and save all work before starting.

Update Summary

The OS X Mavericks v10.9.2 Update is recommended for all OS X Mavericks users. It improves the stability, compatibility, and security of your Mac. (source)

Update Highlights:

  • Adds the ability to make and receive FaceTime audio calls
  • Adds call waiting support for FaceTime audio and video calls
  • Adds the ability to block incoming iMessages from individual senders
  • Includes general improvements to the stability and compatibility of Mail
  • Improves the accuracy of unread counts in Mail
  • Resolves an issue that prevented Mail from receiving new messages from certain providers
  • Improves AutoFill compatibility in Safari
  • Fixes an issue that may cause audio distortion on certain Macs
  • Improves reliability when connecting to a file server using SMB2
  • Fixes an issue that may cause VPN connections to disconnect
  • Improves VoiceOver navigation in Mail and Finder
  • Improves VoiceOver reliability when navigating websites
  • Improves compatibility with Gmail Archive mailboxes
  • Includes improvements to Gmail labels
  • Improves Safari browsing and Software Update installation when using an authenticated web proxy
  • Fixes an issue that could cause the Mac App Store to offer updates for apps that are already up to date
  • Improves the reliability of diskless NetBoot service in OS X Server
  • Fixes braille driver support for specific HandyTech displays
  • Resolves an issue when using Safe Boot with some systems
  • Improves ExpressCard compatibility for some MacBook Pro 2010 models
  • Resolves an issue which prevented printing to printers shared by Windows XP
  • Resolves an issue with Keychain that could cause repeated prompts to unlock the Local Items keychain
  • Fixes an issue that could prevent certain preference panes from opening in System Preferences
  • Fixes an issue that may prevent migration from completing while in Setup Assistant
  • Provides a fix for SSL connection verification

Connecting an iPad Mini, iPad Air, iPhone, or iPod to an External VGA Computer Display

20140225tu-mobile-technology-tips-500x500

Summary

This mobile technology tip provides you with what you need to know to connect an Apple mobile device to an external display.

Shopping List

To make the connection, you’ll need the following:

Steps

Follow these steps to connect everything:

  1. Plug the VGA cable into the computer display.
  2. Plug the Lighting to VGA Adapter into the iPad (or similar device).
  3. Plug the USB Lighting Power Cord into the Adapter so the iPad continues to get a charge and then have the other end plugged into a power adapter.

Windows Computer Setup and Configuration Tasks Checklist for Rebuilding or Setting up New Computers

20131028mo-windows-computer-setup-and-configuration-tasks-640x360

Update

Click here for a revised version of the setup checklist.

Overview

When a computer is purchased new from the store, or if one is being rebuilt by having Windows reinstalled, there are some standard tasks that generally get performed. This page provides suggested guidelines for setting up a computer from the point of reinstalling Windows on a fresh hard drive, or when setting up a refurbished or new computer for the first time.

Time and Cost Required

This process takes about 3 hours of time cumulatively (of actual hands-on), but could span over several days if a person is doing other things while they wait for updates and other processes to complete.

  • For example, working on a computer 10 minutes in one sitting, then 20 minutes sometime later in the day, then 30 minutes later that day, etc. Perhaps 18 of these little sessions could add up to 3 hours total.
  • If data transferring is required, this will take additional waiting time for files to copy.
  • Additional time will be needed for installing software such as Microsoft Office, or office management software (financial, medical, etc.).

Preparation

These initial steps below assume an installation (upgrade) on an old computer that needs to be wiped off and setup again.

  • If Using Existing Drive. If you plan to erase a computer’s existing hard drive and perform a fresh installation of Windows, backup all data first and then install Microsoft Windows 7 [Buy] or Windows 8.1 operating systems. Choose to format the drive for a clean installation.
    • When to Choose This Option. This process is sometimes necessary if a system has become corrupted or infected with a virus.
  • If Replacing Hard Drive. If performing a hard drive replacement, perhaps due to a hard drive crash, remove the old drive and install new drive. If the old drive has crashed, it could be sent to a data recovery center if files need to be recovered.
    • When to Choose This Option. This process is sometimes necessary if your system is messed up and you’d like to take the opportunity to upgrade the drive while installing everything fresh. If your old drive is readable (but perhaps not bootable), you could use an external drive dock or drive enclosure to read files from it.
  • If Working on a New Computer. If you are beginning with a new or refurbished computer, create an image backup using a bootable CD copy of Acronis True Image. This will allow you to restore the computer to like-new condition in the event of a hard drive crash, virus infection, or other system malfunction.
    • Note: Some new computers allow you to create recovery media. If you have this option, then you might ignore the image backup with Acronis at the beginning of this process. However, it may still be useful to make an image backup after you’ve configured your computer and installed all the software described below. That way, a recovery would include all of this work.

Run or Save

When installing downloaded software, you’ll  have an option to Run or Save (and then Run). Saving the software first can be helpful because it’s a record of what’s been installed and it also makes it easier next time if you need to install the software again — or copy it for someone else to use (since these are free programs).

Setup Process

  1. Network Connection. Ideally you’ll want to connect to a fast Ethernet wired Internet connection since there are quite a few large downloads and updates. If that’s not available, then use a wireless connection. When Windows detects a new network connection has been established, it will ask you to define it as public, work, or home. Choose Work in most circumstances, even if you’re on a home network. The Home setting assumes you’d like to share files and printers.
    • Network Adapter Note: If you’re setting up an older refurbished computer using the reinstallation CD, it may be necessary to cross reference the computer serial number to obtain the original system configuration information as well as the network card drivers. Alternatively, if you have a USB to Ethernet adapter with software on CD, you can use that to get connected, and then use the manufacturer’s system information scanner to determine the current configuration.
    • Video Adapter Note: After installing the network card drivers, the next software download needed is the specialized video card drivers if available. This will help the video card run faster and provide you with greater control over video. You can obtain this from the manufacturer’s website.
  2. Shortcut to This Page. Since you’ll be returning to this list repeatedly, it would be helpful to have a shortcut on the desktop to this page.
  3. Make, Model, and Serial Number. It’s important to make a record of the computer serial number because this helps in uniquely identifying the system and looking up pertinent support documents online if needed.
  4. Computer Name. Change the computer name by right clicking on Computer and going to Properties. Typically the default computer name will be something the manufacturer configured.
  5. Remote Access. Install the full version of Teamviewer and configure it for remote access. This allows for the remote management and monitoring during lengthy updates and software installation. When you’re completely done setting up the computer, remove the full version and setup TeamViewer QS (Quick Start) for any future support needs.
  6. Power Options. Change power options for maximum performance and turn off automatic sleep. This ensures ongoing access when remotely checking on lengthy software installations and updates. Once setup is complete, power management can be set to a more energy efficient configuration.
  7. Start to Desktop. Windows 8.1 includes the option to start to the desktop. Right click on the task bar and on the Navigation tab choose/click the option, “When I sign in or close all apps on a screen, go to the desktop instead of Start.”
  8. Recovery Media. Dell and other manufacturers offer an option to create recovery media. A USB flash drive is smaller and faster for this purpose, although DVDs may be less expensive. Since the recovery media is something hopefully you’ll never need, you may not want to spend $15 to $20 on a USB flash drive for this purpose.
    • It’s helpful to have a Lightscribe drive and compatible media for labeling these disks. A Lightscribe system can use the laser to etch text and graphics onto a disc. This is preferred to printing to a disc surface. Otherwise, a sharpie marker and regular media will do.
  9. Windows 8 Start Screen. If you’re working with Windows 8 it will be helpful to organized the Start Menu. You can do this by clicking and dragging icon/tiles as well as right click to resizing them and see customize options. You can right click and then using Control+Left Click, select many tiles, then reduce their size all at one time. Some people may find it helpful to have the Desktop tile/icon set to the maximum size and placed in the top left position for easy access.
    • Depending on the brand of computer, there may be a variety of vendor specific apps included with the computer. These, as well as the Windows 8 specific apps, are probably not going to be used frequently. Until a decision is made about whether to keep them on the Start Menu or not, it’s possible to reduce their tile/icon size and group them.
    • For most users, it’s useful to have programs grouped into at least two categories: Windows 8 Apps and Windows Apps. The difference is that Windows 8 Apps fill the screen and have a minimalist interface — typically no familiar text drop-down menu at the top of the screen and no familiar window sizing options in the upper right. This is because they are designed to be optimized for tablet and smartphone where screen real-estate is a premium and multiple windows aren’t practical. Some people may want to avoid these altogether and only use the desktop-optimized Windows apps that are familiar.
  10. Maintenance User Account. Create a local Maintenance account for system administration tasks. This is helpful for troubleshooting or if the user’s primary account becomes corrupted for some reason.
  11. Visitor User Account. Create a local Visitor account with standard access for limited use. This can significantly reduce future service calls if younger people, friends, family, and other visitors use an account with “Standard” access rights. It restricts what the account can do and also helps put a firewall around the account if a virus tries to launch or install.
  12. Other User Accounts. Create user accounts for each user of the computer or a shared account, depending on user preference.
    • Separate Accounts. Separate user accounts are nice for computers being used by several individuals where each person may want their own Internet bookmarks/favorites, personalized organization of folders, and other customizations. Windows is increasingly becoming custom tailored for each user who has logged in. This will import contacts, calendar, email, files, and settings from the web.
    • Shared Account. For people who are sharing the same files, email account, Internet bookmarks/favorites, and may want to collaborate on projects, having a shared account is okay and it doesn’t require a logout and login before using the computer (if changing from one user to another).
    • Default Account. This is a good time to remove any default user account that came with your computer. For example, some refurbished computers may come with an account called User or User1.
  13. Remove Unnecessary Software. If applicable (for new computers from retail stores), remove any unnecessary demo or trial versions of software. Extra programs can slow down the computer. If you’re working on a refurbished computer, it may only have Windows installed and a minimal set of hardware drivers. This is actually an advantage.
  14. Mozilla Firefox. Install the Mozilla Firefox browser. It’s important to have alternative browsers available as a backup in case the primary browser fails, doesn’t perform properly, or becomes infected.
  15. Google. Make Google the default search engine and startup for Internet Explorer. MSN with Bing is the default. Using MSN as a startup page takes longer to load because of all the images and ads.
  16. Google Chrome. Install the Google Chrome browser. It’s important to have alternative browsers available as a backup in case the primary browser fails, doesn’t perform properly, or becomes infected.
  17. AntiVirus. Install Microsoft Security Essentials if you have Windows 7. This is already included with Windows 8.
  18. Windows Live Essentials. Install the Windows Live Essentials software bundle which includes programs for video editing, photo editing, email, and more. This is already included with Windows 8.1.
    • When the installation is complete, click the Done button.
    • After a short while, the Microsoft Service Agreement will show up. Click Accept.
    • Next, the “Have we met before?” login window will show up. Close the window by clicking the “X” in the upper right corner. When asked, “Are you sure you want to cancel?” click the Yes button.
    • Next, the “Sign in to Windows Live Messenger” window should appear. Click on the blue “Options” text link. Under Sign-in, General, remove the check mark next to “Start Messenger when I log on to my computer.” Click Okay. Close the window by clicking the “X” in the top right corner.
    • If you see a browser message at the bottom of your browser window about the “Windows Live ID Sign-in Helper” add-on from Microsoft…” click the Enable button.
  19. Adobe Flash. Install Adobe Flash. This is already included with Windows 8. When installing Adobe Flash, you can remove the check mark next to “Yes, install Google Chrome as my default browser…”
  20. Adobe Reader. Install Adobe Reader. If you need to display asian and extended language fonts, click here for instructions. When installing Adobe Reader, you can remove the check mark next to “Yes, install Google Chrome as my default browser…”
  21. Microsoft Silverlight. Install Microsoft Silverlight for viewing animation, videos, and other web-based programs.
  22. Windows Updates. Install any needed Windows updates. You’ll find Windows Update under the Start Menu – not listed under any folders, but listed in the top list of programs. It may be necessary to run Windows Update again, and keep checking Windows updates repeatedly until all updates are installed. Be sure to updates for all Microsoft products. This requires clicking on the appropriate link in the update window.
    • Bing Desktop. Choosing to install updates for all Microsoft products will include Bing Bar and Bing Desktop. Install these and then once they are installed, disable them. During the Bing Desktop installation, remove all checkmarks for the various Bing options.
    • Bing Bar. Once Bing Bar is installed, click the settings gear icon, and choose to not run Bing Bar when Windows starts. Then exit Bing Bar by right clicking the program icon in the bottom of the screen and choosing Exit.
    • Skype. Be default, Skype will be listed among the standard Widows updates. Right click and choose to ignore this unless the person needs Skype.
  23. Avast AntiVirus. Install Avast AntiVirus software or another top rated antivirus and Internet security program. It’s important to have a program that also helps prevent attacks through phishing or malicious websites. So, a more comprehensive paid program is probably worth is. Avast offers a paid version, as do the other programs out there.
  24. Product Support Shortcut. Most manufacturers have a method for obtaining detailed support, software, downloads, and documentation for your specific computer. The Dell Support Page, for example, lets you enter the Service Tag or Express Service Code for a computer, and then provides a web page (with the serial number in the address) showing your product configuration and support materials. You can save a link to this page on the desktop for easy access in the future. Putting this on the desktop in the Maintenance user account is best.
  25. Remove TeamViewer and Install TeamViewerQS. The most recent versions of TeamViewer are persistent (they run when Windows starts) and by necessity they retain the password for unattended access (if that is configured). While this is secure, a more secure practice is to remove the full version of TeamViewer and replace it with the QuickStart version found on the download page under the heading, “For the instant customer: TeamViewer QuickSupport.” This will allow the computer owner to request support whenever needed, but the password will be randomly generated.

Additional Optional Setup

The following options are less critical and will likely be unique to each user’s preference and needs.

  1. Apple QuickTime. Install the Apple Quick Time Player software. Choose QuickTime 7.7.5 for Windows (or later).
  2. Apple iTunes. Install iTunes if you would like to have the Apple iTunes store and software for purchasing and playing music, reading books, watching movies, etc. You may want to use this if you have an iPod, iPhone, or iPad.
  3. Google Picasa. Install Google Picasa photo editing software.
  4. VLC Video Player. Install the VLC Player for playing a variety of video formats.
  5. Audacity. Install Audacity if audio recording and editing are desired.
  6. Libre Office. Install Libre Office if you’d like a free alternative to Microsoft Office.
  7. Microsoft Office. Purchase Office 365 for a cost of $100 a year for up to five computers. This isn’t required, but may be necessary if you absolutely need to use Microsoft Office software products.
  8. Additional Software. Install software for printers, scanners, and other peripherals.

Input Method Editors (IMEs) for Asian Script Language Input Fonts and Characters

Overview and Description

Because Windows 2000 and Windows XP allow the user to enter multiple languages using a variety of input methods, the system needs to know which in put method should be active for a particular language. These associations are called “installed language and method pairs,” or “input languages” (called “input locales” in Windows 2000). During installation, the default input language for the language version of the operating system, along with English, is installed for each user. The user can then define the list of input languages to be made available for his or her own account and usage. For example, on the same machine, one user can have an English keyboard layout and a Japanese IME installed, and another user can have both French and Arabic keyboard layouts installed. This customization is done by adding or removing input languages and using them on the fly from the Regional And Language Options property sheet, provided that the language support of the target language has already been installed.

Figure 1: Each user can add and remove input languages from the Languages tab of the Regional And Language Options property sheet.

Figure 1: Each user can add and remove input languages from the Languages tab of the Regional And Language Options property sheet.


The default input language is the input language that is active when a new application thread is started. Switching to a different input language is done on a per-thread basis; you can have two different input languages in two different applications. The taskbar indicates which input language is currently active. For example, in Figure 5-2, English is the input language that is currently active. When the user clicks the language indicator in the taskbar-each language is represented by its two-letter abbreviation-Windows 2000 and Windows XP present a list of alternatives such as Japanese, French (Canada), and so on.

Figure 2:  List of available input languages, with English being the one that is currently active for this particular user.

Figure 2: List of available input languages, with English being the one that is currently active for this particular user.


The shortcut keys iterate through the list of installed language and method pairs in the order in which they were added via the Regional And Language Options property sheet. If the user has selected Left Alt+Shift in the Advanced Key Settings dialog box, Left Alt+Shift will allow the user to toggle between different installed input languages.

Figure 3: Switching between various input languages in Windows XP.

Figure 3: Switching between various input languages in Windows XP.


Having gained an understanding of how the user can customize a list of input languages and switch from one input language to another, you’ll now see the most efficient ways to work with input languages from a developer’s standpoint. Taking advantage of system support will go a long way toward making your job easier.

Input Method Editors

IMEs are components that allow the user to enter the thousands of different characters used in East Asian languages using a standard 101-key keyboard. The user composes each character in one of several ways: by radical, by phonetic representation, or by typing in the character’s numeric code-page index. IMEs are widely available; Windows 2000 and Windows XP ship with standard IMEs that are based on the most popular input methods used in each target country, and a number of third-party vendors sell IME packages.

An IME consists of an engine that converts keystrokes into phonetic and ideographic characters, plus a dictionary of commonly used ideographic words. As the user enters keystrokes, the IME engine attempts to guess which ideographic character or characters the keystrokes should be converted into. Because many ideographs have identical pronunciation, the IME engine’s first guess isn’t always correct. When the suggestion is incorrect, the user can choose from a list of homophones; for more advanced IMEs, the homophone that the user selects then becomes the IME engine’s first guess the next time around. This process is summarized in Figure below:

Figure 4: The process through which an IME engine converts keystrokes into ideographic characters.

Figure 4: The process through which an IME engine converts keystrokes into ideographic characters.


 

East Asian Writing Systems

Chinese, Japanese, and Korean writing systems all offer some interesting complexities not found in Latin writing systems. To put things in clearer context, it will be useful for you to have an idea of what these complexities entail.

Chinese: Three forms of ideographic characters are commonly used today in the world: Traditional Chinese, Simplified Chinese, and kanji (which is used for Japanese). Traditional Chinese characters, which are thousands of years old and have kept their original shapes, generally contain more strokes than other ideographic forms, and are more pictorial. These characters are typically used in Taiwan. Simplified Chinese characters, which are based on Traditional Chinese characters, were developed in mainland China to make reading and writing easier to learn. Although Traditional Chinese and Simplified Chinese share some characters, the simplified characters, of which there are less than 7,000, are composed of fewer strokes and in most cases are distinct from their original counterparts. This is why software products developed for the Chinese-speaking market are usually released in two editions-one for the Traditional Chinese script and one for the Simplified Chinese script.

Japanese: Japanese characters are called “kanji.” Japanese mixes kanji characters with characters from two syllabaries, collectively called “kana.” The two forms of kana are referred to as “hiragana” and “katakana.” Hiragana is a cursive script, commonly used in Japanese text to represent ending inflections for verbs and to write native Japanese words that have no kanji equivalent, such as “and,” “of,” and “to.” Katakana is chiefly used to represent words borrowed from other languages. All kana symbols, except for single-vowel characters and the character “n,” represent a consonant followed by one of five vowels. Hiragana and katakana both represent the entire Japanese script of sounds.

Korean: The Korean written language uses two types of characters: hangul and hanja. A hangul character is a single syllabic character created by combining one or more consonant signs and a vowel sign. There are 24 basic elements (14 consonants and 10 vowels), or phonemes, used to denote these signs; these elements are called “jamos.” You can create up to 51 jamos by combining two or more basic elements to form additional vowels or consonants, called “compounds.” Compounds and basic elements together comprise 21 vowels (10 basic vowels and 11 compound vowels) and 30 consonants (14 basic consonants and 16 compound consonants). A hangul character (syllabic) consists of an initial consonant, a medial vowel, and sometimes a final consonant. Nineteen of the 30 consonants can be initial consonants. All 21 vowels can be medial vowels, and 27 of the 30 consonants can be final consonants. This means that 11,172 hangul character combinations are possible, though far fewer are actually used. The Korean language also adopted hanja characters from Chinese and uses them for more formal written communication and to represent personal names. Most daily communication is written in hangul.

Ways to Enter Ideographs with an IME

With an IME you don’t have to use a localized keyboard to enter ideographic characters. While East Asian keyboards can generate phonetic syllables (such as kana or hangul) directly, the user can represent phonetic syllables using Latin characters. In Japanese, Latin characters that represent kana are called “romaji.” Japanese keyboards contain extra keys that allow the user to toggle between entering romaji and entering kana. If you are using a non-Japanese keyboard, you need to type in romaji to generate kana.

The best way to learn how an IME works from the user’s perspective is to try using it and to take advantage of the extensive Windows Help files. As a reference, the following sections look at how the Japanese IME that ships with Windows XP works.

The Standard Japanese IME for Windows XP

The Japanese IME for Windows XP, called “Microsoft IME 2002” (see Figure 5), has six standard input modes, listed in Table below. Additionally, IME 2002 contains an IME Pad that allows for alternative methods of input, and several other tools for handling both conversion into kanji and voice input. Although you will usually see IME 2002 the way it appears in Figure 5-8, it also has a drop-down menu that lists various input modes.

Figure 5: The Japanese IME Language bar.

Figure 5: The Japanese IME Language bar.


 

Table 1: The Japanese IME input modes

Table 1: The Japanese IME input modes


 

Figure 6: IME 2002 on Windows XP. The input modes are listed in the drop-down menu. The last input mode, called "direct input," turns off the IME, and keystrokes are sent to the application directly without being converted into phonetic syllables.

Figure 6: IME 2002 on Windows XP. The input modes are listed in the drop-down menu. The last input mode, called “direct input,” turns off the IME, and keystrokes are sent to the application directly without being converted into phonetic syllables.


 

Input of Japanese Characters

In order to begin entering Japanese characters in an application running on Windows XP, you need to activate the IME by selecting it from the list of input languages. When you activate the IME, the floating Language bar changes to the Japanese IME toolbar as you saw earlier. The table below shows what happens when you enter Japanese characters into an application running on Windows XP.

Table 2: How the Japanese IME works

Table 2: How the Japanese IME works


You can form a number of kanji characters before pressing Enter. The IME engine will attempt to convert your keystrokes into a “determined string” based on Japanese grammar rules. There are four different conversion modes that allow you some control as to where the IME gets its data to convert. (See Table 3 below.)

Table 3: Japanese IME conversion modes

Table 3: Japanese IME conversion modes


 

Top of pageTop of page

Techniques for Handling Input Languages in Win32

The Microsoft Developer Network (MSDN) documentation (found athttp://msdn2.microsoft.com) and programming APIs represent input languages with a variable type called “input locale identifier,” formally known in older documentation as “Handle to the Keyboard Layout” (HKL) and still used as the type identifier. HKL is an archaic name from a time when the only input was from a keyboard. The input locale identifier name is a 32-bit value composed of the hexadecimal value of the language identifier (low WORD) and a device identifier (high WORD). (See Figure 7 below.) For example, U.S. English has a language identifier of 0x0409, so the primary U.S. English layout is named “00000409.” Variants of the U.S. English layout (such as the Dvorak layout) are named “00010409,” “00020409,” and so on. The device identifier is not limited to keyboards and IMEs; data can now be entered by more sophisticated mechanisms such as voice- and text- recognition engines. For instance, Microsoft Windows Text Services Framework (TSF) – a system service available on Windows XP-enables advanced, source-independent text input. (For more information on TSF, see Text Services Framework).

Figure 7: The HKL variable, which represents input languages.

Figure 7: The HKL variable, which represents input languages.


The easiest way to handle input languages is to use the standard controls that the operating system provides whenever you are expecting user input. For example, by using Unicode edit controls or rich edit controls, you enable your application to handle multilingual text input. The operating system automatically handles input languages in a way that is transparent to your application. Text APIs uses a standard multiline edit control, which eliminates the hassle of dealing with input languages.

Advanced applications (such as a text editor) that need to have full control over how input languages are handled should monitor-and should be able to respond to-the user’s changes. When a user selects an input language by clicking on the language indicator of the taskbar or by pressing Left Alt+Shift, the input language is not automatically changed-either action generates a request that the active application must accept or reject. In response to the hot-key combination or the mouse click on the language indicator of the taskbar, the system sends a WM_INPUTLANGCHANGEREQUEST message to the window of focus, as figure below illustrates. If the application accepts the message and passes it to DefWindowProc, the system initiates switching the input language, sending a WM_INPUTLANGCHANGE message. The process is slightly different when the input method is a part of the Text Services Framework (TSF), in which case only a WM_INPUTLANGCHANGE is sent. When the system successfully completes the change, it generates a WM_INPUTLANGCHANGE message. The lParam variable of the WM_INPUTLANGCHANGE message contains the input locale identifier (that is, the HKL) of the new input language.

Figure 8: WM_INPUTLANGCHANGEREQUEST and WM_INPUTLANGCHANGE message propagation flowchart.

Figure 8: WM_INPUTLANGCHANGEREQUEST and WM_INPUTLANGCHANGE message propagation flowchart.


An application that does not support multiple languages will reject the WM_INPUTLANGCHANGEREQUEST message. It might reject any or all WM_INPUTLANGCHANGEREQUEST messages, or it might perform a couple of tests first. For example, the wParam variable of this message is a Boolean value-bLangInSystemCharset -that indicates whether the requested input language can be represented in the current system locale. Representing input languages is not a worry when dealing with Unicode applications, but non-Unicode applications should, in fact, monitor this value, or they will display the wrong characters.

Similar to the system generating a WM_INPUTLANGCHANGEREQUEST message in response to a user request, applications can also initiate input language changes by calling the ActivateKeyboardLayout API. This allows a user who is editing a document containing Latin and Greek text to automatically activate the Greek input method when moving the insertion point from the Latin text to the Greek text. (See Table 4 below.) Likewise, when this user moves the insertion point back to the Latin text, the application will activate the default Latin-based input method.

Figure 9: When the cursor is positioned in a Greek text stream, the active keyboard layout should switch to Greek.

Figure 9: When the cursor is positioned in a Greek text stream, the active keyboard layout should switch to Greek.


 

Other Win32 APIs that handle input methods are shown in Table 4 below:

Table 4

Table 4


When you design functionality to allow the user to switch keyboard layouts, keep in mind that because the letters on keyboards vary from layout to layout, the keys used to generate shortcut-key combinations might also vary. For example, the French keyboard defaults to the AZERTY layout, whereas the English layout follows a QWERTY mapping. Therefore, it is suggested that you use numbers and function keys (F4, F5, and so on) instead of letters in shortcut-key combinations.

In addition to enabling your application to handle varying input languages, you will also need to enable it to support IMEs. (Keep in mind that if you use standard APIs for input, your applications will automatically handle IMEs.) By enabling IME support, you allow the user to enter ideographs, for example, from various East Asian writing systems. The following sections explore what an IME does-with practical examples and technical solutions on the best ways to support IMEs.

How the IME System Works

The IME module in Windows 2000 and Windows XP fits into a larger mechanism for passing user input to applications and, like other input methods, the easiest and safest way of handling input is by using standard system controls such as edit fields and rich edit controls. Unless you are writing an IME package or customizing your IME user interface (UI), all of the IME complexities are taken care of for you if you use standard input APIs.

Whether an input language uses an IME or a keyboard to enter a language is something that is entirely transparent to the user. The procedure is the same whether the user is switching IMEs or Western keyboard layouts. Both actions are accomplished by clicking the language indicator on the taskbar or by entering a shortcut-key combination. Furthermore, it does not matter to an application which input method is used because switching IMEs generates the same messages as switching keyboard layouts: WM_INPUTLANGCHANGEREQUEST (if the IME is not part of TSF) and WM_INPUTLANGCHANGE. Applications can activate specific IMEs by callingActivateKeyboardLayout. The IMM manages communication between IMEs and applications, serving as the go-between. When the user is typing with the IME, each keystroke posts a WM_IME_COMPOSITION message with the GCS_COMPSTR flag to indicate that there is an update to the composition string. The message’s WPARAM value returns the first character of the string, and the rest can be retrieved via the ImmGetCompositionString API with the same GCS_COMPSTR flag. Then when the user presses Enter or clicks a character to place it in a document, the IME, by default, posts a WM_IME_COMPOSITION message with the GCS_RESULTSTR flag. (You can retrieve the committed string with the same API and the GCS_RESULTSTR flag.) If the latter WM_IME_COMPOSITION message is sent to DefWindowProc, then for each character in the committed string it posts a WM_IME_CHAR message containing the actual character. For a non-Unicode window, if the WM_IME_CHAR message includes a double-byte character and the application passes this message to DefWindowProc, the IME converts this message into two WM_CHAR messages, each containing one byte of the double-byte character. If the application ignores either message, it falls through to the application’s DefWindowProc, which in turn notifies the IMM that the message has been ignored. The IME then resends the character or string byte-by-byte via multiple WM_CHAR messages. For Unicode windows, WM_IME_CHAR and WM_CHAR are identical.

Discussed in the following sections are the three discrete levels of IME support for applications running on Windows: no support, partial support, and fully customized support. Applications can customize IME support in small ways-by repositioning windows, for example-or they can completely change the look of the IME UI.

No IME Support: IME-unaware applications basically ignore all IME- specific Windows messages. Most applications that target single-byte languages are IME-unaware.

Applications that are IME-unaware inherit the default UI of the active IME through a predefined global class, appropriately called “IME.” This global class has the same characteristics as any other Windows-based common control. For each thread, Windows 2000 and Windows XP automatically create a window based on the IME Global class; all IME-unaware windows of the thread share this default IME window. When IME-unaware applications pass IME-related messages to the DefWindowProc function, DefWindowProc sends them to the default IME window.

Partial IME Support: IME-aware applications can create their own IME windows. Applications with partial IME support can use this application IME window to control certain IME behavior. For example, by calling the function ImmIsUIMessage, an application can pass messages related to the IME’s UI to the application IME window, where the application can process them. The following code (with proper error handling and possibly more messages handled) would appear in the window procedure of the application’s IME window:

HIMC hIMC;
LPVOID lpBufResult;
COMPOSITIONFORM cf;
DWORD dwBufLen;
if (ImmIsUIMessage(hIMEWnd, uMsg, wParam, lParam) == TRUE)
{
switch(uMsg)
{
case WM_IME_COMPOSITION:
if (lParam & GCS_RESULTSTR
{
hIMC = ImmGetContext(hWnd);
dwBufLen = ImmGetCompositionString(hIMC,
GCS_RESULTSTR, NULL, NULL) +
sizeof(TCHAR);

 

lpBufResult =? malloc(dwBufLen);

 

if(ImmGetCompositionString(hIMC, GCS_RESULTSTR, lpBufResult, dwBufLen) > 0)
{
// …
// process the text in lpBufResult
// …
}
else // a negative error value was returned
{
// …
// handle an error
// …
}
free(lpBufResult);
ImmReleaseContext(hWnd, hIMC);
}
break;
}
}
return 0;
}

The same window procedure could call SendMessage either to reposition the status, composition, or candidate windows, or to open or close the status window.

SendMessage(hIMEWnd, WM_IME_CONTROL, 
IMC_SETCOMPOSITIONWINDOW, "cf);

Other API functions that allow the application to change window positions or properties areImmSetCandidateWindowImmSetCompositionFontImmSet-CompositionString,ImmSetCompositionWindow, and ImmSetStatusWindowPos. Applications that contain partial support for IMEs can use these functions to set the style and the position of the IME UI windows, but the IME dynamic-link library (DLL) is still responsible for drawing these windows-the general appearance of the IME’s UI remains unchanged.

Full IME Support In contrast, applications that are fully IME-aware take over responsibility for painting the IME windows (the status, composition, and candidate windows) from the IME DLL. Such applications can fully customize the appearance of these windows, including determining their screen position and selecting which fonts and font styles are used to display characters in them. This is especially convenient and effective for word processing and similar programs whose primary function is text manipulation and which, therefore, benefit from smooth interaction with IMEs, creating a “natural” interface with the user. The IME DLL still determines which characters are displayed in IME composition and candidate windows, and it handles algorithms for guessing characters and looking them up in the IME dictionary. FULLIME, which is an example of a customized IME UI, can be found in the Microsoft Windows Platform SDK, available at http://msdn2.microsoft.com.

Applications that are fully IME-aware trap IME-related messages in the following manner:

  1. They call GetMessage to retrieve intermediate IME messages.
  2. They process these messages in the application WindowProc.
  3. They call TranslateMessage (part of the IMM) to pass the messages to the IME DLL. The IME needs to remain synchronized in the same way that keyboard drivers need to remain synchronized with dead keys. Remember that partial IME support is taken care of for you if you use standard input calls like those to Rich Edit.

You’ve made sure your application can handle different input languages and methods. Another task in ensuring your application can support multilingual input, output, and display is to meet the inherent demands that complex scripts present. In the sections that follow, you will see various linguistic traits that are associated with complex scripts, and you will learn about Windows support for working with complex scripts.

__________

The above document is taken from the Microsoft Developer Network website here:
http://msdn.microsoft.com/en-us/goglobal/bb688135.aspx

It was posted here for archival purposes, and also to ensure that the document is easy to find when searched for.