msctf: Add ITfDocumentMgr interface.
diff --git a/include/msctf.idl b/include/msctf.idl
index 2ef8b07..620b65f 100644
--- a/include/msctf.idl
+++ b/include/msctf.idl
@@ -25,10 +25,13 @@
cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
+typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie;
typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId;
interface ITfDocumentMgr;
+interface ITfContext;
interface IEnumTfDocumentMgrs;
+interface IEnumTfContexts;
interface ITfFunctionProvider;
interface IEnumTfFunctionProviders;
interface ITfCompartmentMgr;
@@ -75,3 +78,36 @@
HRESULT GetGlobalCompartment(
[out] ITfCompartmentMgr **ppCompMgr);
};
+
+
+[
+ object,
+ uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e),
+ pointer_default(unique)
+]
+interface ITfDocumentMgr: IUnknown
+{
+ HRESULT CreateContext(
+ [in] TfClientId tidOwner,
+ [in] DWORD dwFlags,
+ [in, unique] IUnknown *punk,
+ [out] ITfContext **ppic,
+ [out] TfEditCookie *pecTextStore);
+
+ HRESULT Push(
+ [in] ITfContext *pic);
+
+ const DWORD TF_POPF_ALL = 0x0001;
+
+ HRESULT Pop(
+ [in] DWORD dwFlags);
+
+ HRESULT GetTop(
+ [out] ITfContext **ppic);
+
+ HRESULT GetBase(
+ [out] ITfContext **ppic);
+
+ HRESULT EnumContexts(
+ [out] IEnumTfContexts **ppEnum);
+};