向窗口发消息,模拟输入中文字符解决方案

向窗口发消息,模拟输入中文字符
我现在使用 WM_IME_CHAR 消息 。 向窗口发送 unicode字符, 
经测试,记事本程序可以正常收到 字符。

word2003 收到了该消息。 显示出来是乱码。
spy++ 查看, word是unicode窗口。 收到的是unicode编码的字符。

分开发gbk编码的WM_CHAR也不行


我需要的是比较通用的向窗口输入字符的方法
请问应该怎么弄?
------解决思路----------------------
SendInput(_T("拿走"));
------解决思路----------------------
wm_ime_char没用过,如果是unicode字符 + wm_char

俺对普通窗口这样操作是成功的,word也没试过,所有参数都是用spy++抓的。


            if( t >= 'a' && t <= 'z' )
            {
                ::SendMessage( hwnd, WM_KEYDOWN, ( WPARAM )( t + 0x20 ), 0x001f0001 );
            }
            else
            {
                ::SendMessage( hwnd, WM_KEYDOWN, ( WPARAM )( t ), 0x001f0001 );
            }
            ::SendMessage( hwnd, WM_CHAR, ( WPARAM )( t ), 0x001f0001 );
            ::SendMessage( hwnd, WM_KEYUP, ( WPARAM )( t ), 0xc01f0001 );