// --------------------------------------------------------------------------------------------------------------------- HRESULT IMEEngine::SetIMEEngine(LPCWSTR msime) { static const IID IID_IFELanguage = { 0x019f7152, 0xe6db, 0x11d0, { 0x83, 0xc3, 0x00, 0xc0, 0x4f, 0xdd, 0xb8, 0x2e } }; UnsetIMEEngine(); CLSID clsid; if(CLSIDFromString(const_cast<LPWSTR>(msime), &clsid) != S_OK) return S_FALSE; if(CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IFELanguage, (LPVOID*)&m_pIFELanguage) != S_OK) return S_FALSE; m_bCoCreat = TRUE; if(m_pIFELanguage) if(m_pIFELanguage->Open() == S_OK) m_bLangOpen = TRUE; m_pIFELanguage->GetConversionModeCaps(&m_dwCaps); //wcsncpy_s(m_ImeName, msime, wcslen(m_ImeName)); return S_OK; }
// --------------------------------------------------------------------------------------------------------------------- IMEEngine::~IMEEngine() { UnsetIMEEngine(); // if(m_bCoInit) { // CoUninitialize(); // } }
IMEEngine::~IMEEngine() { UnsetIMEEngine(); if( m_bCoInit ) { CoUninitialize(); m_bCoInit = FALSE; } }