none
在vista下, 在全屏游戏下对输入法编程,用api immGetDescription()得不到输入法名字,请问是怎么回事? RRS feed

  • 问题

  • 在vista下, 在全屏游戏下对微软拼音2003和2007输入法编程,用api immGetDescription()得不到输入法名字,请问是怎么回事?google拼音,sougou拼音都是好的啊
    2009年6月18日 5:14

答案

全部回复

  • 期待微软拼音输入法2010是否可以得到改善。
    王万利 http://hackerjx.blog.51cto.com/
    2009年6月24日 23:58
    版主
  • 来自产品组的开发工程师回答:

    In vista, MSPY uses Tip framework, not IMM, so immxxxx functions doesn’t work.

     

     


    xi
    2009年7月14日 9:10
    版主
  • Use Tip COM:

     

    #include <windows.h>

    #include <msctf.h>

     

    int _tmain(int argc, _TCHAR* argv[])

    {

        CoInitialize(0);

        HRESULT hr = S_OK;

     

        ITfInputProcessorProfiles *pProfiles;

     

        hr = CoCreateInstance(  CLSID_TF_InputProcessorProfiles,

                                NULL,

                                CLSCTX_INPROC_SERVER,

                                IID_ITfInputProcessorProfiles,

                                (LPVOID*)&pProfiles);

     

        if(SUCCEEDED(hr))

        {

            IEnumTfLanguageProfiles* pEnumProf = 0;

            hr = pProfiles->EnumLanguageProfiles(0x804, &pEnumProf);

            if (SUCCEEDED(hr) && pEnumProf)

            {

                TF_LANGUAGEPROFILE proArr[2];

                ULONG feOut = 0;

                while (S_OK == pEnumProf->Next(1, proArr, &feOut))

                {

                    BSTR bstrDest;

                    hr = pProfiles->GetLanguageProfileDescription(proArr[0].clsid, 0x804, proArr[0].guidProfile, &bstrDest);

                    OutputDebugString(bstrDest);

                    wprintf(bstrDest); printf("\n");

     

                    BOOL bEnable = false;

                    hr = pProfiles->IsEnabledLanguageProfile(proArr[0].clsid, 0x804, proArr[0].guidProfile, &bEnable);

                    if (SUCCEEDED(hr))

                    {

                        printf("Enabled %d\n", bEnable);

                    }

                    SysFreeString(bstrDest);

                }

            }

           

            pProfiles->Release();

        }

     

        CoUninitialize();

                    return 0;

    }


    xi
    2009年7月14日 9:10
    版主