1use shared::minwindef::{BOOL, BYTE, DWORD};
2use shared::ntdef::{LPCWSTR, LPWSTR, ULONG};
3use shared::winerror::HRESULT;
4use um::objidlbase::IEnumString;
5use um::unknwnbase::{IUnknown, IUnknownVtbl};
6ENUM!{enum WORDLIST_TYPE {
7 WORDLIST_TYPE_IGNORE = 0,
8 WORDLIST_TYPE_ADD = 1,
9 WORDLIST_TYPE_EXCLUDE = 2,
10 WORDLIST_TYPE_AUTOCORRECT = 3,
11}}
12ENUM!{enum CORRECTIVE_ACTION {
13 CORRECTIVE_ACTION_NONE = 0,
14 CORRECTIVE_ACTION_GET_SUGGESTIONS = 1,
15 CORRECTIVE_ACTION_REPLACE = 2,
16 CORRECTIVE_ACTION_DELETE = 3,
17}}
18RIDL!{#[uuid(0xb7c82d61, 0xfbe8, 0x4b47, 0x9b, 0x27, 0x6c, 0x0d, 0x2e, 0x0d, 0xe0, 0xa3)]
19interface ISpellingError(ISpellingErrorVtbl): IUnknown(IUnknownVtbl) {
20 fn get_StartIndex(
21 value: *mut ULONG,
22 ) -> HRESULT,
23 fn get_Length(
24 value: *mut ULONG,
25 ) -> HRESULT,
26 fn get_CorrectiveAction(
27 value: *mut CORRECTIVE_ACTION,
28 ) -> HRESULT,
29 fn get_Replacement(
30 value: *mut LPWSTR,
31 ) -> HRESULT,
32}}
33RIDL!{#[uuid(0x803e3bd4, 0x2828, 0x4410, 0x82, 0x90, 0x41, 0x8d, 0x1d, 0x73, 0xc7, 0x62)]
34interface IEnumSpellingError(IEnumSpellingErrorVtbl): IUnknown(IUnknownVtbl) {
35 fn Next(
36 value: *mut *mut ISpellingError,
37 ) -> HRESULT,
38}}
39RIDL!{#[uuid(0x432e5f85, 0x35cf, 0x4606, 0xa8, 0x01, 0x6f, 0x70, 0x27, 0x7e, 0x1d, 0x7a)]
40interface IOptionDescription(IOptionDescriptionVtbl): IUnknown(IUnknownVtbl) {
41 fn Id(
42 value: *mut LPWSTR,
43 ) -> HRESULT,
44 fn Heading(
45 value: *mut LPWSTR,
46 ) -> HRESULT,
47 fn Description(
48 value: *mut LPWSTR,
49 ) -> HRESULT,
50 fn Labels(
51 value: *mut *mut IEnumString,
52 ) -> HRESULT,
53}}
54RIDL!{#[uuid(0x0b83a5b0, 0x792f, 0x4eab, 0x97, 0x99, 0xac, 0xf5, 0x2c, 0x5e, 0xd0, 0x8a)]
55interface ISpellCheckerChangedEventHandler(ISpellCheckerChangedEventHandlerVtbl):
56 IUnknown(IUnknownVtbl) {
57 fn Invoke(
58 sender: *const ISpellChecker,
59 ) -> HRESULT,
60}}
61RIDL!{#[uuid(0xb6fd0b71, 0xe2bc, 0x4653, 0x8d, 0x05, 0xf1, 0x97, 0xe4, 0x12, 0x77, 0x0b)]
62interface ISpellChecker(ISpellCheckerVtbl): IUnknown(IUnknownVtbl) {
63 fn get_LanguageTag(
64 value: *mut LPWSTR,
65 ) -> HRESULT,
66 fn Check(
67 text: LPCWSTR,
68 value: *mut *mut IEnumSpellingError,
69 ) -> HRESULT,
70 fn Suggest(
71 word: LPCWSTR,
72 value: *mut *mut IEnumString,
73 ) -> HRESULT,
74 fn Add(
75 word: LPCWSTR,
76 ) -> HRESULT,
77 fn Ignore(
78 word: LPCWSTR,
79 ) -> HRESULT,
80 fn AutoCorrect(
81 from: LPCWSTR,
82 to: LPCWSTR,
83 ) -> HRESULT,
84 fn GetOptionValue(
85 optionId: LPCWSTR,
86 value: *mut BYTE,
87 ) -> HRESULT,
88 fn Get_OptionIds(
89 value: *mut *mut IEnumString,
90 ) -> HRESULT,
91 fn Get_Id(
92 value: *mut LPWSTR,
93 ) -> HRESULT,
94 fn Get_LocalizedName(
95 value: *mut LPWSTR,
96 ) -> HRESULT,
97 fn add_SpellCheckerChanged(
98 handler: *const ISpellCheckerChangedEventHandler,
99 eventCookie: *mut DWORD,
100 ) -> HRESULT,
101 fn remove_SpellCheckerChanged(
102 eventCookie: DWORD,
103 ) -> HRESULT,
104 fn GetOptionDescription(
105 optionId: LPCWSTR,
106 value: *mut *mut IOptionDescription,
107 ) -> HRESULT,
108 fn ComprehensiveCheck(
109 text: LPCWSTR,
110 value: *mut *mut IEnumSpellingError,
111 ) -> HRESULT,
112}}
113RIDL!{#[uuid(0xe7ed1c71, 0x87f7, 0x4378, 0xa8, 0x40, 0xc9, 0x20, 0x0d, 0xac, 0xee, 0x47)]
114interface ISpellChecker2(ISpellChecker2Vtbl): ISpellChecker(ISpellCheckerVtbl) {
115 fn Remove(
116 word: LPCWSTR,
117 ) -> HRESULT,
118}}
119RIDL!{#[uuid(0x8e018a9d, 0x2415, 0x4677, 0xbf, 0x08, 0x79, 0x4e, 0xa6, 0x1f, 0x94, 0xbb)]
120interface ISpellCheckerFactory(ISpellCheckerFactoryVtbl): IUnknown(IUnknownVtbl) {
121 fn SupportedLanguages(
122 value: *mut *mut IEnumString,
123 ) -> HRESULT,
124 fn IsSupported(
125 languageTag: LPCWSTR,
126 value: *mut BOOL,
127 ) -> HRESULT,
128 fn CreateSpellChecker(
129 languageTag: LPCWSTR,
130 value: *mut *mut ISpellChecker,
131 ) -> HRESULT,
132}}
133RIDL!{#[uuid(0xaa176b85, 0x0e12, 0x4844, 0x8e, 0x1a, 0xee, 0xf1, 0xda, 0x77, 0xf5, 0x86)]
134interface IUserDictionariesRegistrar(IUserDictionariesRegistrarVtbl): IUnknown(IUnknownVtbl) {
135 fn RegisterUserDictionary(
136 dictionaryPath: LPCWSTR,
137 languageTag: LPCWSTR,
138 ) -> HRESULT,
139 fn UnregisterUserDictionary(
140 dictionaryPath: LPCWSTR,
141 languageTag: LPCWSTR,
142 ) -> HRESULT,
143}}
144RIDL!{#[uuid(0x7ab36653, 0x1796, 0x484b, 0xbd, 0xfa, 0xe7, 0x4f, 0x1d, 0xb7, 0xc1, 0xdc)]
145class SpellCheckerFactory;
146}