Free mind

          Be fresh and eager every morning, and tired and satisfied every night.
          posts - 39, comments - 2, trackbacks - 0, articles - 0
             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          其實(shí)很簡(jiǎn)單啦,不過(guò)微軟的API應(yīng)用說(shuō)明中對(duì)這個(gè)的描述也不清楚,現(xiàn)將我的實(shí)現(xiàn)代碼和注意事項(xiàng)貼出來(lái)給大家參考。

           1#include <INITGUID.H>
           2#include "MSIME.h"
           3.
           4.
           5.
           6    CString sSelect;
           7    this->GetWindowText(sSelect);
           8
           9    IFELanguage *lang = NULL;
          10    if(SUCCEEDED(CoCreateInstance(CLSID_MSIME_JAPANESE_6,NULL,
          11        CLSCTX_INPROC_SERVER,IID_IFELanguage,(void**)&lang)) && lang != NULL)
          12    {
          13        if(!SUCCEEDED(lang->Open()))
          14        {
          15            return;
          16        }

          17    }

          18    if(lang)
          19    {
          20        CString sResult;
          21        BSTR out = NULL;
          22        if(SUCCEEDED(lang->GetPhonetic(_bstr_t(sSelect),1,-1,&out)) && out != NULL)
          23        {
          24            sResult = out;
          25            ::SysFreeString(out);
          26        }

          27        this->SetWindowText(sResult);
          28    }
          第1行的include比較重要,如果不加,容易出現(xiàn)鏈接錯(cuò)誤,這是在platform的SDK中帶有的頭文件。
          第2行是關(guān)鍵性頭文件,在微軟japan ime文檔的append部分帶有,現(xiàn)在最新是1.3版。
          其他部分照貓畫虎就行了,值得注意的是CLSID_MSIME_JAPANESE_6這個(gè),如果要想在win2000下用,一定要用低版本的,推薦像我這樣用6。

          用這套API,還可以完成類似于轉(zhuǎn)換拼音之類的功能,如果要?jiǎng)?chuàng)造自己的輸入法,建議看看TSF,微軟給了很多TSF的例子。

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 花莲县| 安化县| 盐池县| 阿鲁科尔沁旗| 平果县| 吉安市| 宣威市| 商南县| 彰武县| 渑池县| 西充县| 陇南市| 舞钢市| 桂阳县| 缙云县| 于田县| 塘沽区| 漾濞| 昌江| 南宫市| 增城市| 焦作市| 彩票| 南部县| 广水市| 邯郸县| 新安县| 涿鹿县| 宁德市| 五峰| 宝丰县| 拉孜县| 岱山县| 东丽区| 庐江县| 无棣县| 丰都县| 化州市| 都江堰市| 都安| 元朗区|