use shared::minwindef::{BOOL, BYTE, DWORD}; use shared::ntdef::{LPCWSTR, LPWSTR, ULONG}; use shared::winerror::HRESULT; use um::objidlbase::IEnumString; use um::unknwnbase::{IUnknown, IUnknownVtbl}; ENUM!{enum WORDLIST_TYPE { WORDLIST_TYPE_IGNORE = 0, WORDLIST_TYPE_ADD = 1, WORDLIST_TYPE_EXCLUDE = 2, WORDLIST_TYPE_AUTOCORRECT = 3, }} ENUM!{enum CORRECTIVE_ACTION { CORRECTIVE_ACTION_NONE = 0, CORRECTIVE_ACTION_GET_SUGGESTIONS = 1, CORRECTIVE_ACTION_REPLACE = 2, CORRECTIVE_ACTION_DELETE = 3, }} RIDL!{#[uuid(0xb7c82d61, 0xfbe8, 0x4b47, 0x9b, 0x27, 0x6c, 0x0d, 0x2e, 0x0d, 0xe0, 0xa3)] interface ISpellingError(ISpellingErrorVtbl): IUnknown(IUnknownVtbl) { fn get_StartIndex( value: *mut ULONG, ) -> HRESULT, fn get_Length( value: *mut ULONG, ) -> HRESULT, fn get_CorrectiveAction( value: *mut CORRECTIVE_ACTION, ) -> HRESULT, fn get_Replacement( value: *mut LPWSTR, ) -> HRESULT, }} RIDL!{#[uuid(0x803e3bd4, 0x2828, 0x4410, 0x82, 0x90, 0x41, 0x8d, 0x1d, 0x73, 0xc7, 0x62)] interface IEnumSpellingError(IEnumSpellingErrorVtbl): IUnknown(IUnknownVtbl) { fn Next( value: *mut *mut ISpellingError, ) -> HRESULT, }} RIDL!{#[uuid(0x432e5f85, 0x35cf, 0x4606, 0xa8, 0x01, 0x6f, 0x70, 0x27, 0x7e, 0x1d, 0x7a)] interface IOptionDescription(IOptionDescriptionVtbl): IUnknown(IUnknownVtbl) { fn Id( value: *mut LPWSTR, ) -> HRESULT, fn Heading( value: *mut LPWSTR, ) -> HRESULT, fn Description( value: *mut LPWSTR, ) -> HRESULT, fn Labels( value: *mut *mut IEnumString, ) -> HRESULT, }} RIDL!{#[uuid(0x0b83a5b0, 0x792f, 0x4eab, 0x97, 0x99, 0xac, 0xf5, 0x2c, 0x5e, 0xd0, 0x8a)] interface ISpellCheckerChangedEventHandler(ISpellCheckerChangedEventHandlerVtbl): IUnknown(IUnknownVtbl) { fn Invoke( sender: *const ISpellChecker, ) -> HRESULT, }} RIDL!{#[uuid(0xb6fd0b71, 0xe2bc, 0x4653, 0x8d, 0x05, 0xf1, 0x97, 0xe4, 0x12, 0x77, 0x0b)] interface ISpellChecker(ISpellCheckerVtbl): IUnknown(IUnknownVtbl) { fn get_LanguageTag( value: *mut LPWSTR, ) -> HRESULT, fn Check( text: LPCWSTR, value: *mut *mut IEnumSpellingError, ) -> HRESULT, fn Suggest( word: LPCWSTR, value: *mut *mut IEnumString, ) -> HRESULT, fn Add( word: LPCWSTR, ) -> HRESULT, fn Ignore( word: LPCWSTR, ) -> HRESULT, fn AutoCorrect( from: LPCWSTR, to: LPCWSTR, ) -> HRESULT, fn GetOptionValue( optionId: LPCWSTR, value: *mut BYTE, ) -> HRESULT, fn Get_OptionIds( value: *mut *mut IEnumString, ) -> HRESULT, fn Get_Id( value: *mut LPWSTR, ) -> HRESULT, fn Get_LocalizedName( value: *mut LPWSTR, ) -> HRESULT, fn add_SpellCheckerChanged( handler: *const ISpellCheckerChangedEventHandler, eventCookie: *mut DWORD, ) -> HRESULT, fn remove_SpellCheckerChanged( eventCookie: DWORD, ) -> HRESULT, fn GetOptionDescription( optionId: LPCWSTR, value: *mut *mut IOptionDescription, ) -> HRESULT, fn ComprehensiveCheck( text: LPCWSTR, value: *mut *mut IEnumSpellingError, ) -> HRESULT, }} RIDL!{#[uuid(0xe7ed1c71, 0x87f7, 0x4378, 0xa8, 0x40, 0xc9, 0x20, 0x0d, 0xac, 0xee, 0x47)] interface ISpellChecker2(ISpellChecker2Vtbl): ISpellChecker(ISpellCheckerVtbl) { fn Remove( word: LPCWSTR, ) -> HRESULT, }} RIDL!{#[uuid(0x8e018a9d, 0x2415, 0x4677, 0xbf, 0x08, 0x79, 0x4e, 0xa6, 0x1f, 0x94, 0xbb)] interface ISpellCheckerFactory(ISpellCheckerFactoryVtbl): IUnknown(IUnknownVtbl) { fn SupportedLanguages( value: *mut *mut IEnumString, ) -> HRESULT, fn IsSupported( languageTag: LPCWSTR, value: *mut BOOL, ) -> HRESULT, fn CreateSpellChecker( languageTag: LPCWSTR, value: *mut *mut ISpellChecker, ) -> HRESULT, }} RIDL!{#[uuid(0xaa176b85, 0x0e12, 0x4844, 0x8e, 0x1a, 0xee, 0xf1, 0xda, 0x77, 0xf5, 0x86)] interface IUserDictionariesRegistrar(IUserDictionariesRegistrarVtbl): IUnknown(IUnknownVtbl) { fn RegisterUserDictionary( dictionaryPath: LPCWSTR, languageTag: LPCWSTR, ) -> HRESULT, fn UnregisterUserDictionary( dictionaryPath: LPCWSTR, languageTag: LPCWSTR, ) -> HRESULT, }} RIDL!{#[uuid(0x7ab36653, 0x1796, 0x484b, 0xbd, 0xfa, 0xe7, 0x4f, 0x1d, 0xb7, 0xc1, 0xdc)] class SpellCheckerFactory; }