[PSDK]
[reactos.git] / reactos / include / psdk / msctf.idl
index ecb696e..bce38ab 100644 (file)
@@ -33,6 +33,8 @@ cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);")
 cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);")
 cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);")
 cpp_quote("HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);")
+cpp_quote("HRESULT WINAPI TF_CreateLangBarItemMgr(ITfLangBarItemMgr **pplbim);")
+cpp_quote("HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void);")
 
 cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;")
 cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);")
@@ -79,6 +81,11 @@ cpp_quote("#define TF_MOD_LSHIFT                0x0100")
 cpp_quote("#define TF_MOD_ON_KEYUP              0x0200")
 cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER   0x0400")
 
+cpp_quote("#define TF_PROFILETYPE_INPUTPROCESSOR  0x0001")
+cpp_quote("#define TF_PROFILETYPE_KEYBOARDLAYOUT  0x0002")
+
+cpp_quote("#define TF_IPSINK_FLAG_ACTIVE 0x0001")
+
 interface ITfDocumentMgr;
 interface ITfContext;
 interface IEnumTfDocumentMgrs;
@@ -99,6 +106,20 @@ interface ITfEditRecord;
 interface ITfCompositionView;
 interface ITfKeyEventSink;
 
+cpp_quote("#if 0")
+typedef [uuid(4f5d560f-5ab5-4dde-8c4d-404592857ab0)] UINT_PTR HKL;
+cpp_quote("#endif")
+
+typedef [uuid(e26d9e1d-691e-4f29-90d7-338dcf1f8cef)] struct TF_PERSISTENT_PROPERTY_HEADER_ACP
+{
+    GUID guidType;
+    LONG ichStart;
+    LONG cch;
+    ULONG cb;
+    DWORD dwPrivate;
+    CLSID clsidTIP;
+} TF_PERSISTENT_PROPERTY_HEADER_ACP;
+
 typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
 {
     CLSID clsid;
@@ -307,6 +328,8 @@ interface ITfContext : IUnknown
 
 };
 
+const DWORD TF_INVALID_COOKIE = 0xffffffff;
+
 [
   object,
   uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
@@ -421,6 +444,105 @@ interface ITfInputProcessorProfiles : IUnknown
         [in] HKL hKL);
 };
 
+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);
+}
+
 typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)]
 enum {
     TF_LS_NONE      = 0,
@@ -615,6 +737,19 @@ interface ITfContextOwnerCompositionSink : IUnknown
         [in] ITfCompositionView *pComposition);
 };
 
+[
+    object,
+    uuid(b246cb75-a93e-4652-bf8c-b3fe0cfd7e57),
+    pointer_default(unique)
+]
+interface ITfActiveLanguageProfileNotifySink : IUnknown
+{
+    HRESULT OnActivated(
+        [in] REFCLSID clsid,
+        [in] REFGUID guidProfile,
+        [in] BOOL fActivated);
+}
+
 [
   object,
   uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
@@ -1193,6 +1328,51 @@ interface ITfContextOwnerCompositionServices : ITfContextComposition
     HRESULT TerminateComposition([in] ITfCompositionView *pComposition);
 }
 
+[
+    object,
+    uuid(4ef89150-0807-11d3-8df0-00105a2799b5),
+    pointer_default(unique)
+]
+interface ITfPersistentPropertyLoaderACP : IUnknown
+{
+    HRESULT LoadProperty(
+            [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
+            [out] IStream **ppStream);
+}
+
+[
+    object,
+    uuid(b23eb630-3e1c-11d3-a745-0050040ab407),
+    pointer_default(unique)
+]
+interface ITfContextOwnerServices : IUnknown
+{
+    HRESULT OnLayoutChange();
+
+    HRESULT OnStatusChange([in] DWORD dwFlags);
+
+    HRESULT OnAttributeChange([in] REFGUID rguidAttribute);
+
+    HRESULT Serialize(
+            [in] ITfProperty *pProp,
+            [in] ITfRange *pRange,
+            [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
+            [in] IStream *pStream);
+
+    HRESULT Unserialize(
+            [in] ITfProperty *pProp,
+            [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
+            [in] IStream *pStream,
+            [in] ITfPersistentPropertyLoaderACP *pLoader);
+
+    HRESULT ForceLoadProperty([in] ITfProperty *pProp);
+
+    HRESULT CreateRange(
+            [in] LONG acpStart,
+            [in] LONG acpEnd,
+            [out] ITfRangeACP **ppRange);
+}
+
 [
     object,
     uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53),
@@ -1362,139 +1542,62 @@ interface ITfThreadFocusSink : IUnknown
 
 [
   object,
-  uuid(101d6610-0990-11d3-8df0-00105a2799b5),
+  uuid(71c6e74e-0f28-11d8-a82a-00065b84435c),
   pointer_default(unique)
 ]
-interface ITfFunctionProvider : IUnknown
+interface ITfInputProcessorProfileActivationSink : IUnknown
 {
-    HRESULT GetType(
-        [out] GUID *pguid);
-
-    HRESULT GetDescription(
-        [out] BSTR *pbstrDesc);
-
-    HRESULT GetFunction(
-        [in] REFGUID rguid,
-        [in] REFIID riid,
-        [out, iid_is(riid)] IUnknown **ppunk);
+    HRESULT OnActivated(
+        [in] DWORD dwProfileType,
+        [in] LANGID langid,
+        [in] REFCLSID clsid,
+        [in] REFGUID catid,
+        [in] REFGUID guidProfile,
+        [in] HKL hkl,
+        [in] DWORD dwFlags);
 }
 
 [
-  object,
-  uuid(e4b24db0-0990-11d3-8df0-00105a2799b5),
-  pointer_default(unique)
-]
-interface IEnumTfFunctionProviders : IUnknown
-{
-    HRESULT Clone(
-        [out] IEnumTfFunctionProviders **ppEnum);
-
-    HRESULT Next(
-        [in] ULONG ulCount,
-        [out, size_is(ulCount), length_is(*pcFetch)] ITfFunctionProvider **ppCmdobj,
-        [out] ULONG *pcFetch);
-
-    HRESULT Reset();
-
-    HRESULT Skip(
-        [in] ULONG ulCount);
-};
-
-[
-  object,
-  uuid(2433bf8e-0f9b-435c-ba2c-180611978c30),
-  pointer_default(unique)
-]
-interface ITfContextView : IUnknown
-{
-    HRESULT GetRangeFromPoint(
-        [in] TfEditCookie ec,
-        [in] const POINT *ppt,
-        [in] DWORD dwFlags,
-        [out] ITfRange **ppRange);
-
-    HRESULT GetTextExt(
-        [in] TfEditCookie ec,
-        [in] ITfRange *pRange,
-        [out] RECT *prc,
-        [out] BOOL *pfClipped);
-
-    HRESULT GetScreenExt(
-        [out] RECT *prc);
-
-    HRESULT GetWnd(
-        [out] HWND *phwnd);
-};
-
-[
-  object,
-  uuid(f0c0f8dd-cf38-44e1-bb0f-68cf0d551c78),
-  pointer_default(unique)
+    object,
+    local,
+    uuid(a1adaaa2-3a24-449d-ac96-5183e7f5c217),
+    pointer_default(unique)
 ]
-interface IEnumTfContextViews : IUnknown
+interface ITfMouseSink : IUnknown
 {
-    HRESULT Clone(
-        [out] IEnumTfContextViews **ppEnum);
-
-    HRESULT Next(
-        [in] ULONG ulCount,
-        [out, size_is(ulCount), length_is(*pcFetched)] ITfContextView **rgViews,
-        [out] ULONG *pcFetched);
-
-    HRESULT Reset();
-
-    HRESULT Skip(
-        [in] ULONG ulCount);
-};
+    HRESULT OnMouseEvent(
+        [in] ULONG uEdge,
+        [in] ULONG uQuadrant,
+        [in] DWORD dwBtnStatus,
+        [out] BOOL *pfEaten);
+}
 
 [
-  object,
-  uuid(19188cb0-aca9-11d2-afc5-00105a2799b5),
-  pointer_default(unique)
+    object,
+    uuid(09d146cd-a544-4132-925b-7afa8ef322d0),
+    pointer_default(unique)
 ]
-interface IEnumTfProperties : IUnknown
+interface ITfMouseTracker : IUnknown
 {
-    HRESULT Clone(
-        [out] IEnumTfProperties **ppEnum);
-
-    HRESULT Next(
-        [in] ULONG ulCount,
-        [out, size_is(ulCount), length_is(*pcFetched)] ITfProperty **ppProp,
-        [out] ULONG *pcFetched);
-
-    HRESULT Reset();
+    HRESULT AdviseMouseSink(
+        [in] ITfRange *range,
+        [in] ITfMouseSink *pSink,
+        [out] DWORD *pdwCookie);
 
-    HRESULT Skip(
-        [in] ULONG ulCount);
+    HRESULT UnadviseMouseSink([in] DWORD dwCookie);
 }
 
 [
-  object,
-  uuid(463a506d-6992-49d2-9b88-93d55e70bb16),
-  pointer_default(unique)
-]
-interface ITfRangeBackup : IUnknown
-{
-    HRESULT Restore(
-        [in] TfEditCookie ec,
-        [in] ITfRange *pRange);
-};
-
-[
-  object,
-  uuid(42d4d099-7c1a-4a89-b836-6c6f22160df0),
-  pointer_default(unique)
+    object,
+    uuid(3bdd78e2-c16e-47fd-b883-ce6facc1a208),
+    pointer_default(unique)
 ]
-interface ITfEditRecord : IUnknown
+interface ITfMouseTrackerACP : IUnknown
 {
-    const DWORD TF_GTP_INCL_TEXT = 0x1;
-
-    HRESULT GetSelectionStatus(
-        [out] BOOL *pfChanged);
+    HRESULT AdviseMouseSink(
+        [in] ITfRangeACP *range,
+        [in] ITfMouseSink *pSink,
+        [out] DWORD *pdwCookie);
 
-    HRESULT GetTextAndPropertyUpdates(
-        [in] DWORD dwFlags,
-        [in, size_is(cProperties)] const GUID **prgProperties,
-        [in] ULONG cProperties,
-        [out] IEnumTfRanges **ppEnum);
-};
+    HRESULT UnadviseMouseSink([in] DWORD dwCookie);
+}