msctf: Implement ITfInputProcessorProfiles::AddLanguageProfile.

This commit is contained in:
Aric Stewart 2009-02-03 13:17:50 -06:00 committed by Alexandre Julliard
parent 649d12b170
commit 3680bdccc2
1 changed files with 43 additions and 2 deletions

View File

@ -130,9 +130,50 @@ static HRESULT WINAPI InputProcessorProfiles_AddLanguageProfile(
ULONG cchDesc, const WCHAR *pchIconFile, ULONG cchFile,
ULONG uIconIndex)
{
HKEY tipkey,fmtkey;
WCHAR buf[39];
WCHAR fullkey[100];
ULONG res;
static const WCHAR fmt[] = {'%','s','\\','%','s',0};
static const WCHAR fmt2[] = {'%','s','\\','0','x','%','0','8','x','\\','%','s',0};
static const WCHAR lngp[] = {'L','a','n','g','u','a','g','e','P','r','o','f','i','l','e',0};
static const WCHAR desc[] = {'D','e','s','c','r','i','p','t','i','o','n',0};
static const WCHAR icnf[] = {'I','c','o','n','F','i','l','e',0};
static const WCHAR icni[] = {'I','c','o','n','I','n','d','e','x',0};
InputProcessorProfiles *This = (InputProcessorProfiles*)iface;
FIXME("STUB:(%p)\n",This);
return E_NOTIMPL;
TRACE("(%p) %s %x %s %s %s %i\n",This,debugstr_guid(rclsid), langid,
debugstr_guid(guidProfile), debugstr_wn(pchDesc,cchDesc),
debugstr_wn(pchIconFile,cchFile),uIconIndex);
StringFromGUID2(rclsid, buf, 39);
sprintfW(fullkey,fmt,szwSystemTIPKey,buf);
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,fullkey, 0, KEY_READ | KEY_WRITE,
&tipkey ) != ERROR_SUCCESS)
return E_FAIL;
StringFromGUID2(guidProfile, buf, 39);
sprintfW(fullkey,fmt2,lngp,langid,buf);
res = RegCreateKeyExW(tipkey,fullkey, 0, NULL, 0, KEY_READ | KEY_WRITE,
NULL, &fmtkey, NULL);
if (!res)
{
RegSetValueExW(fmtkey, desc, 0, REG_SZ, (LPBYTE)pchDesc, cchDesc * sizeof(WCHAR));
RegSetValueExW(fmtkey, icnf, 0, REG_SZ, (LPBYTE)pchIconFile, cchFile * sizeof(WCHAR));
RegSetValueExW(fmtkey, icni, 0, REG_DWORD, (LPBYTE)&uIconIndex, sizeof(DWORD));
RegCloseKey(fmtkey);
}
RegCloseKey(tipkey);
if (!res)
return S_OK;
else
return E_FAIL;
}
static HRESULT WINAPI InputProcessorProfiles_RemoveLanguageProfile(