winapi_ui_automation/um/
spellcheck.rs

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}