Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Software-based Input Panel Application Development

Windows Mobile 6.5
A version of this page is also available for

Windows Embedded CE–based devices that do not have a keyboard require an input method to simulate keyboard input. For this purpose, Windows Embedded CE implements a software-based input panel architecture that functions using a touch screen. This software-based input panel architecture is an input method that enables your application to accommodate input in multiple forms.

The Windows Embedded CE input method requires two parts: the software-based input panel subsystem and the input methods. The primary difference between Windows Embedded CE input methods and typical keyboard input is that an additional level of interpretation is necessary in Windows Embedded CE to convert non-keyboard input into a keyboard event. This conversion is handled by the software-based input panel subsystem in the operating system, which also manages software input methods.

Windows phones require a standard full-keyboard input panel. OEMs who replace the Windows phone default panel are required to ensure that the replacement includes all keys found on a typical keyboard. Required keys include the following: [ ] { } \ | # ^ ~ `< > ! @ # $ % & * ’ ( ) - _ : ; ? / , .

The input method can display the software-based input panel window in a specific state by using the IIMCallback::SetImInfo method. This method also changes the icon appearing on the Input Panel button. To adjust to user-initiated changes in the software-based input panel window, applications can query the SIPINFO structure for data on the window size, state, and visible client area of the software-based input panel.

The software-based input panel creates the input method through the IInputMethod interface. After the input method is created, the input method receives user input and passes this data to the software-based input panel through the IIMCallback interface. After the software-based input panel receives data from the input method, the software-based input panel passes the data to the Graphics, Windowing, and Events Subsystem (GWES) module. Usually, this data is a keyboard event. GWES passes the message to your application through the standard delivery system for keyboard events. The following illustration shows how an input method, a software-based input panel, GWES, and an application communicate.


If the software-based input panel is altered, the operating system sends out a WM_SETTINGCHANGE message to all of the active applications. The application can modify the software-based input panel and the input method through the SipGetInfo and SipSetInfo functions.

To use software-based input panel technology, your target device must include the Coresip.lib file. This component enables any application to initialize an input method. Call the SipStatus function to be sure that Coresip.lib is present before you implement input methods.

Programming Input Methods

Provides an overview of the implementation details and best practices for input methods generally.

Programming a Software-Based Input Panel

Provides an overview of the implementation details and best practices for input methods generally and the software–based input panel specifically.

Software-based Input Panel

Provides information on the software-based input panel, which enables target devices that do not have a keyboard to simulate keyboard input by using an input method.

Community Additions

© 2015 Microsoft