Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / SapiInterop / SpStreamWrapper.cs / 1 / SpStreamWrapper.cs
//------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // // Description: // Maps an audio stream the SAPI ISpStreamFormat // // History: // 7/10/2005 jeanfp //----------------------------------------------------------------- using System; using System.IO; using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; using System.Speech.AudioFormat; using System.Speech.Internal.SapiInterop; using System.Speech.Internal.Synthesis; #pragma warning disable 1634, 1691 // Allows suppression of certain PreSharp messages. using STATSTG = System.Runtime.InteropServices.ComTypes.STATSTG; namespace System.Speech.Internal.SapiInterop { internal class SpStreamWrapper : IStream, IDisposable { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors internal SpStreamWrapper (Stream stream) { _stream = stream; _endOfStreamPosition = stream.Length; } ////// /// public void Dispose () { _stream.Dispose (); GC.SuppressFinalize (this); } #endregion //******************************************************************** // // Public Methods // //******************************************************************* #region public Methods #region ISpStreamFormat interface implementation public void Read (byte [] pv, int cb, IntPtr pcbRead) { if (_endOfStreamPosition >= 0 && _stream.Position + cb > _endOfStreamPosition) { cb = (int) (_endOfStreamPosition - _stream.Position); } int read = 0; try { read = _stream.Read (pv, 0, cb); } catch (EndOfStreamException) { read = 0; } if (pcbRead != IntPtr.Zero) { Marshal.WriteIntPtr (pcbRead, new IntPtr (read)); } } public void Write (byte [] pv, int cb, IntPtr pcbWritten) { throw new NotSupportedException (); } public void Seek (long offset, int seekOrigin, IntPtr plibNewPosition) { _stream.Seek (offset, (SeekOrigin) seekOrigin); if (plibNewPosition != IntPtr.Zero) { Marshal.WriteIntPtr (plibNewPosition, new IntPtr (_stream.Position)); } } public void SetSize (long libNewSize) { throw new NotSupportedException (); } public void CopyTo (IStream pstm, long cb, IntPtr pcbRead, IntPtr pcbWritten) { throw new NotSupportedException (); } public void Commit (int grfCommitFlags) { _stream.Flush (); } public void Revert () { throw new NotSupportedException (); } public void LockRegion (long libOffset, long cb, int dwLockType) { throw new NotSupportedException (); } public void UnlockRegion (long libOffset, long cb, int dwLockType) { throw new NotSupportedException (); } public void Stat (out STATSTG pstatstg, int grfStatFlag) { pstatstg = new STATSTG (); pstatstg.cbSize = _stream.Length; } public void Clone (out IStream ppstm) { throw new NotSupportedException (); } #endregion #endregion //******************************************************************** // // Private Fields // //******************************************************************** #region Private Fields private Stream _stream; protected long _endOfStreamPosition = -1; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // // Description: // Maps an audio stream the SAPI ISpStreamFormat // // History: // 7/10/2005 jeanfp //----------------------------------------------------------------- using System; using System.IO; using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; using System.Speech.AudioFormat; using System.Speech.Internal.SapiInterop; using System.Speech.Internal.Synthesis; #pragma warning disable 1634, 1691 // Allows suppression of certain PreSharp messages. using STATSTG = System.Runtime.InteropServices.ComTypes.STATSTG; namespace System.Speech.Internal.SapiInterop { internal class SpStreamWrapper : IStream, IDisposable { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors internal SpStreamWrapper (Stream stream) { _stream = stream; _endOfStreamPosition = stream.Length; } ////// /// public void Dispose () { _stream.Dispose (); GC.SuppressFinalize (this); } #endregion //******************************************************************** // // Public Methods // //******************************************************************* #region public Methods #region ISpStreamFormat interface implementation public void Read (byte [] pv, int cb, IntPtr pcbRead) { if (_endOfStreamPosition >= 0 && _stream.Position + cb > _endOfStreamPosition) { cb = (int) (_endOfStreamPosition - _stream.Position); } int read = 0; try { read = _stream.Read (pv, 0, cb); } catch (EndOfStreamException) { read = 0; } if (pcbRead != IntPtr.Zero) { Marshal.WriteIntPtr (pcbRead, new IntPtr (read)); } } public void Write (byte [] pv, int cb, IntPtr pcbWritten) { throw new NotSupportedException (); } public void Seek (long offset, int seekOrigin, IntPtr plibNewPosition) { _stream.Seek (offset, (SeekOrigin) seekOrigin); if (plibNewPosition != IntPtr.Zero) { Marshal.WriteIntPtr (plibNewPosition, new IntPtr (_stream.Position)); } } public void SetSize (long libNewSize) { throw new NotSupportedException (); } public void CopyTo (IStream pstm, long cb, IntPtr pcbRead, IntPtr pcbWritten) { throw new NotSupportedException (); } public void Commit (int grfCommitFlags) { _stream.Flush (); } public void Revert () { throw new NotSupportedException (); } public void LockRegion (long libOffset, long cb, int dwLockType) { throw new NotSupportedException (); } public void UnlockRegion (long libOffset, long cb, int dwLockType) { throw new NotSupportedException (); } public void Stat (out STATSTG pstatstg, int grfStatFlag) { pstatstg = new STATSTG (); pstatstg.cbSize = _stream.Length; } public void Clone (out IStream ppstm) { throw new NotSupportedException (); } #endregion #endregion //******************************************************************** // // Private Fields // //******************************************************************** #region Private Fields private Stream _stream; protected long _endOfStreamPosition = -1; #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
- OrderedDictionaryStateHelper.cs
- BlockCollection.cs
- DockAndAnchorLayout.cs
- StringArrayConverter.cs
- IISMapPath.cs
- EventProxy.cs
- SQLByte.cs
- ChangeDirector.cs
- DiffuseMaterial.cs
- MessagePropertyDescriptionCollection.cs
- TextOnlyOutput.cs
- AsymmetricKeyExchangeFormatter.cs
- PageWrapper.cs
- Grid.cs
- Literal.cs
- ForwardPositionQuery.cs
- ConsoleCancelEventArgs.cs
- InternalRelationshipCollection.cs
- SqlErrorCollection.cs
- ConnectorSelectionGlyph.cs
- SvcMapFileLoader.cs
- LostFocusEventManager.cs
- VerticalAlignConverter.cs
- ContextQuery.cs
- ToolBar.cs
- SoapElementAttribute.cs
- ScriptControl.cs
- SecurityDescriptor.cs
- EventSource.cs
- altserialization.cs
- RawKeyboardInputReport.cs
- SystemGatewayIPAddressInformation.cs
- SpellCheck.cs
- QilScopedVisitor.cs
- ServiceCredentials.cs
- ISessionStateStore.cs
- Propagator.cs
- MD5CryptoServiceProvider.cs
- NoClickablePointException.cs
- LoginDesigner.cs
- LowerCaseStringConverter.cs
- NotifyInputEventArgs.cs
- SerializationFieldInfo.cs
- DataPagerFieldCollection.cs
- DataSourceView.cs
- FocusChangedEventArgs.cs
- SelectionChangedEventArgs.cs
- InputReferenceExpression.cs
- PublisherIdentityPermission.cs
- StreamUpdate.cs
- SmiSettersStream.cs
- ResolveCriteriaCD1.cs
- BitmapSizeOptions.cs
- BuilderInfo.cs
- XmlReader.cs
- OleDbReferenceCollection.cs
- ModelMemberCollection.cs
- ThreadStartException.cs
- ColorAnimationBase.cs
- Win32.cs
- DataGridViewTopLeftHeaderCell.cs
- ButtonChrome.cs
- HttpServerUtilityWrapper.cs
- OleServicesContext.cs
- AnnotationAuthorChangedEventArgs.cs
- OutArgument.cs
- WorkflowRuntimeEndpoint.cs
- MediaTimeline.cs
- MatchingStyle.cs
- MLangCodePageEncoding.cs
- XmlLanguageConverter.cs
- WebPartMovingEventArgs.cs
- BooleanKeyFrameCollection.cs
- _SafeNetHandles.cs
- DataError.cs
- HostingEnvironment.cs
- DbParameterHelper.cs
- XmlCDATASection.cs
- SamlDoNotCacheCondition.cs
- GeneralTransformGroup.cs
- Timer.cs
- WebPartManager.cs
- GridViewCancelEditEventArgs.cs
- MimeWriter.cs
- HostedNamedPipeTransportManager.cs
- WhitespaceRule.cs
- __ConsoleStream.cs
- TargetConverter.cs
- TextFormatterHost.cs
- EncoderNLS.cs
- CheckBoxBaseAdapter.cs
- FileStream.cs
- WebPartConnectVerb.cs
- DBNull.cs
- WebConfigurationFileMap.cs
- ModelTypeConverter.cs
- ApplicationBuildProvider.cs
- StatementContext.cs
- QuaternionAnimationUsingKeyFrames.cs
- InputScope.cs