Code:
/ DotNET / DotNET / 8.0 / untmp / 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 wrapped 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 [....]
//-----------------------------------------------------------------
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CommonRemoteMemoryBlock.cs
- PathGeometry.cs
- SessionParameter.cs
- EventDescriptor.cs
- XmlSchemaSimpleTypeList.cs
- BinaryObjectInfo.cs
- PtsContext.cs
- CategoryAttribute.cs
- ObjectDataSourceDisposingEventArgs.cs
- TagMapInfo.cs
- AttributeSetAction.cs
- CodeDelegateInvokeExpression.cs
- EventDescriptorCollection.cs
- ByteAnimationBase.cs
- DataBindingHandlerAttribute.cs
- TextMetrics.cs
- Exceptions.cs
- HtmlUtf8RawTextWriter.cs
- XamlReaderHelper.cs
- IfAction.cs
- SizeF.cs
- TreeViewImageGenerator.cs
- ScalarOps.cs
- WebMethodAttribute.cs
- Html32TextWriter.cs
- DataGridViewTopLeftHeaderCell.cs
- ComponentRenameEvent.cs
- WebPartDisplayMode.cs
- DrawingState.cs
- ConfigurationPropertyCollection.cs
- DeflateEmulationStream.cs
- InstanceNotReadyException.cs
- HyperLinkStyle.cs
- SmiEventSink.cs
- SmtpMail.cs
- PathFigureCollection.cs
- EntityViewGenerator.cs
- TextTreeRootNode.cs
- ConnectionsZoneDesigner.cs
- TypedRowHandler.cs
- HostExecutionContextManager.cs
- FixUpCollection.cs
- DesignerTextWriter.cs
- XmlSchemaAttribute.cs
- Transform3DCollection.cs
- ApplicationDirectoryMembershipCondition.cs
- InternalConfigSettingsFactory.cs
- TabItem.cs
- DataSetSchema.cs
- CreateUserWizardAutoFormat.cs
- GridViewRowPresenterBase.cs
- DataGridViewRowHeaderCell.cs
- FixedSOMTableCell.cs
- TemplatedMailWebEventProvider.cs
- TreeSet.cs
- PropertyTab.cs
- ButtonChrome.cs
- VectorValueSerializer.cs
- TypeElement.cs
- DiscoveryDocumentSearchPattern.cs
- FileVersionInfo.cs
- CapabilitiesPattern.cs
- QuaternionKeyFrameCollection.cs
- JsonUriDataContract.cs
- ColorAnimationBase.cs
- SoapObjectInfo.cs
- ResourceCategoryAttribute.cs
- DataGridItemCollection.cs
- ElementHostAutomationPeer.cs
- TableNameAttribute.cs
- D3DImage.cs
- TextBounds.cs
- WindowsTokenRoleProvider.cs
- _BasicClient.cs
- UdpUtility.cs
- mda.cs
- PrintSchema.cs
- WebPartCatalogAddVerb.cs
- PeerApplication.cs
- BrowsableAttribute.cs
- DecimalAnimation.cs
- StringValidator.cs
- AutomationIdentifier.cs
- RuntimeResourceSet.cs
- PasswordRecoveryDesigner.cs
- WorkflowViewManager.cs
- XmlMessageFormatter.cs
- EnumerableRowCollection.cs
- XmlSecureResolver.cs
- AQNBuilder.cs
- EdmScalarPropertyAttribute.cs
- EventlogProvider.cs
- ConvertBinder.cs
- AVElementHelper.cs
- PageParser.cs
- TableRowsCollectionEditor.cs
- HwndSourceParameters.cs
- SystemException.cs
- AlphaSortedEnumConverter.cs
- ColumnResult.cs