BOOL RegisterProfiles() { ITfInputProcessorProfiles *pInputProcessProfiles; WCHAR achIconFile[MAX_PATH]; int cchIconFile; HRESULT hr; hr = CoCreateInstance(CLSID_TF_InputProcessorProfiles, NULL, CLSCTX_INPROC_SERVER, IID_ITfInputProcessorProfiles, (void**)&pInputProcessProfiles); if (hr != S_OK) return E_FAIL; hr = pInputProcessProfiles->Register(c_clsidPropertyMonitorTextService); if (hr != S_OK) goto Exit; cchIconFile = GetModuleFileName(g_hInst, achIconFile, ARRAYSIZE(achIconFile)); hr = pInputProcessProfiles->AddLanguageProfile(c_clsidPropertyMonitorTextService, TEXTSERVICE_LANGID, c_guidProfile, TEXTSERVICE_DESC, lstrlen(TEXTSERVICE_DESC), achIconFile, cchIconFile, TEXTSERVICE_ICON_INDEX); Exit: pInputProcessProfiles->Release(); return (hr == S_OK); }
BOOL RegisterProfiles() { ITfInputProcessorProfiles *pInputProcessProfiles; WCHAR achIconFile[MAX_PATH]; char achFileNameA[MAX_PATH]; DWORD cchA; int cchIconFile; HRESULT hr; hr = CoCreateInstance(CLSID_TF_InputProcessorProfiles, NULL, CLSCTX_INPROC_SERVER, IID_ITfInputProcessorProfiles, (void**)&pInputProcessProfiles); if (hr != S_OK) return E_FAIL; hr = pInputProcessProfiles->Register(c_clsidTextService); if (hr != S_OK) goto Exit; cchA = GetModuleFileNameA(g_hInst, achFileNameA, ARRAYSIZE(achFileNameA)); cchIconFile = MultiByteToWideChar(CP_ACP, 0, achFileNameA, cchA, achIconFile, ARRAYSIZE(achIconFile)-1); achIconFile[cchIconFile] = '\0'; hr = pInputProcessProfiles->AddLanguageProfile(c_clsidTextService, TEXTSERVICE_LANGID, c_guidProfile, TEXTSERVICE_DESC, (ULONG)wcslen(TEXTSERVICE_DESC), achIconFile, cchIconFile, TEXTSERVICE_ICON_INDEX); Exit: pInputProcessProfiles->Release(); return (hr == S_OK); }