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; }
void CCandidateWindow::_BeginUIElement() { BOOL bShow = TRUE; if(!_reg) { _InitList(); } _Update(); if((_hwnd == NULL) && (_depth == 0)) { ITfUIElementMgr *pUIElementMgr; if(_pTextService->_GetThreadMgr()->QueryInterface(IID_PPV_ARGS(&pUIElementMgr)) == S_OK) { pUIElementMgr->BeginUIElement(this, &bShow, &_dwUIElementId); if(!bShow) { pUIElementMgr->UpdateUIElement(_dwUIElementId); } SafeRelease(&pUIElementMgr); } } if(_hwnd == NULL) { _bShow = FALSE; } else { _bShow = bShow; } if(_bShow) { if(_hwnd != NULL) { SetWindowPos(_hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW); if(_reg) { if(_pInputModeWindow != NULL) { _pInputModeWindow->_Show(TRUE); } } if(_depth == 0) { NotifyWinEvent(EVENT_OBJECT_IME_SHOW, _hwnd, OBJID_CLIENT, CHILDID_SELF); } } } }
void CCandidateWindow::_UpdateUIElement() { if(!_bShow) { ITfUIElementMgr *pUIElementMgr; if(_pTextService->_GetThreadMgr()->QueryInterface(IID_PPV_ARGS(&pUIElementMgr)) == S_OK) { pUIElementMgr->UpdateUIElement(_dwUIElementId); SafeRelease(&pUIElementMgr); } } }
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::_UpdateUIElement() { HRESULT hr = S_OK; ITfThreadMgr* pThreadMgr = _pTextService->_GetThreadMgr(); if (nullptr == pThreadMgr) { return S_OK; } ITfUIElementMgr* pUIElementMgr = nullptr; hr = pThreadMgr->QueryInterface(IID_ITfUIElementMgr, (void **)&pUIElementMgr); if (hr == S_OK) { pUIElementMgr->UpdateUIElement(_uiElementId); pUIElementMgr->Release(); } return S_OK; }
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; }
HRESULT CCandidateListUIPresenter::BeginUIElement() { HRESULT hr = S_OK; ITfThreadMgr* pThreadMgr = _pTextService->_GetThreadMgr(); if (nullptr ==pThreadMgr) { hr = E_FAIL; goto Exit; } ITfUIElementMgr* pUIElementMgr = nullptr; hr = pThreadMgr->QueryInterface(IID_ITfUIElementMgr, (void **)&pUIElementMgr); if (hr == S_OK) { pUIElementMgr->BeginUIElement(this, &_isShowMode, &_uiElementId); pUIElementMgr->Release(); } Exit: return hr; }