Hi Jo1e,
This might sound to be a stupid question but how did you "install" the SIP exampe in Doug Boling's book into your WinCE device?
Thanks.
Regards,
John
Posted as a reply to:
Why do Custom Input Methods (SIP) refuse to work ?
Hi,
Summary: Under certain conditions Custom Input Methods (IM) do not start. I
want to understand the mechanism, I develop an IM.
For a full description and the discussion, see below.
After an unsuccessfull attempt in microsoft.public.windowsce.embedded.vc I
was advised to post
this in a more general PocketPC news group. It seems that the problem lies
within the CE
Operating System but I would be glad to be proved wrong about that.
I also develop an IM, one test I did seems quite interesting: I added
messageboxes in all
constructors and functions. Non of them were triggered when the IM was
selected. ( DllMain
included ).
I am aware that there are quite some discussions about this topic from PPC
users in different
newsgroups, but I never found any cause or solution for the problem on a
programming level.
--- Original Post ------
http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public....dowsce.
76fb698-ee95-47cf-b94a-3ce17a436d34&p=1
Hello All,
I am developing an Input Method (IM) for PocketPC / Windows Mobile (PPC/WM).
On some devices the IM will not start. The IM appears in the IM-List but
when it is
selected from the list athe result is that the standard (QWERTY) keyboard
appears.
I found that many ( all?) ISV's who make IM's have customers reporting this
problem. My research
on the internet brought me to the conclusion it is some resource related
problem within the
Operating System. However I did not find any statement from Microsoft which
confirmed this.
Some Solutions were provided by ISV's and their customers, but they usually
did not work for
everybody. For example someone could solve it by starting the IM before
starting the Today
Screen, others could fix it by some tweaks which disabled other programs. (
for example:
http://blogs.msdn.com/windowsmobile/archive/2005/02/10/370355.aspx)
--
So my questions would be:
Is it known what causes this problem?
Is it really a OS related problem, or is it more likely that the problem is
somewhere in my code?
If it is an OS related problem:
- Is there a programming workaround ? ( like, if it is a resource related
problem, keeping the
dll size small, (not) using dynamic memory etc.. )
- Will this problem be solved in WM 6 ?( GWES now in kernel )
--
Additional information to my situation:
* I used the example in Programming Microsoft?? Windows?? CE, Second Edition ,
from Douglas Boling
,
http://www.microsoft.com/mspress/books/sampchap/5461b.aspx#108 as a
starting point for my
application.
* An IM is implemented as an COM in proc Server. So maybe developers who
develop this kind of
Software ( for WM ) can help me as well.
* Fortunately I could reproduce the problem. I added a MessageBox in the
DllMain function. The
MessageBox did not appear! Conclusion, the dll is not loaded at all ! (?)
* On the Device where I can reproduce the problem the IM will start when no
other program is
active. When Word or SMS is open, the problem appears. Then I make a Soft
Reset, go to the
Settings where the Soft Input Method (SIP) icon allows me to select an IM.
* Dll size is approx 350 KB
* The problem persisted from eVC 3 upto VS 2005, independent for what
platform I build. For
example in VS2005 I targeted WM 2003( ARMV4). The Problem is reported from
both WM 2003 as WM5
Users.
--
Thanks,
Jo??l
Paul G. Tobey [eMVP]" wrote:
Sounds to me like you didn't generate a GUID unique to your SIP or
something...
Paul T.
jo.el wrote:
Hello Paul,
I used guidgen.exe to generate the GUID so the chances would be really
quite small. So ... it must be something else.
Paul G. Tobey [eMVP]" wrote:
You did a soft reset after installing your new SIP on the device, right? I
can't think of anything else that would explain normal behavior of the
standard SIP and abnormal behavior of yours.
Paul T.
jo.el wrote:
Hello Paul,
I never actually tried that, so I did. Unfortunately the result is the same
as before: I can use the IM, but only under 'the right conditions', in my
case not starting any program before selecting the IM ( as I described in my
original question )
How would a Soft reset after an installation improve the "reliability" of a
software ?
Anyway. This Problem does not only occur with my IM, but with many ( all ? )
ISV IM's ! ( see the link I pasted in my question ). That is why I thought
the problem could be some memory restrainment and want to know
- this is a known problem at MS or if this is definitely not an OS
error/retraint.
- if it is a known Problem, if there are any design recommendations to avoid
it.
Thanks for your help. It is an Issue which is quite important to me and I
guess to the other ISV's who make Custom Input Methods as well. If you would
know anyone at MS with the competence to look into this issue I would be
gratefull if you could foreward this problem.
Jo??l
Paul G. Tobey [eMVP]" wrote:
No, not to improve reliability, but it's quite possible that the act of
installing a new SIP doesn't cause the SIP driver to know about it. Most
drivers like that don't continuously monitor the registry looking for new
entries!
There's nothing that I've ever heard of. Certainly Windows CE 4.x and 5.0
themselves don't suffer from this problem on my devices. If it were me, I'd
try this on a generic Windows CE platform, but you may not be able to do
that. I guess that you might try the emulator. Is the SIP signed?
Paul T.
jo.el wrote:
Hello Paul,
I greatly appreciate your input, and I hope this discussion will also be
valuable for other ISV's who make Input Methods and most of all I hope to get
some detailed description of the processes which cause this problem. Then I
can change the design or installation methods to get it to work with
(practically) all users.
As to your question: The Input Method is not signed. This could explain the
problem on some devices, where it does not start at all. But it would not
explain the problem on those devices where it runs depending on the
configuration, or on which programs are active.
I will quote some problems from the blog I mentionned in my question:
http://blogs.msdn.com/windowsmobile/archive/2005/02/10/370355.aspx
------------------------------------------
emerym said:
Hi,
I did more testing after the TenGO free SIP failed to load after a soft
reset. I've found that if I use all custom SIP's BEFORE getting to the Today
Screen they'll work. As I have a password enabled on the PDA this is quick
and easy to do. Can any Microsoft people comment? It sounds like some SIP
have a problem loading their DLL after today screen is loaded.
Mark
emerym said:
I hope this is my last entry! After getting both SIPs working by using them
at the password prompt I found that my Softick Card Export II wouldn't load.
If I didn't fix the SIPs it would. So it does look like there's a resource
starvation issue. I removed the battery and comms mgr icons from the Task
Tray as per
http://wiki.xda-developers.com/index.php?pagename=Hermes_Registry
as I don't use them and can now get all three working fine.
MS is there a resource that can be monitored? This reminds me of the system
(GDI) resource drainage in Win98.
There are also other quotes there like:
Justin said:
I just got my lovely new T-Mobile MDA Vario (aka HTC Wizard) a few weeks
ago, moving myself out of the land of WM 2003 into WM 5. So far, it is a
welcome improvement, except...
I can't get ANY 3rd party SIPs to work on this thing! They install, and
they appear on the SIP menu (although that menu takes FOREVER to display).
However, as soon as I select a SIP I've installed, it will not work, but
simply reverts to the default keyboard SIP.
Clearly something on the device is messed up, as it has been doing this
since the day I got it.
Did a DLL or registry setting get corrupted? What gives?
And on which supports your Soft reset solution:
Suzuki said:
I was able to try out a bunch of third-party SIPs on my HTC Wizard (Cingular
8125). However, the input menu slowed waaay down as soon as I started loading
these things. Other users with HTC Wizard devices report similar problems, as
on the Resco Keyboard Pro forum. However, my problems were caused by other
programs, and Resco KP didn't make them any worse. I am a little suspicious
of the HTC Phone Pad Input SIP, which is probably common to all HTC
Wizards....
Most alternative SIP's load without much trouble--after a few resets,
they're usually good to go. ...
------------------------------------------
So far for the quotes of this blog. There are several other forum
dicussions on this problem.
As to the last quote: ... a few soft resets ... that is not exactly a
customer friendly solution.
Most Workarounds I found in forums are ( a combination of )
- removing other IM's from the registry
- removing programs ( I assume such wich use dll drivers )
- setting a Custom IM as a default ( before AKU2 )
- using a tool which uses the autostart to select the custom IM
I also have offered users the last workaround ( as it is the safest) which
worked for many of my users with this problem, but not for all.
Maybe it is good to mention that the big majority of my users of (my) IM
have no problems, but this is not good enough.
It would be quite interesting to know if there is any ISV Custom Input
Method which does not have this problem.
Thanks for any help.
Paul G. Tobey [eMVP]" wrote:
So it does completely work on some devices, right? That's definitely hard
to explain...
Paul T.
jo.el wrote:
Yep... it is a tough one... would you know where I could post this problem
more close to the MS techies?
My best guess still is that it is some resource related problem, if that is
the case it would be handy to know which factors play together, or as in this
case, against eachother.
The other possible cause could be an installation / registration problem.
But in such a way that the registration gets broken occasionally/permanently.
Maybe it is also a mix of problems.
Thanks,
Paul G. Tobey [eMVP]" wrote:
There's no support channel for posts. Some MS guys read here, but it's not
an official channel. Try one of the groups in the microsoft.public.pocketpc
tree.
Paul T.
EggHeadCafe - Software Developer Portal of Choice
WCF Workflow Services Using External Data Exchange
http://www.eggheadcafe.com/tutorials/aspnet/3d49fa0d-a120-4977-842a-6d...17b6d74