Module: wine Branch: master Commit: 649d12b1702a5bf17d169d83ef221468b49453e5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=649d12b1702a5bf17d169d83ef... Author: Aric Stewart <aric(a)codeweavers.com> Date: Tue Feb 3 13:17:41 2009 -0600 msctf: Implement ITfInputProcessorProfiles::Register. --- dlls/msctf/inputprocessor.c | 19 +++++++++++++++++-- dlls/msctf/msctf.c | 2 ++ dlls/msctf/msctf_internal.h | 1 + 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/dlls/msctf/inputprocessor.c b/dlls/msctf/inputprocessor.c index b501b47..7ece851 100644 --- a/dlls/msctf/inputprocessor.c +++ b/dlls/msctf/inputprocessor.c @@ -97,8 +97,23 @@ static HRESULT WINAPI InputProcessorProfiles_Register( ITfInputProcessorProfiles *iface, REFCLSID rclsid) { InputProcessorProfiles *This = (InputProcessorProfiles*)iface; - FIXME("STUB:(%p)\n",This); - return E_NOTIMPL; + HKEY tipkey; + WCHAR buf[39]; + static const WCHAR fmt[] = {'%','s','\\','%','s',0}; + WCHAR fullkey[68]; + + TRACE("(%p) %s\n",This,debugstr_guid(rclsid)); + + StringFromGUID2(rclsid, buf, 39); + sprintfW(fullkey,fmt,szwSystemTIPKey,buf); + + if (RegCreateKeyExW(HKEY_LOCAL_MACHINE,fullkey, 0, NULL, 0, + KEY_READ | KEY_WRITE, NULL, &tipkey, NULL) != ERROR_SUCCESS) + return E_FAIL; + + RegCloseKey(tipkey); + + return S_OK; } static HRESULT WINAPI InputProcessorProfiles_Unregister( diff --git a/dlls/msctf/msctf.c b/dlls/msctf/msctf.c index 224ce99..e34a9c8 100644 --- a/dlls/msctf/msctf.c +++ b/dlls/msctf/msctf.c @@ -45,6 +45,8 @@ static HINSTANCE MSCTF_hinstance; DWORD tlsIndex = 0; +const WCHAR szwSystemTIPKey[] = {'S','O','F','T','W','A','R','E','\\','M','i','c','r','o','s','o','f','t','\\','C','T','F','\\','T','I','P',0}; + typedef HRESULT (*LPFNCONSTRUCTOR)(IUnknown *pUnkOuter, IUnknown **ppvOut); static const struct { diff --git a/dlls/msctf/msctf_internal.h b/dlls/msctf/msctf_internal.h index 1cb4924..cea1723 100644 --- a/dlls/msctf/msctf_internal.h +++ b/dlls/msctf/msctf_internal.h @@ -27,4 +27,5 @@ extern HRESULT DocumentMgr_Constructor(ITfDocumentMgr **ppOut); extern HRESULT Context_Constructor(TfClientId tidOwner, IUnknown *punk, ITfContext **ppOut, TfEditCookie *pecTextStore); extern HRESULT InputProcessorProfiles_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut); +extern const WCHAR szwSystemTIPKey[]; #endif /* __WINE_MSCTF_I_H */