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
- Compiler.cs
- ListViewUpdatedEventArgs.cs
- SystemFonts.cs
- PersistChildrenAttribute.cs
- NameValueSectionHandler.cs
- XmlTextEncoder.cs
- DescriptionAttribute.cs
- TreeView.cs
- ColumnWidthChangedEvent.cs
- DataPointer.cs
- MenuScrollingVisibilityConverter.cs
- SoundPlayer.cs
- cookie.cs
- OracleNumber.cs
- OracleEncoding.cs
- ForwardPositionQuery.cs
- DispatchChannelSink.cs
- IPEndPointCollection.cs
- CompatibleComparer.cs
- FormsIdentity.cs
- UnSafeCharBuffer.cs
- ACE.cs
- ListViewItemMouseHoverEvent.cs
- FullTextState.cs
- TaskExtensions.cs
- FixedPage.cs
- MissingSatelliteAssemblyException.cs
- WorkflowServiceAttributes.cs
- SizeChangedEventArgs.cs
- IdnMapping.cs
- BuiltInExpr.cs
- NamespaceEmitter.cs
- CodeTypeParameter.cs
- StopRoutingHandler.cs
- PseudoWebRequest.cs
- LocationInfo.cs
- Unit.cs
- ControlAdapter.cs
- HashMembershipCondition.cs
- ReadOnlyTernaryTree.cs
- CustomServiceCredentials.cs
- validation.cs
- WebAdminConfigurationHelper.cs
- DependentList.cs
- CalendarTable.cs
- MethodExpression.cs
- DesignRelation.cs
- MouseOverProperty.cs
- FrameworkReadOnlyPropertyMetadata.cs
- XmlSerializerFactory.cs
- ArgumentFixer.cs
- CommandEventArgs.cs
- PointCollection.cs
- MenuCommands.cs
- WinFormsSpinner.cs
- processwaithandle.cs
- TextPenaltyModule.cs
- NavigateEvent.cs
- AutoResetEvent.cs
- RuleElement.cs
- Privilege.cs
- basecomparevalidator.cs
- RTLAwareMessageBox.cs
- WebEventTraceProvider.cs
- DbConnectionStringBuilder.cs
- coordinatorscratchpad.cs
- PointIndependentAnimationStorage.cs
- FactoryId.cs
- tabpagecollectioneditor.cs
- SpStreamWrapper.cs
- ServerIdentity.cs
- PaginationProgressEventArgs.cs
- TextRunCache.cs
- BrowserDefinitionCollection.cs
- OdbcHandle.cs
- XDRSchema.cs
- HttpClientCertificate.cs
- CultureInfo.cs
- CompiledRegexRunner.cs
- BindingSource.cs
- DataSpaceManager.cs
- FaultCode.cs
- ComplexTypeEmitter.cs
- QuaternionConverter.cs
- Int64AnimationBase.cs
- _FtpDataStream.cs
- VirtualDirectoryMappingCollection.cs
- Socket.cs
- ToolStripStatusLabel.cs
- panel.cs
- LocalIdKeyIdentifierClause.cs
- ISessionStateStore.cs
- _NestedSingleAsyncResult.cs
- InkCanvas.cs
- ValidatorCollection.cs
- Span.cs
- Grid.cs
- OdbcDataReader.cs
- CounterSet.cs
- TaiwanCalendar.cs