public int AddWordTransition([NativeTypeName("ISpeechGrammarRuleState *")] ISpeechGrammarRuleState *DestState, [NativeTypeName("const BSTR")] ushort *Words, [NativeTypeName("const BSTR")] ushort *Separators = null, SpeechGrammarWordType Type = SGLexical, [NativeTypeName("const BSTR")] ushort *PropertyName = null, [NativeTypeName("long")] int PropertyId = 0, [NativeTypeName("VARIANT *")] VARIANT *PropertyValue = null, float Weight = 1)
 {
     return(((delegate * unmanaged <ISpeechGrammarRuleState *, ISpeechGrammarRuleState *, ushort *, ushort *, SpeechGrammarWordType, ushort *, int, VARIANT *, float, int>)(lpVtbl[9]))((ISpeechGrammarRuleState *)Unsafe.AsPointer(ref this), DestState, Words, Separators, Type, PropertyName, PropertyId, PropertyValue, Weight));
 }
 public int AddSpecialTransition([NativeTypeName("ISpeechGrammarRuleState *")] ISpeechGrammarRuleState *DestinationState, SpeechSpecialTransitionType Type, [NativeTypeName("const BSTR")] ushort *PropertyName = null, [NativeTypeName("long")] int PropertyId = 0, [NativeTypeName("VARIANT *")] VARIANT *PropertyValue = null, float Weight = 1)
 {
     return(((delegate * unmanaged <ISpeechGrammarRuleState *, ISpeechGrammarRuleState *, SpeechSpecialTransitionType, ushort *, int, VARIANT *, float, int>)(lpVtbl[11]))((ISpeechGrammarRuleState *)Unsafe.AsPointer(ref this), DestinationState, Type, PropertyName, PropertyId, PropertyValue, Weight));
 }
 public HRESULT AddRuleTransition(ISpeechGrammarRuleState *DestinationState, ISpeechGrammarRule *Rule, [NativeTypeName("const BSTR")] ushort *PropertyName = null, [NativeTypeName("long")] int PropertyId = 0, VARIANT *PropertyValue = null, float Weight = 1)
 {
     return(((delegate * unmanaged <ISpeechGrammarRuleState *, ISpeechGrammarRuleState *, ISpeechGrammarRule *, ushort *, int, VARIANT *, float, int>)(lpVtbl[10]))((ISpeechGrammarRuleState *)Unsafe.AsPointer(ref this), DestinationState, Rule, PropertyName, PropertyId, PropertyValue, Weight));
 }