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