+typedef [uuid(44d2825a-10e5-43b2-877f-6cb2f43b7e7e)]
+struct TF_INPUTPROCESSORPROFILE {
+ DWORD dwProfileType;
+ LANGID langid;
+ CLSID clsid;
+ GUID guidProfile;
+ GUID catid;
+ HKL hklSubstitute;
+ DWORD dwCaps;
+ HKL hkl;
+ DWORD dwFlags;
+} TF_INPUTPROCESSORPROFILE;
+
+[
+ object,
+ uuid(71c6e74d-0f28-11d8-a82a-00065b84435c),
+ pointer_default(unique)
+]
+interface IEnumTfInputProcessorProfiles : IUnknown
+{
+ HRESULT Clone(
+ [out] IEnumTfInputProcessorProfiles **ppEnum);
+
+ HRESULT Next(
+ [in] ULONG ulCount,
+ [out, size_is(ulCount), length_is(*pcFetch)] TF_INPUTPROCESSORPROFILE *pProfile,
+ [out] ULONG *pcFetch);
+
+ HRESULT Reset();
+
+ HRESULT Skip(
+ [in] ULONG ulCount);
+}
+
+[
+ object,
+ uuid(71c6e74c-0f28-11d8-a82a-00065b84435c),
+ pointer_default(unique)
+]
+interface ITfInputProcessorProfileMgr : IUnknown
+{
+ HRESULT ActivateProfile(
+ [in] DWORD dwProfileType,
+ [in] LANGID langid,
+ [in] REFCLSID clsid,
+ [in] REFGUID guidProfile,
+ [in] HKL hkl,
+ [in] DWORD dwFlags);
+
+ HRESULT DeactivateProfile(
+ [in] DWORD dwProfileType,
+ [in] LANGID langid,
+ [in] REFCLSID clsid,
+ [in] REFGUID guidProfile,
+ [in] HKL hkl,
+ [in] DWORD dwFlags);
+
+ HRESULT GetProfile(
+ [in] DWORD dwProfileType,
+ [in] LANGID langid,
+ [in] REFCLSID clsid,
+ [in] REFGUID guidProfile,
+ [in] HKL hkl,
+ [out] TF_INPUTPROCESSORPROFILE *pProfile);
+
+
+ HRESULT EnumProfiles(
+ [in] LANGID langid,
+ [out] IEnumTfInputProcessorProfiles **ppEnum);
+
+ HRESULT ReleaseInputProcessor(
+ [in] REFCLSID rclsid,
+ [in] DWORD dwFlags);
+
+ HRESULT RegisterProfile(
+ [in] REFCLSID rclsid,
+ [in] LANGID langid,
+ [in] REFGUID guidProfile,
+ [in, size_is(cchDesc)] const WCHAR *pchDesc,
+ [in] ULONG cchDesc,
+ [in, size_is(cchFile)] const WCHAR *pchIconFile,
+ [in] ULONG cchFile,
+ [in] ULONG uIconIndex,
+ [in] HKL hklsubstitute,
+ [in] DWORD dwPreferredLayout,
+ [in] BOOL bEnabledByDefault,
+ [in] DWORD dwFlags);
+
+ HRESULT UnregisterProfile(
+ [in] REFCLSID rclsid,
+ [in] LANGID langid,
+ [in] REFGUID guidProfile,
+ [in] DWORD dwFlags);
+
+ HRESULT GetActiveProfile(
+ [in] REFGUID catid,
+ [out] TF_INPUTPROCESSORPROFILE *pProfile);
+}
+