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(0 xb7c82d61, 0 xfbe8, 0 x4b47, 0 x9b, 0 x27, 0 x6c, 0 x0d, 0 x2e, 0 x0d, 0 xe0, 0 xa3)]
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(0 x803e3bd4, 0 x2828, 0 x4410, 0 x82, 0 x90, 0 x41, 0 x8d, 0 x1d, 0 x73, 0 xc7, 0 x62)]
interface IEnumSpellingError(IEnumSpellingErrorVtbl): IUnknown(IUnknownVtbl) {
fn Next(
value: *mut *mut ISpellingError,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x432e5f85, 0 x35cf, 0 x4606, 0 xa8, 0 x01, 0 x6f, 0 x70, 0 x27, 0 x7e, 0 x1d, 0 x7a)]
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(0 x0b83a5b0, 0 x792f, 0 x4eab, 0 x97, 0 x99, 0 xac, 0 xf5, 0 x2c, 0 x5e, 0 xd0, 0 x8a)]
interface ISpellCheckerChangedEventHandler(ISpellCheckerChangedEventHandlerVtbl):
IUnknown(IUnknownVtbl) {
fn Invoke(
sender: *const ISpellChecker,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xb6fd0b71, 0 xe2bc, 0 x4653, 0 x8d, 0 x05, 0 xf1, 0 x97, 0 xe4, 0 x12, 0 x77, 0 x0b)]
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(0 xe7ed1c71, 0 x87f7, 0 x4378, 0 xa8, 0 x40, 0 xc9, 0 x20, 0 x0d, 0 xac, 0 xee, 0 x47)]
interface ISpellChecker2(ISpellChecker2Vtbl): ISpellChecker(ISpellCheckerVtbl) {
fn Remove(
word: LPCWSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x8e018a9d, 0 x2415, 0 x4677, 0 xbf, 0 x08, 0 x79, 0 x4e, 0 xa6, 0 x1f, 0 x94, 0 xbb)]
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(0 xaa176b85, 0 x0e12, 0 x4844, 0 x8e, 0 x1a, 0 xee, 0 xf1, 0 xda, 0 x77, 0 xf5, 0 x86)]
interface IUserDictionariesRegistrar(IUserDictionariesRegistrarVtbl): IUnknown(IUnknownVtbl) {
fn RegisterUserDictionary(
dictionaryPath: LPCWSTR,
languageTag: LPCWSTR,
) -> HRESULT,
fn UnregisterUserDictionary(
dictionaryPath: LPCWSTR,
languageTag: LPCWSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x7ab36653, 0 x1796, 0 x484b, 0 xbd, 0 xfa, 0 xe7, 0 x4f, 0 x1d, 0 xb7, 0 xc1, 0 xdc)]
class SpellCheckerFactory;
}
Messung V0.5 in Prozent C=96 H=100 G=97
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-18)
¤
*© Formatika GbR, Deutschland