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 / 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
- SqlDataSourceView.cs
- XamlInt32CollectionSerializer.cs
- CookielessHelper.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- coordinatorscratchpad.cs
- ConfigDefinitionUpdates.cs
- LogicalTreeHelper.cs
- PropertyPath.cs
- RestHandlerFactory.cs
- ProgressBarRenderer.cs
- SmtpLoginAuthenticationModule.cs
- XmlSchemaSubstitutionGroup.cs
- InfocardExtendedInformationEntry.cs
- ImageInfo.cs
- UnsafeNativeMethods.cs
- Walker.cs
- TemplateBindingExtension.cs
- SmiEventSink.cs
- WorkflowMessageEventHandler.cs
- Receive.cs
- GB18030Encoding.cs
- GlyphRun.cs
- Visitors.cs
- InfoCardBaseException.cs
- _FixedSizeReader.cs
- DataControlPagerLinkButton.cs
- Context.cs
- FlowLayoutPanel.cs
- Attributes.cs
- NativeMethods.cs
- GridViewDeletedEventArgs.cs
- IfJoinedCondition.cs
- NumberSubstitution.cs
- listitem.cs
- ExpressionBuilder.cs
- ToolBar.cs
- Compiler.cs
- Rijndael.cs
- DataColumnChangeEvent.cs
- SynchronizationContext.cs
- DataControlField.cs
- DataGridTextBoxColumn.cs
- SamlAuthenticationClaimResource.cs
- RenderingEventArgs.cs
- GeometryHitTestResult.cs
- FontInfo.cs
- CircleHotSpot.cs
- PeerContact.cs
- Propagator.Evaluator.cs
- PrivacyNoticeElement.cs
- AppliedDeviceFiltersEditor.cs
- DescendantQuery.cs
- assertwrapper.cs
- FixedFlowMap.cs
- indexingfiltermarshaler.cs
- ParentQuery.cs
- HandleCollector.cs
- TreeNodeEventArgs.cs
- WebBrowsableAttribute.cs
- RefreshPropertiesAttribute.cs
- TextRunProperties.cs
- ColumnTypeConverter.cs
- CFStream.cs
- TreeNode.cs
- ListControlBuilder.cs
- WebEventTraceProvider.cs
- SecurityState.cs
- AssemblyCache.cs
- ToolboxItemAttribute.cs
- XmlSerializationReader.cs
- TrackingProfileSerializer.cs
- CodeSnippetExpression.cs
- PropertyMap.cs
- CompiledQuery.cs
- _IPv6Address.cs
- ConfigXmlAttribute.cs
- StringAnimationBase.cs
- TypeConverterHelper.cs
- CqlGenerator.cs
- PropertyNames.cs
- ObjectConverter.cs
- TypeReference.cs
- ConstrainedDataObject.cs
- TraceHandlerErrorFormatter.cs
- Lease.cs
- IndentedWriter.cs
- TaskDesigner.cs
- XPathParser.cs
- AnalyzedTree.cs
- ComponentDispatcher.cs
- SendingRequestEventArgs.cs
- BufferedWebEventProvider.cs
- Hex.cs
- ISAPIApplicationHost.cs
- String.cs
- ClientFactory.cs
- TargetControlTypeAttribute.cs
- MdImport.cs
- ToolboxComponentsCreatedEventArgs.cs
- GradientPanel.cs