STDAPI CMarkTextService::Activate(ITfThreadMgr *pThreadMgr, TfClientId tfClientId) { _pThreadMgr = pThreadMgr; _pThreadMgr->AddRef(); _tfClientId = tfClientId; if (!_InitLanguageBar()) goto ExitError; if (!_InitThreadMgrSink()) goto ExitError; if (!_InitDisplayAttributeGuidAtom()) goto ExitError; if (!_InitCleanupContextDurationSink()) goto ExitError; if (!_InitGlobalCompartment()) goto ExitError; if (!_InitWorkerWnd()) goto ExitError; if (!_InitKeystrokeSink()) goto ExitError; return S_OK; ExitError: Deactivate(); // cleanup any half-finished init return E_FAIL; }
STDAPI CTextService::Activate(ITfThreadMgr *pThreadMgr, TfClientId tfClientId) { _pThreadMgr = pThreadMgr; _pThreadMgr->AddRef(); _tfClientId = tfClientId; // // Initialize ThreadMgrEventSink. // if (!_InitThreadMgrEventSink()) goto ExitError; // // If there is the focus document manager already, // we advise the TextEditSink. // ITfDocumentMgr *pDocMgrFocus; if ((_pThreadMgr->GetFocus(&pDocMgrFocus) == S_OK) && (pDocMgrFocus != NULL)) { _InitTextEditSink(pDocMgrFocus); pDocMgrFocus->Release(); } // // Initialize Language Bar. // if (!_InitLanguageBar()) goto ExitError; // // Initialize KeyEventSink // if (!_InitKeyEventSink()) goto ExitError; // // Initialize PreservedKeys // if (!_InitPreservedKey()) goto ExitError; // // Initialize display guid atom // if (!_InitDisplayAttributeGuidAtom()) goto ExitError; return S_OK; ExitError: Deactivate(); // cleanup any half-finished init return E_FAIL; }
STDAPI CTextService::ActivateEx(ITfThreadMgr *ptim, TfClientId tid, DWORD dwFlags) { _pThreadMgr = ptim; _pThreadMgr->AddRef(); _ClientId = tid; if (!_IsKeyboardOpen()) { _KeyboardSetDefaultMode(); } if(!_InitThreadMgrEventSink()) { goto exit; } if(!_InitThreadFocusSink()) { goto exit; } if(!_InitCompartmentEventSink()) { goto exit; } { ITfDocumentMgr* pDocumentMgr = nullptr; if (SUCCEEDED(_pThreadMgr->GetFocus(&pDocumentMgr)) && (pDocumentMgr != nullptr)) { _InitTextEditSink(pDocumentMgr); SafeRelease(&pDocumentMgr); } } if(!_InitLanguageBar()) { goto exit; } if(!_InitKeyEventSink()) { goto exit; } if(!_InitDisplayAttributeGuidAtom()) { goto exit; } if(!_InitFunctionProvider()) { goto exit; } _KeyboardOpenCloseChanged(FALSE); return S_OK; exit: Deactivate(); return E_FAIL; }