44 static const WCHAR szwLngp[] = {
'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',
'P',
'r',
'o',
'f',
'i',
'l',
'e',0};
47 static const WCHAR szwFullLangfmt[] = {
'%',
's',
'\\',
'%',
's',
'\\',
'%',
's',
'\\',
'0',
'x',
'%',
'0',
'8',
'x',
'\\',
'%',
's',0};
49 static const WCHAR szwAssemblies[] = {
'A',
's',
's',
'e',
'm',
'b',
'l',
'i',
'e',
's',0};
52 static const WCHAR szwDefaultFmt[] = {
'%',
's',
'\\',
'%',
's',
'\\',
'0',
'x',
'%',
'0',
'8',
'x',
'\\',
'%',
's',0};
110 *
ppv = &
This->IEnumTfInputProcessorProfiles_iface;
112 TRACE(
"(%p)->(IID_IEnumTfInputProcessorProfiles %p)\n",
This,
ppv);
113 *
ppv = &
This->IEnumTfInputProcessorProfiles_iface;
226 DWORD disposition = 0;
254 *
ppv = &
This->ITfInputProcessorProfiles_iface;
256 else if (
IsEqualIID(iid, &IID_ITfInputProcessorProfileMgr))
258 *
ppv = &
This->ITfInputProcessorProfileMgr_iface;
271 ITfInputProcessorProfiles_AddRef(iface);
296 ITfInputProcessorProfiles *iface,
REFCLSID rclsid)
318 ITfInputProcessorProfiles *iface,
REFCLSID rclsid)
336 ITfInputProcessorProfiles *iface,
REFCLSID rclsid,
346 DWORD disposition = 0;
348 static const WCHAR fmt2[] = {
'%',
's',
'\\',
'0',
'x',
'%',
'0',
'8',
'x',
'\\',
'%',
's',0};
349 static const WCHAR desc[] = {
'D',
'e',
's',
'c',
'r',
'i',
'p',
't',
'i',
'o',
'n',0};
350 static const WCHAR icnf[] = {
'I',
'c',
'o',
'n',
'F',
'i',
'l',
'e',0};
351 static const WCHAR icni[] = {
'I',
'c',
'o',
'n',
'I',
'n',
'd',
'e',
'x',0};
368 NULL, &fmtkey, &disposition);
400 ITfInputProcessorProfiles *iface,
IEnumGUID **ppEnum)
420 if (!
catid || !pclsid || !pguidProfile)
465 if (!rclsid || !guidProfiles)
473 if (ITfCategoryMgr_FindClosestCategory(catmgr, rclsid,
475 hr = ITfCategoryMgr_FindClosestCategory(catmgr, rclsid,
477 ITfCategoryMgr_Release(catmgr);
513 TRACE(
"Already Active\n");
517 hr = ITfInputProcessorProfiles_IsEnabledLanguageProfile(iface, rclsid,
521 TRACE(
"Not Enabled\n");
525 LanguageProfile.
clsid = *rclsid;
534 ITfInputProcessorProfiles *iface,
REFCLSID rclsid,
LANGID *plangid,
542 if (!rclsid || !plangid || !pguidProfile)
548 *pguidProfile =
profile.guidProfile;
568 ITfInputProcessorProfiles *iface,
LANGID *plangid)
576 *plangid =
This->currentLanguage;
604 ITfInputProcessorProfiles *iface,
LANGID **ppLangId,
ULONG *pulCount)
609 **ppLangId =
This->currentLanguage;
781 return ITfInputProcessorProfiles_QueryInterface(&
This->ITfInputProcessorProfiles_iface,
riid,
ppv);
787 return ITfInputProcessorProfiles_AddRef(&
This->ITfInputProcessorProfiles_iface);
793 return ITfInputProcessorProfiles_Release(&
This->ITfInputProcessorProfiles_iface);
836 enum_profiles->
ref = 1;
857 debugstr_w(pchDesc), cchDesc,
debugstr_w(pchIconFile), cchFile, uIconIndex, hklsubstitute, dwPreferredLayout,
898 return ITfInputProcessorProfiles_QueryInterface(&
This->ITfInputProcessorProfiles_iface, iid, ppvOut);
904 return ITfInputProcessorProfiles_AddRef(&
This->ITfInputProcessorProfiles_iface);
910 return ITfInputProcessorProfiles_Release(&
This->ITfInputProcessorProfiles_iface);
920 if (!
riid || !punk || !pdwCookie)
924 return advise_sink(&
This->LanguageProfileNotifySink, &IID_ITfLanguageProfileNotifySink,
970 *ppOut = (
IUnknown *)&
This->ITfInputProcessorProfiles_iface;
971 TRACE(
"returning %p\n", *ppOut);
992 *ppvOut = &
This->IEnumGUID_iface;
997 IEnumGUID_AddRef(iface);
1035 if (
This->key)
while (fetched < celt)
1045 ++(
This->next_index);
1054 if (pceltFetched) *pceltFetched = fetched;
1063 This->next_index += celt;
1071 This->next_index = 0;
1123 *ppOut = &
This->IEnumGUID_iface;
1124 TRACE(
"returning %p\n", *ppOut);
1137 ITfCategoryMgr_Release(
This->catmgr);
1149 *ppvOut = &
This->IEnumTfLanguageProfiles_iface;
1154 IEnumTfLanguageProfiles_AddRef(iface);
1186 WCHAR profileid[39];
1190 static const WCHAR fmt[] = {
'%',
's',
'\\',
'%',
's',
'\\',
'0',
'x',
'%',
'0',
'8',
'x',0};
1201 This->lang_index = 0;
1211 ++(
This->lang_index);
1225 if (ITfCategoryMgr_FindClosestCategory(
This->catmgr, &
clsid,
1227 ITfCategoryMgr_FindClosestCategory(
This->catmgr, &
clsid,
1244 if (
This->tipkey)
while (fetched < ulCount)
1254 ++(
This->tip_index);
1258 while ( fetched < ulCount)
1273 if (pcFetch) *pcFetch = fetched;
1288 This->tip_index = 0;
1292 This->lang_index = 0;
1316 static const WCHAR fmt[] = {
'%',
's',
'\\',
'%',
's',
'\\',
'0',
'x',
'%',
'0',
'8',
'x',0};
const WCHAR szwSystemTIPKey[]
HRESULT add_active_textservice(TF_LANGUAGEPROFILE *lp)
const WCHAR szwSystemCTFKey[]
EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH
#define HKEY_CURRENT_USER
GLuint GLuint GLsizei count
void free_sinks(struct list *sink_list)
#define SINK_FOR_EACH(cursor, list, type, elem)
IEnumGUID IEnumGUID_iface
HRESULT advise_sink(struct list *sink_list, REFIID riid, DWORD cookie_magic, IUnknown *unk, DWORD *cookie)
LCID WINAPI GetUserDefaultLCID(void)
DWORD get_Cookie_magic(DWORD id)
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLsizei GLenum GLboolean sink
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
GLenum GLuint GLenum GLsizei const GLchar * buf
static const WCHAR desc[]
EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING
#define REG_CREATED_NEW_KEY
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
HRESULT CategoryMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
#define COOKIE_MAGIC_IPPSINK
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
#define InterlockedDecrement
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
WCHAR szwCurrentClsid[39]
#define CLASS_E_NOAGGREGATION
int _cdecl swprintf(const WCHAR *,...)
SOCKET WSAAPI accept(IN SOCKET s, OUT LPSOCKADDR addr, OUT INT FAR *addrlen)
IEnumTfLanguageProfiles IEnumTfLanguageProfiles_iface
LSTATUS WINAPI RegDeleteTreeW(HKEY hKey, LPCWSTR lpszSubKey)
#define InterlockedIncrement
BOOL get_active_textservice(REFCLSID rclsid, TF_LANGUAGEPROFILE *profile)
EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
HRESULT unadvise_sink(DWORD cookie)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
#define HeapFree(x, y, z)
#define RegCloseKey(hKey)
#define IsEqualIID(riid1, riid2)
#define HKEY_LOCAL_MACHINE