Welcome to MSDN Blogs Sign in | Join | Help

Custom Soft Input Panel (SIP) for Pocket PC

SIP - Soft Input Panel is the term used to describe the popup software keyboard provided on Pocket PC devices to simplify input. SIP's are generally 80 pixels high and shown at the bottom of the screen just above the menu bar.

'Can I write and install a custom SIP?' - I haven't had this question for some time so I thought it would be interesting to post about it. This was one of my very first bits of code for Pocket PC way back in 2000 and it still works now: ok, so I had to rebuild the project structure around it to support eVC 4.0, but no code changes. Right now you can only write custom SIP panels in native C++ code, and I would recommend using ATL as it will provide all the nasty COM plumbing for you (plus I always like to see lots of multiple inheritance in my code - makes me feel superior :) ).

Soft Input Panels are just COM objects that implement the IInputMethod interface and optionally the IInputMethod2 interface. Check out this MSDN article for more detailed information on the interface methods. The component registration is done by adding a new string value to the class registration details: CLSID\{MYGUID}\IsSIPInputMethod="1". No need to reboot the device, just go into setings|Personal|Input and select the new input method from the list.

I have put my sample project in zip form up here (disclaimer applies). You will need EVC 4.0 (SP2 to target Pocket PC 2003, SP3 to target PPC 2003 Second Edition) installed on your dev machine to compile this. It works just as well in the emulator. There are a couple of minor drawing issues with the code I have seen, maybe I will get round to fixing them up sometime).

Marcus

Published Thursday, February 10, 2005 9:12 AM by marcpe

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: Custom Soft Input Panel (SIP) for Pocket PC

Is there any way i can have a letter recognizer, but in the numbers area, number buttons? Keyboard for numbers and recognizer for letters. It would be much faster. Also, can it be a little smaller? It takes to much screen space.
Thursday, February 10, 2005 9:00 PM by mv

# re: Custom Soft Input Panel (SIP) for Pocket PC

The default SIP panel doesnt do what you are asking, but you could certainly write a new panel to support your needs - you can even move away from an 80 pixel high panel to make the whole area a different size or shape to suit your needs (the example code I posted uses a height of 90 pixels).
There might be a 3rd party offering that would do what you need, so worth checking around.

Marcus
Thursday, February 10, 2005 10:26 PM by Marcus

# re: Custom Soft Input Panel (SIP) for Pocket PC

To bring the question up to date:

"can I write and install a custom SIP in .net?"
Friday, February 11, 2005 2:36 AM by Doug Paice

# re: Custom Soft Input Panel (SIP) for Pocket PC

Good question Doug. The answer is unfortunately No.

Probably more enlightening would be to answer the 'why not?' question. I will post separately about this but in short, unlike the desktop framework, Compact Framework cannot be 'hosted' in a native process e.g. a system process that started with a native exe cannot load a managed dll.

Marcus
Friday, February 11, 2005 6:09 AM by Marcus

# re: Custom Soft Input Panel (SIP) for Pocket PC

I would like to make Block Recogniezer recognize polish letters. Is there source of it available? That way I could only add a few routines to missing letters.
Friday, February 25, 2005 7:30 AM by Marx

# re: Custom Soft Input Panel (SIP) for Pocket PC

I created my own numeric keyboard but I don't know how to send DELETE key char. I can send ENTER and BACKSPACE, but not composed key chars. Do you know how can do it ?

thanks
Monday, March 07, 2005 3:08 PM by Ivan

# re: Custom Soft Input Panel (SIP) for Pocket PC

The default SIP keyboard is able to track the mouse movement when you tap inside the SIP and drag outside of it (try it).

I'm having a problem with my SIP in that if you tap on the SIP and then drag outside of it, the MouseMove or MouseUp events occur outside of the SIP area. So, I don't get the events.

Obviously the default keyboard is able to handle this. Any idea how?
Monday, May 02, 2005 2:05 PM by Dan

# How Custom Soft Input Panel (SIP) for Pocket PC eVC++3.0

I am try buil it in eVC++3.0 but have this error:
NewSIP.obj : error LNK2001: unresolved external symbol _IID_IInputMethod
X86Dbg/NewSIP.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

How can I fix it. And in eVC++3.0 can not use IIMCallback2, I had include <sip.h> but can not use this class.
Thursday, June 30, 2005 12:34 AM by Minh

# re: Custom Soft Input Panel (SIP) for Pocket PC

Is it possible to change the size of the custom SIP to make the input panel larger, and therefore have bigger keys?
Monday, August 22, 2005 4:41 PM by Gary

# re: Custom Soft Input Panel (SIP) for Pocket PC

I have made my own Input Panel which works fine. Now I have just tried to undock it, which also works perfectly, but all the other IM's on my PDA are missing the lower 26px or so. This also happenes when my custom IM is not installed. Have anyone encountered this before. I'm programming for PPC 2003 (have sp2). Same thing happenes both with my Dell and Symbol PDA.
Monday, August 29, 2005 11:24 AM by Karo

# re: Custom Soft Input Panel (SIP) for Pocket PC

How to convert a SIP for non VGA device into a SIP for VGA devices. When I try deploying the nonVGA SIP on my VGA device the SIP appears to be very small. Any Clue?
Friday, March 03, 2006 3:48 AM by Lochan

# re: Custom Soft Input Panel (SIP) for Pocket PC

Hello, I need some  help for SIP:
1. I cannot run/display SIP in eVC4 Emulator-2. There is no sip.h in the libraries folder
3. I'd like to write and add no-US keyboard layout to WinCE 4.2 build - how could I do this- program or/and dll?

Thanks.
Monday, April 17, 2006 3:13 PM by tanyo

# re: Custom Soft Input Panel (SIP) for Pocket PC

I've made a SIP based on the example, and it works fine PPC2003 (not on PPC2003SE and WM5.0). The width of my SIP is less than the width of the PDA screen. On PPC2003 the space on the side of the SIP is shown as transparant, but on PPC2003SE and WM5.0 it is shown as white. What has changed, and how can I fix it?
Wednesday, June 07, 2006 10:55 AM by Karo

# re: Custom Soft Input Panel (SIP) for Pocket PC

hi evrybody, I found a litle example for sip in evc and it is compile but I don't know how register in pda help me
Friday, September 01, 2006 12:49 PM by victor

# re: Custom Soft Input Panel (SIP) for Pocket PC

Can i replace the SIP icon appearing on the soft key bar with a custom icon/bitmap ??

Monday, February 12, 2007 1:53 AM by Shabbir

# re: Custom Soft Input Panel (SIP) for Pocket PC

Do you have any sample which support hardware keybaord?

It seems that every keypress sends the character straight away. I need to capture the keypress and do some procssing before send to the application

Saturday, May 19, 2007 12:24 PM by Michael

# re: Custom Soft Input Panel (SIP) for Pocket PC

anyone out there know how to debug the SIP DLL? I cant get the debugger to attach correctly, so all the breakpoints are disabled!!

Tuesday, February 19, 2008 6:25 AM by sam

# re: Custom Soft Input Panel (SIP) for Pocket PC

Hi,

Did you ever figure how to debug the SIP DLL? Thanks.

Regards,

John

Thursday, October 01, 2009 9:59 PM by John

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker