void CCandidateWindow::_EndUIElement() { if((_hwnd == NULL) && (_depth == 0)) { ITfUIElementMgr *pUIElementMgr; if(_pTextService->_GetThreadMgr()->QueryInterface(IID_PPV_ARGS(&pUIElementMgr)) == S_OK) { pUIElementMgr->EndUIElement(_dwUIElementId); SafeRelease(&pUIElementMgr); } } if(_hwnd != NULL) { SetWindowPos(_hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE | SWP_HIDEWINDOW); if(_pInputModeWindow != NULL) { _pInputModeWindow->_Show(FALSE); } if(_depth == 0) { NotifyWinEvent(EVENT_OBJECT_IME_HIDE, _hwnd, OBJID_CLIENT, CHILDID_SELF); } } _bShow = FALSE; }
BOOL CCandidateWindow::_CanShowUIElement() { BOOL bShow = TRUE; ITfUIElementMgr *pUIElementMgr; if(_pTextService->_GetThreadMgr()->QueryInterface(IID_PPV_ARGS(&pUIElementMgr)) == S_OK) { pUIElementMgr->BeginUIElement(this, &bShow, &_dwUIElementId); pUIElementMgr->EndUIElement(_dwUIElementId); SafeRelease(&pUIElementMgr); } return bShow; }
HRESULT CCandidateListUIPresenter::EndUIElement() { HRESULT hr = S_OK; ITfThreadMgr* pThreadMgr = _pTextService->_GetThreadMgr(); if ((nullptr == pThreadMgr) || (-1 == _uiElementId)) { hr = E_FAIL; goto Exit; } ITfUIElementMgr* pUIElementMgr = nullptr; hr = pThreadMgr->QueryInterface(IID_ITfUIElementMgr, (void **)&pUIElementMgr); if (hr == S_OK) { pUIElementMgr->EndUIElement(_uiElementId); pUIElementMgr->Release(); } Exit: return hr; }