Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / SapiInterop / SapiGrammar.cs / 1 / SapiGrammar.cs
//------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// All the calls to SAPI interfaces are wraped into the class 'SapiRecognizer',
// 'SapiContext' and 'SapiGrammar'.
//
// The SAPI call are executed in the context of a proxy that is either a
// pass-through or forward the request to an MTA thread for SAPI 5.1
//
// History:
// 4/1/2006 jeanfp
//-----------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Speech.Recognition;
using System.Speech.Internal.ObjectTokens;
using System.Runtime.InteropServices;
using System.Text;
namespace System.Speech.Internal.SapiInterop
{
internal class SapiGrammar : IDisposable
{
//*******************************************************************
//
// Constructors
//
//*******************************************************************
#region Constructors
internal SapiGrammar (ISpRecoGrammar sapiGrammar, SapiProxy thread)
{
_sapiGrammar = sapiGrammar;
_sapiProxy = thread;
}
public void Dispose ()
{
if (!_disposed)
{
Marshal.ReleaseComObject (_sapiGrammar);
GC.SuppressFinalize (this);
_disposed = true;
}
}
#endregion
//********************************************************************
//
// Internal Methods
//
//*******************************************************************
#region Internal Methods
internal void SetGrammarState (SPGRAMMARSTATE state)
{
_sapiProxy.Invoke2 (delegate { _sapiGrammar.SetGrammarState (state); });
}
internal void SetWordSequenceData (string text, SPTEXTSELECTIONINFO info)
{
SPTEXTSELECTIONINFO selectionInfo = info;
_sapiProxy.Invoke2 (delegate { _sapiGrammar.SetWordSequenceData (text, (uint) text.Length, ref selectionInfo); });
}
internal void LoadCmdFromMemory (IntPtr grammar, SPLOADOPTIONS options)
{
_sapiProxy.Invoke2 (delegate { _sapiGrammar.LoadCmdFromMemory (grammar, options); });
}
internal void LoadDictation (string pszTopicName, SPLOADOPTIONS options)
{
_sapiProxy.Invoke2 (delegate { _sapiGrammar.LoadDictation (pszTopicName, options); });
}
internal SAPIErrorCodes SetDictationState (SPRULESTATE state)
{
return (SAPIErrorCodes) _sapiProxy.Invoke (delegate { return _sapiGrammar.SetDictationState (state); });
}
internal SAPIErrorCodes SetRuleState (string name, SPRULESTATE state)
{
return (SAPIErrorCodes) _sapiProxy.Invoke (delegate { return _sapiGrammar.SetRuleState (name, IntPtr.Zero, state); });
}
/*
* The Set of methods are only available with SAPI 5.3. There is no need then to use the SAPI proxy to switch
* the call to an MTA thread.
*
*/
internal void SetGrammarLoader (ISpGrammarResourceLoader resourceLoader)
{
SpRecoGrammar2.SetGrammarLoader (resourceLoader);
}
internal void LoadCmdFromMemory2 (IntPtr grammar, SPLOADOPTIONS options, string sharingUri, string baseUri)
{
SpRecoGrammar2.LoadCmdFromMemory2 (grammar, options, sharingUri, baseUri);
}
internal void SetRulePriority (string name, UInt32 id, Int32 priority)
{
SpRecoGrammar2.SetRulePriority (name, id, priority);
}
internal void SetRuleWeight (string name, UInt32 id, float weight)
{
SpRecoGrammar2.SetRuleWeight (name, id, weight);
}
internal void SetDictationWeight (float weight)
{
SpRecoGrammar2.SetDictationWeight (weight);
}
#endregion
//********************************************************************
//
// Internal Properties
//
//********************************************************************
#region Internal Properties
internal ISpRecoGrammar2 SpRecoGrammar2
{
get
{
if (_sapiGrammar2 == null)
{
_sapiGrammar2 = (ISpRecoGrammar2) _sapiGrammar;
}
return (ISpRecoGrammar2) _sapiGrammar2;
}
}
#endregion
//*******************************************************************
//
// Private Fields
//
//********************************************************************
#region Private Methods
private ISpRecoGrammar2 _sapiGrammar2;
private ISpRecoGrammar _sapiGrammar;
private SapiProxy _sapiProxy;
private bool _disposed;
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// All the calls to SAPI interfaces are wraped into the class 'SapiRecognizer',
// 'SapiContext' and 'SapiGrammar'.
//
// The SAPI call are executed in the context of a proxy that is either a
// pass-through or forward the request to an MTA thread for SAPI 5.1
//
// History:
// 4/1/2006 jeanfp
//-----------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Speech.Recognition;
using System.Speech.Internal.ObjectTokens;
using System.Runtime.InteropServices;
using System.Text;
namespace System.Speech.Internal.SapiInterop
{
internal class SapiGrammar : IDisposable
{
//*******************************************************************
//
// Constructors
//
//*******************************************************************
#region Constructors
internal SapiGrammar (ISpRecoGrammar sapiGrammar, SapiProxy thread)
{
_sapiGrammar = sapiGrammar;
_sapiProxy = thread;
}
public void Dispose ()
{
if (!_disposed)
{
Marshal.ReleaseComObject (_sapiGrammar);
GC.SuppressFinalize (this);
_disposed = true;
}
}
#endregion
//********************************************************************
//
// Internal Methods
//
//*******************************************************************
#region Internal Methods
internal void SetGrammarState (SPGRAMMARSTATE state)
{
_sapiProxy.Invoke2 (delegate { _sapiGrammar.SetGrammarState (state); });
}
internal void SetWordSequenceData (string text, SPTEXTSELECTIONINFO info)
{
SPTEXTSELECTIONINFO selectionInfo = info;
_sapiProxy.Invoke2 (delegate { _sapiGrammar.SetWordSequenceData (text, (uint) text.Length, ref selectionInfo); });
}
internal void LoadCmdFromMemory (IntPtr grammar, SPLOADOPTIONS options)
{
_sapiProxy.Invoke2 (delegate { _sapiGrammar.LoadCmdFromMemory (grammar, options); });
}
internal void LoadDictation (string pszTopicName, SPLOADOPTIONS options)
{
_sapiProxy.Invoke2 (delegate { _sapiGrammar.LoadDictation (pszTopicName, options); });
}
internal SAPIErrorCodes SetDictationState (SPRULESTATE state)
{
return (SAPIErrorCodes) _sapiProxy.Invoke (delegate { return _sapiGrammar.SetDictationState (state); });
}
internal SAPIErrorCodes SetRuleState (string name, SPRULESTATE state)
{
return (SAPIErrorCodes) _sapiProxy.Invoke (delegate { return _sapiGrammar.SetRuleState (name, IntPtr.Zero, state); });
}
/*
* The Set of methods are only available with SAPI 5.3. There is no need then to use the SAPI proxy to switch
* the call to an MTA thread.
*
*/
internal void SetGrammarLoader (ISpGrammarResourceLoader resourceLoader)
{
SpRecoGrammar2.SetGrammarLoader (resourceLoader);
}
internal void LoadCmdFromMemory2 (IntPtr grammar, SPLOADOPTIONS options, string sharingUri, string baseUri)
{
SpRecoGrammar2.LoadCmdFromMemory2 (grammar, options, sharingUri, baseUri);
}
internal void SetRulePriority (string name, UInt32 id, Int32 priority)
{
SpRecoGrammar2.SetRulePriority (name, id, priority);
}
internal void SetRuleWeight (string name, UInt32 id, float weight)
{
SpRecoGrammar2.SetRuleWeight (name, id, weight);
}
internal void SetDictationWeight (float weight)
{
SpRecoGrammar2.SetDictationWeight (weight);
}
#endregion
//********************************************************************
//
// Internal Properties
//
//********************************************************************
#region Internal Properties
internal ISpRecoGrammar2 SpRecoGrammar2
{
get
{
if (_sapiGrammar2 == null)
{
_sapiGrammar2 = (ISpRecoGrammar2) _sapiGrammar;
}
return (ISpRecoGrammar2) _sapiGrammar2;
}
}
#endregion
//*******************************************************************
//
// Private Fields
//
//********************************************************************
#region Private Methods
private ISpRecoGrammar2 _sapiGrammar2;
private ISpRecoGrammar _sapiGrammar;
private SapiProxy _sapiProxy;
private bool _disposed;
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ItemCollection.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- NavigationPropertyAccessor.cs
- TableDetailsRow.cs
- SqlDependency.cs
- HttpInputStream.cs
- RotateTransform.cs
- PackageRelationshipCollection.cs
- SerializationException.cs
- followingsibling.cs
- DataGridRowEventArgs.cs
- WebConfigurationHost.cs
- X500Name.cs
- EmptyEnumerable.cs
- CrossContextChannel.cs
- ActiveXHelper.cs
- _ContextAwareResult.cs
- XmlDeclaration.cs
- BridgeDataRecord.cs
- ReaderOutput.cs
- BulletChrome.cs
- RelatedView.cs
- SqlDataSourceConfigureSortForm.cs
- Mutex.cs
- ScriptHandlerFactory.cs
- SafeNativeMethods.cs
- FontStretch.cs
- GridViewHeaderRowPresenter.cs
- WebDisplayNameAttribute.cs
- TreeSet.cs
- OleDbCommandBuilder.cs
- TypeDescriptor.cs
- RoutingService.cs
- EditingMode.cs
- Image.cs
- InfoCardSchemas.cs
- AsyncPostBackTrigger.cs
- ScriptingRoleServiceSection.cs
- ExpressionsCollectionEditor.cs
- InstancePersistenceCommand.cs
- Encoder.cs
- Model3DGroup.cs
- PageEventArgs.cs
- DesignerTransaction.cs
- SqlServices.cs
- ConfigurationStrings.cs
- WorkflowMarkupSerializerMapping.cs
- XmlEncoding.cs
- BaseValidator.cs
- Label.cs
- GetKeyedHashRequest.cs
- XPathMultyIterator.cs
- RadioButtonList.cs
- RowUpdatingEventArgs.cs
- PrimitiveXmlSerializers.cs
- TypeGeneratedEventArgs.cs
- GetLedgerRequest.cs
- HtmlInputControl.cs
- SerializationSectionGroup.cs
- Base64Encoding.cs
- SafeRightsManagementHandle.cs
- StaticContext.cs
- TypographyProperties.cs
- ImageClickEventArgs.cs
- FixedStringLookup.cs
- FormClosingEvent.cs
- PackageRelationshipCollection.cs
- RepeatButton.cs
- InvokePatternIdentifiers.cs
- WebSysDefaultValueAttribute.cs
- CheckBoxBaseAdapter.cs
- DataContractSerializerSection.cs
- DataFormats.cs
- ChannelSinkStacks.cs
- PropertyRecord.cs
- StagingAreaInputItem.cs
- UnsafeNativeMethods.cs
- ThousandthOfEmRealPoints.cs
- EventLogStatus.cs
- XmlCollation.cs
- X509CertificateCollection.cs
- TreeViewImageKeyConverter.cs
- XmlValueConverter.cs
- Parser.cs
- NTAccount.cs
- EntityKey.cs
- XmlQueryCardinality.cs
- RuntimeVariablesExpression.cs
- NamedPermissionSet.cs
- XmlFormatWriterGenerator.cs
- HttpStreamXmlDictionaryReader.cs
- DebugController.cs
- CompilerResults.cs
- TraceEventCache.cs
- ThreadSafeList.cs
- Margins.cs
- ArrayElementGridEntry.cs
- DataSourceHelper.cs
- selecteditemcollection.cs
- DataViewListener.cs