SapiRecoContext.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / SapiInterop / SapiRecoContext.cs / 1 / SapiRecoContext.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 proxy 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 SapiRecoContext : IDisposable 
    { 
        //*******************************************************************
        // 
        // Constructors
        //
        //*******************************************************************
 
        #region Constructors
 
        // This constuctor must be called in the context of the backgroung proxy if any 
        internal SapiRecoContext (ISpRecoContext recoContext, SapiProxy proxy)
        { 
            _recoContext = recoContext;
            _proxy = proxy;
        }
 
        public void Dispose ()
        { 
            if (!_disposed) 
            {
                // Called from the client proxy 
                _proxy.Invoke2 (delegate { Marshal.ReleaseComObject (_recoContext); });
                _disposed = true;
            }
            GC.SuppressFinalize (this); 
        }
 
        #endregion 

        //******************************************************************** 
        //
        // Internal Methods
        //
        //******************************************************************* 

        #region Internal Methods 
 
        internal void SetInterest (UInt64 eventInterest, UInt64 queuedInterest)
        { 
            _proxy.Invoke2 (delegate { _recoContext.SetInterest (eventInterest, queuedInterest); });
        }

        internal SapiGrammar CreateGrammar (UInt64 id) 
        {
            ISpRecoGrammar sapiGrammar; 
            return (SapiGrammar) _proxy.Invoke (delegate { _recoContext.CreateGrammar (id, out sapiGrammar); return new SapiGrammar (sapiGrammar, _proxy); }); 
        }
 
        internal void SetMaxAlternates (UInt32 count)
        {
            _proxy.Invoke2 (delegate { _recoContext.SetMaxAlternates (count); });
        } 

        internal void SetAudioOptions (SPAUDIOOPTIONS options, IntPtr audioFormatId, IntPtr waveFormatEx) 
        { 
            _proxy.Invoke2 (delegate { _recoContext.SetAudioOptions (options, audioFormatId, waveFormatEx); });
        } 

        internal void Bookmark (SPBOOKMARKOPTIONS options, UInt64 position, IntPtr lparam)
        {
            _proxy.Invoke2 (delegate { _recoContext.Bookmark (options, position, lparam); }); 
        }
 
        internal void Resume () 
        {
            _proxy.Invoke2 (delegate { _recoContext.Resume (0); }); 
        }

        internal void SetContextState (SPCONTEXTSTATE state)
        { 
            _proxy.Invoke2 (delegate { _recoContext.SetContextState (state); });
        } 
 
        internal EventNotify CreateEventNotify (AsyncSerializedWorker asyncWorker, bool supportsSapi53)
        { 
            return (EventNotify) _proxy.Invoke (delegate { return new EventNotify ((ISpEventSource) _recoContext, asyncWorker, supportsSapi53); });
        }

        internal void DisposeEventNotify (EventNotify eventNotify) 
        {
            _proxy.Invoke2 (delegate { eventNotify.Dispose (); }); 
        } 

        internal void SetGrammarOptions (SPGRAMMAROPTIONS options) 
        {
            _proxy.Invoke2 (delegate { ((ISpRecoContext2) _recoContext).SetGrammarOptions (options); });
        }
 
        #endregion
 
        //******************************************************************** 
        //
        // Private Fields 
        //
        //********************************************************************

        #region Private Fields 

        private ISpRecoContext _recoContext; 
        private SapiProxy _proxy; 
        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 proxy 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 SapiRecoContext : IDisposable 
    { 
        //*******************************************************************
        // 
        // Constructors
        //
        //*******************************************************************
 
        #region Constructors
 
        // This constuctor must be called in the context of the backgroung proxy if any 
        internal SapiRecoContext (ISpRecoContext recoContext, SapiProxy proxy)
        { 
            _recoContext = recoContext;
            _proxy = proxy;
        }
 
        public void Dispose ()
        { 
            if (!_disposed) 
            {
                // Called from the client proxy 
                _proxy.Invoke2 (delegate { Marshal.ReleaseComObject (_recoContext); });
                _disposed = true;
            }
            GC.SuppressFinalize (this); 
        }
 
        #endregion 

        //******************************************************************** 
        //
        // Internal Methods
        //
        //******************************************************************* 

        #region Internal Methods 
 
        internal void SetInterest (UInt64 eventInterest, UInt64 queuedInterest)
        { 
            _proxy.Invoke2 (delegate { _recoContext.SetInterest (eventInterest, queuedInterest); });
        }

        internal SapiGrammar CreateGrammar (UInt64 id) 
        {
            ISpRecoGrammar sapiGrammar; 
            return (SapiGrammar) _proxy.Invoke (delegate { _recoContext.CreateGrammar (id, out sapiGrammar); return new SapiGrammar (sapiGrammar, _proxy); }); 
        }
 
        internal void SetMaxAlternates (UInt32 count)
        {
            _proxy.Invoke2 (delegate { _recoContext.SetMaxAlternates (count); });
        } 

        internal void SetAudioOptions (SPAUDIOOPTIONS options, IntPtr audioFormatId, IntPtr waveFormatEx) 
        { 
            _proxy.Invoke2 (delegate { _recoContext.SetAudioOptions (options, audioFormatId, waveFormatEx); });
        } 

        internal void Bookmark (SPBOOKMARKOPTIONS options, UInt64 position, IntPtr lparam)
        {
            _proxy.Invoke2 (delegate { _recoContext.Bookmark (options, position, lparam); }); 
        }
 
        internal void Resume () 
        {
            _proxy.Invoke2 (delegate { _recoContext.Resume (0); }); 
        }

        internal void SetContextState (SPCONTEXTSTATE state)
        { 
            _proxy.Invoke2 (delegate { _recoContext.SetContextState (state); });
        } 
 
        internal EventNotify CreateEventNotify (AsyncSerializedWorker asyncWorker, bool supportsSapi53)
        { 
            return (EventNotify) _proxy.Invoke (delegate { return new EventNotify ((ISpEventSource) _recoContext, asyncWorker, supportsSapi53); });
        }

        internal void DisposeEventNotify (EventNotify eventNotify) 
        {
            _proxy.Invoke2 (delegate { eventNotify.Dispose (); }); 
        } 

        internal void SetGrammarOptions (SPGRAMMAROPTIONS options) 
        {
            _proxy.Invoke2 (delegate { ((ISpRecoContext2) _recoContext).SetGrammarOptions (options); });
        }
 
        #endregion
 
        //******************************************************************** 
        //
        // Private Fields 
        //
        //********************************************************************

        #region Private Fields 

        private ISpRecoContext _recoContext; 
        private SapiProxy _proxy; 
        private bool _disposed;
 
        #endregion
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK