Aric Stewart : msctf: Implement ITfInputProcessorProfiles:: IsEnabledLanguageProfile.

Alexandre Julliard julliard at winehq.org
Wed Feb 18 10:15:21 CST 2009


Module: wine
Branch: master
Commit: ba99ea2e0cd38fea564910ed798da23c5d2c499e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ba99ea2e0cd38fea564910ed798da23c5d2c499e

Author: Aric Stewart <aric at codeweavers.com>
Date:   Tue Feb 17 10:25:44 2009 -0600

msctf: Implement ITfInputProcessorProfiles::IsEnabledLanguageProfile.

---

 dlls/msctf/inputprocessor.c |   42 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/dlls/msctf/inputprocessor.c b/dlls/msctf/inputprocessor.c
index efdf831..ca2bbda 100644
--- a/dlls/msctf/inputprocessor.c
+++ b/dlls/msctf/inputprocessor.c
@@ -348,9 +348,47 @@ static HRESULT WINAPI InputProcessorProfiles_IsEnabledLanguageProfile(
         ITfInputProcessorProfiles *iface, REFCLSID rclsid, LANGID langid,
         REFGUID guidProfile, BOOL *pfEnable)
 {
+    HKEY key;
+    WCHAR buf[39];
+    WCHAR buf2[39];
+    WCHAR fullkey[168];
+    ULONG res;
+
     InputProcessorProfiles *This = (InputProcessorProfiles*)iface;
-    FIXME("STUB:(%p)\n",This);
-    return E_NOTIMPL;
+    TRACE("(%p) %s, %i, %s, %p\n",This,debugstr_guid(rclsid),langid,debugstr_guid(guidProfile),pfEnable);
+
+    if (!pfEnable)
+        return E_INVALIDARG;
+
+    StringFromGUID2(rclsid, buf, 39);
+    StringFromGUID2(guidProfile, buf2, 39);
+    sprintfW(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2);
+
+    res = RegOpenKeyExW(HKEY_CURRENT_USER, fullkey, 0, KEY_READ | KEY_WRITE, &key);
+
+    if (!res)
+    {
+        DWORD count = sizeof(DWORD);
+        res = RegQueryValueExW(key, szwEnabled, 0, NULL, (LPBYTE)pfEnable, &count);
+        RegCloseKey(key);
+    }
+
+    if (res)  /* Try Default */
+    {
+        res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, fullkey, 0, KEY_READ | KEY_WRITE, &key);
+
+        if (!res)
+        {
+            DWORD count = sizeof(DWORD);
+            res = RegQueryValueExW(key, szwEnabled, 0, NULL, (LPBYTE)pfEnable, &count);
+            RegCloseKey(key);
+        }
+    }
+
+    if (!res)
+        return S_OK;
+    else
+        return E_FAIL;
 }
 
 static HRESULT WINAPI InputProcessorProfiles_EnableLanguageProfileByDefault(




More information about the wine-cvs mailing list