请教在WINCE中怎么实现输入法的自动切换呢

请问在WINCE中如何实现输入法的自动切换呢?
现在我的WINCE环境下有日文的输入法,但是日文输入法中还有几种的输入法,比如直接英文输入,全角平假输入,半角平假输入等等.
我现在下当打开系统的软键盘时,输入法自动设置为半角平假输入状态.该如何设置呢?
我想通过调用 "keybd_event "这个API,向系统发送一些组合键来实现,但是不知道用哪几个键来组合?
请问有人碰到过这类问题没...

------解决方案--------------------
SipEnumIM
SipGetCurrentIM
SipSetCurrentIM
SipSetDefaultRect
SipSetInfo
SipShowIM
SipStatus

说错了。不是spi,是sip。以上的可能可以,仔细的没看。你可以看看msdn,如果找到方法了。记得来这里公布哦。

如果c++,需要添加 <Sipapi.h>
哪个dll么,我还没看到,可能是coredll.dll
------解决方案--------------------
提供一个思路。找输入法的面板,模拟触摸屏的点击事件,再SendMessage。
// 找主输入法面版
HWND hWndSip = ::FindWindow(L "SipWndClass ", NULL);
if(hWndSip == NULL)
{
return FALSE; // 没找到则退出
}

// 找ZTES.IM面板
HWND hWndIM = ::GetWindow(hWndSip, GW_CHILD);
if(hWndIM == NULL)
{
return FALSE; // 没找到则退出
}

// 找ZTES.PAD面板
HWND hWndPad = ::GetWindow( hWndIM, GW_CHILD);
if( hWndPad == NULL )
{
return FALSE; // 没找到则退出
}

// 验证是否真的是ZTES.PAD面板
TCHAR szBuf[40];
GetClassName(hWndPad, szBuf, 40);
if( _tcscmp( szBuf, L "ZTES.PAD " ) != 0 )
{
return FALSE; // 看来不是,退出
}

// 程序走到这里,说明确实找到了输入面板窗体句柄
POINT pt = cstPt[tRange];
::SendMessage(hWndPad, WM_LBUTTONDOWN, NULL, MAKELPARAM(pt.x, pt.y));
::SendMessage(hWndPad, WM_LBUTTONUP, NULL, MAKELPARAM(pt.x, pt.y));