1 use shared::minwindef::{BOOL, BYTE, DWORD};
2 use shared::ntdef::{LPCWSTR, LPWSTR, ULONG};
3 use shared::winerror::HRESULT;
4 use um::objidlbase::IEnumString;
5 use um::unknwnbase::{IUnknown, IUnknownVtbl};
6 ENUM!{enum WORDLIST_TYPE {
7     WORDLIST_TYPE_IGNORE = 0,
8     WORDLIST_TYPE_ADD = 1,
9     WORDLIST_TYPE_EXCLUDE = 2,
10     WORDLIST_TYPE_AUTOCORRECT = 3,
11 }}
12 ENUM!{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 }}
18 RIDL!{#[uuid(0xb7c82d61, 0xfbe8, 0x4b47, 0x9b, 0x27, 0x6c, 0x0d, 0x2e, 0x0d, 0xe0, 0xa3)]
19 interface 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 }}
33 RIDL!{#[uuid(0x803e3bd4, 0x2828, 0x4410, 0x82, 0x90, 0x41, 0x8d, 0x1d, 0x73, 0xc7, 0x62)]
34 interface IEnumSpellingError(IEnumSpellingErrorVtbl): IUnknown(IUnknownVtbl) {
35     fn Next(
36         value: *mut *mut ISpellingError,
37     ) -> HRESULT,
38 }}
39 RIDL!{#[uuid(0x432e5f85, 0x35cf, 0x4606, 0xa8, 0x01, 0x6f, 0x70, 0x27, 0x7e, 0x1d, 0x7a)]
40 interface 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 }}
54 RIDL!{#[uuid(0x0b83a5b0, 0x792f, 0x4eab, 0x97, 0x99, 0xac, 0xf5, 0x2c, 0x5e, 0xd0, 0x8a)]
55 interface ISpellCheckerChangedEventHandler(ISpellCheckerChangedEventHandlerVtbl):
56     IUnknown(IUnknownVtbl) {
57     fn Invoke(
58         sender: *const ISpellChecker,
59     ) -> HRESULT,
60 }}
61 RIDL!{#[uuid(0xb6fd0b71, 0xe2bc, 0x4653, 0x8d, 0x05, 0xf1, 0x97, 0xe4, 0x12, 0x77, 0x0b)]
62 interface 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 }}
113 RIDL!{#[uuid(0xe7ed1c71, 0x87f7, 0x4378, 0xa8, 0x40, 0xc9, 0x20, 0x0d, 0xac, 0xee, 0x47)]
114 interface ISpellChecker2(ISpellChecker2Vtbl): ISpellChecker(ISpellCheckerVtbl) {
115     fn Remove(
116         word: LPCWSTR,
117     ) -> HRESULT,
118 }}
119 RIDL!{#[uuid(0x8e018a9d, 0x2415, 0x4677, 0xbf, 0x08, 0x79, 0x4e, 0xa6, 0x1f, 0x94, 0xbb)]
120 interface 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 }}
133 RIDL!{#[uuid(0xaa176b85, 0x0e12, 0x4844, 0x8e, 0x1a, 0xee, 0xf1, 0xda, 0x77, 0xf5, 0x86)]
134 interface 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 }}
144 RIDL!{#[uuid(0x7ab36653, 0x1796, 0x484b, 0xbd, 0xfa, 0xe7, 0x4f, 0x1d, 0xb7, 0xc1, 0xdc)]
145 class SpellCheckerFactory;
146 }
147