Aric Stewart : msctf: Implement ITfInputProcessorProfiles:: SetDefaultLanguageProfile.
Alexandre Julliard
julliard at winehq.org
Fri Jun 26 09:47:19 CDT 2009
Module: wine
Branch: master
Commit: 7cd3e77624b4acbf4abd3460de58c6e902696a56
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7cd3e77624b4acbf4abd3460de58c6e902696a56
Author: Aric Stewart <aric at codeweavers.com>
Date: Fri Jun 26 17:03:47 2009 +0900
msctf: Implement ITfInputProcessorProfiles::SetDefaultLanguageProfile.
---
dlls/msctf/inputprocessor.c | 45 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/dlls/msctf/inputprocessor.c b/dlls/msctf/inputprocessor.c
index 239c9f9..2cd20cd 100644
--- a/dlls/msctf/inputprocessor.c
+++ b/dlls/msctf/inputprocessor.c
@@ -358,9 +358,50 @@ static HRESULT WINAPI InputProcessorProfiles_SetDefaultLanguageProfile(
ITfInputProcessorProfiles *iface, LANGID langid, REFCLSID rclsid,
REFGUID guidProfiles)
{
+ WCHAR fullkey[168];
+ WCHAR buf[39];
+ HKEY hkey;
+ GUID catid;
+ HRESULT hr;
+ ITfCategoryMgr *catmgr;
InputProcessorProfiles *This = (InputProcessorProfiles*)iface;
- FIXME("STUB:(%p)\n",This);
- return E_NOTIMPL;
+ static const GUID * tipcats[3] = { &GUID_TFCAT_TIP_KEYBOARD,
+ &GUID_TFCAT_TIP_SPEECH,
+ &GUID_TFCAT_TIP_HANDWRITING };
+
+ TRACE("%p) %x %s %s\n",This, langid, debugstr_guid(rclsid),debugstr_guid(guidProfiles));
+
+ if (!rclsid || !guidProfiles)
+ return E_INVALIDARG;
+
+ hr = CategoryMgr_Constructor(NULL,(IUnknown**)&catmgr);
+
+ if (FAILED(hr))
+ return hr;
+
+ if (ITfCategoryMgr_FindClosestCategory(catmgr, rclsid,
+ &catid, tipcats, 3) != S_OK)
+ hr = ITfCategoryMgr_FindClosestCategory(catmgr, rclsid,
+ &catid, NULL, 0);
+ ITfCategoryMgr_Release(catmgr);
+
+ if (FAILED(hr))
+ return E_FAIL;
+
+ StringFromGUID2(&catid, buf, 39);
+ sprintfW(fullkey, szwDefaultFmt, szwSystemCTFKey, szwAssemblies, langid, buf);
+
+ if (RegCreateKeyExW(HKEY_CURRENT_USER, fullkey, 0, NULL, 0, KEY_READ | KEY_WRITE,
+ NULL, &hkey, NULL ) != ERROR_SUCCESS)
+ return E_FAIL;
+
+ StringFromGUID2(rclsid, buf, 39);
+ RegSetValueExW(hkey, szwDefault, 0, REG_SZ, (LPBYTE)buf, sizeof(buf));
+ StringFromGUID2(guidProfiles, buf, 39);
+ RegSetValueExW(hkey, szwProfile, 0, REG_SZ, (LPBYTE)buf, sizeof(buf));
+ RegCloseKey(hkey);
+
+ return S_OK;
}
static HRESULT WINAPI InputProcessorProfiles_ActivateLanguageProfile(
More information about the wine-cvs
mailing list