From 114b0dea1948a3f12595d1c41fb246116bd29ab4 Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <[email protected]>
Date: Wed, 14 Apr 2021 21:29:53 +0530
Subject: [PATCH] headers: Add spellcheck.idl.

Signed-off-by: Biswapriyo Nath <[email protected]>
---
 mingw-w64-headers/Makefile.am            |   1 +
 mingw-w64-headers/include/spellcheck.idl | 157 +++++++++++++++++++++++
 2 files changed, 158 insertions(+)
 create mode 100644 mingw-w64-headers/include/spellcheck.idl

diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index e32aea6..35900d5 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -198,6 +198,7 @@ IDL_SRCS = \
   include/shobjidl.idl \
   include/shtypes.idl \
   include/spatialaudioclient.idl \
+  include/spellcheck.idl \
   include/strmif.idl \
   include/structuredquerycondition.idl \
   include/taskschd.idl \
diff --git a/mingw-w64-headers/include/spellcheck.idl 
b/mingw-w64-headers/include/spellcheck.idl
new file mode 100644
index 0000000..92e188e
--- /dev/null
+++ b/mingw-w64-headers/include/spellcheck.idl
@@ -0,0 +1,157 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+cpp_quote("#ifndef MIN_SPELLING_NTDDI")
+cpp_quote("#define MIN_SPELLING_NTDDI NTDDI_WIN8")
+cpp_quote("#endif")
+
+cpp_quote("#if NTDDI_VERSION >= MIN_SPELLING_NTDDI")
+
+import "oaidl.idl";
+import "ocidl.idl";
+
+cpp_quote("#include <winapifamily.h>")
+
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
+
+typedef [v1_enum] enum WORDLIST_TYPE {
+  WORDLIST_TYPE_IGNORE = 0,
+  WORDLIST_TYPE_ADD = 1,
+  WORDLIST_TYPE_EXCLUDE = 2,
+  WORDLIST_TYPE_AUTOCORRECT = 3,
+} WORDLIST_TYPE;
+
+[
+  object,
+  uuid(b7c82d61-fbe8-4b47-9b27-6c0d2e0de0a3),
+  pointer_default(unique)
+]
+interface ISpellingError : IUnknown {
+
+  typedef [v1_enum] enum CORRECTIVE_ACTION {
+    CORRECTIVE_ACTION_NONE = 0,
+    CORRECTIVE_ACTION_GET_SUGGESTIONS = 1,
+    CORRECTIVE_ACTION_REPLACE = 2,
+    CORRECTIVE_ACTION_DELETE = 3,
+  } CORRECTIVE_ACTION;
+
+  [propget] HRESULT StartIndex([out, retval] ULONG *val);
+  [propget] HRESULT Length([out, retval] ULONG *val);
+  [propget] HRESULT CorrectiveAction([out, retval] CORRECTIVE_ACTION *val);
+  [propget] HRESULT Replacement([out, retval] LPWSTR *val);
+}
+
+[
+  object,
+  uuid(803e3bd4-2828-4410-8290-418d1d73c762),
+  pointer_default(unique)
+]
+interface IEnumSpellingError : IUnknown {
+  HRESULT Next([out, retval] ISpellingError **val);
+}
+
+[
+  object,
+  uuid(432e5f85-35cf-4606-a801-6f70277e1d7a),
+  pointer_default(unique)
+]
+interface IOptionDescription : IUnknown {
+  [propget] HRESULT Id([out, retval] LPWSTR *val);
+  [propget] HRESULT Heading([out, retval] LPWSTR *val);
+  [propget] HRESULT Description([out, retval] LPWSTR *val);
+  [propget] HRESULT Labels([out, retval] IEnumString **val);
+}
+
+interface ISpellChecker;
+
+[
+  object,
+  uuid(0b83a5b0-792f-4eab-9799-acf52c5ed08a),
+  pointer_default(unique)
+]
+interface ISpellCheckerChangedEventHandler : IUnknown {
+  HRESULT Invoke([in] ISpellChecker *sender);
+}
+
+[
+  object,
+  uuid(b6fd0b71-e2bc-4653-8d05-f197e412770b),
+  pointer_default(unique)
+]
+interface ISpellChecker : IUnknown {
+  [propget] HRESULT LanguageTag([out, retval] LPWSTR *val);
+  HRESULT Check([in] LPCWSTR text, [out, retval] IEnumSpellingError **val);
+  HRESULT Suggest([in] LPCWSTR word, [out, retval] IEnumString **val);
+  HRESULT Add([in] LPCWSTR word);
+  HRESULT Ignore([in] LPCWSTR word);
+  HRESULT AutoCorrect([in] LPCWSTR from, [in] LPCWSTR to);
+  HRESULT GetOptionValue([in] LPCWSTR option_id, [out, retval] BYTE *val);
+  [propget] HRESULT OptionIds([out, retval] IEnumString **val);
+  [propget] HRESULT Id([out, retval] LPWSTR *val);
+  [propget] HRESULT LocalizedName([out, retval] LPWSTR *val);
+  HRESULT add_SpellCheckerChanged([in] ISpellCheckerChangedEventHandler 
*handler, [out, retval] DWORD *event_cookie);
+  HRESULT remove_SpellCheckerChanged([in] DWORD event_cookie);
+  HRESULT GetOptionDescription([in] LPCWSTR optionId, [out, retval] 
IOptionDescription **val);
+  HRESULT ComprehensiveCheck([in] LPCWSTR text, [out, retval] 
IEnumSpellingError **val);
+}
+
+[
+  object,
+  uuid(e7ed1c71-87f7-4378-a840-c9200dacee47),
+  pointer_default(unique)
+]
+interface ISpellChecker2 : ISpellChecker {
+  HRESULT Remove([in] LPCWSTR word);
+}
+
+[
+  object,
+  uuid(8e018a9d-2415-4677-bf08-794ea61f94bb),
+  pointer_default(unique)
+]
+interface ISpellCheckerFactory : IUnknown {
+  [propget] HRESULT SupportedLanguages([out, retval] IEnumString **val);
+  HRESULT IsSupported([in] LPCWSTR languageTag, [out, retval] WINBOOL *val);
+  HRESULT CreateSpellChecker([in] LPCWSTR languageTag, [out, retval] 
ISpellChecker **val);
+}
+
+cpp_quote("#endif /* WINAPI_PARTITION_APP */")
+
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+
+[
+  object,
+  uuid(aa176b85-0e12-4844-8e1a-eef1da77f586),
+  pointer_default(unique)
+]
+interface IUserDictionariesRegistrar : IUnknown {
+  HRESULT RegisterUserDictionary([in] LPCWSTR dictionaryPath, [in] LPCWSTR 
languageTag);
+  HRESULT UnregisterUserDictionary([in] LPCWSTR dictionaryPath, [in] LPCWSTR 
languageTag);
+}
+
+cpp_quote("#endif /* WINAPI_PARTITION_DESKTOP */")
+
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
+
+[
+  uuid(4a250e01-61ea-400b-a27d-bf3744bcc9f5),
+  version(1.0),
+]
+library MsSpellCheckLib {
+  importlib("stdole2.tlb");
+
+  [
+    uuid(7ab36653-1796-484b-bdfa-e74f1db7c1dc)
+  ]
+  coclass SpellCheckerFactory {
+    [default] interface ISpellCheckerFactory;
+    interface IUserDictionariesRegistrar;
+  };
+}
+
+cpp_quote("#endif /* WINAPI_PARTITION_APP */")
+
+cpp_quote("#endif /* MIN_SPELLING_NTDDI */")
-- 
2.31.1

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to