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
- SecurityUniqueId.cs
- _StreamFramer.cs
- DependencyPropertyDescriptor.cs
- XomlCompilerResults.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- HttpCapabilitiesBase.cs
- TemplatedAdorner.cs
- HotSpotCollection.cs
- xmlfixedPageInfo.cs
- FrameworkTemplate.cs
- DispatcherExceptionEventArgs.cs
- Currency.cs
- XmlIlVisitor.cs
- MetadataException.cs
- InvalidWorkflowException.cs
- SubclassTypeValidatorAttribute.cs
- SynchronizationFilter.cs
- Annotation.cs
- MenuRendererClassic.cs
- ContainerControl.cs
- ScrollChrome.cs
- RequestQueue.cs
- SafeWaitHandle.cs
- Win32.cs
- MouseGesture.cs
- PathTooLongException.cs
- DesignerProperties.cs
- FixedFindEngine.cs
- AdapterSwitches.cs
- CheckBox.cs
- UDPClient.cs
- RenderContext.cs
- FormsAuthenticationConfiguration.cs
- JournalNavigationScope.cs
- Mutex.cs
- OleDbConnectionInternal.cs
- RecipientInfo.cs
- ObjectDataSource.cs
- HtmlInputImage.cs
- SqlCommand.cs
- EntityDataSourceDesigner.cs
- DictionaryEditChange.cs
- HyperlinkAutomationPeer.cs
- FileDialog_Vista.cs
- XmlElement.cs
- FtpCachePolicyElement.cs
- ScriptModule.cs
- IPPacketInformation.cs
- Point3D.cs
- ZoneButton.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- EpmContentDeSerializerBase.cs
- SocketException.cs
- tooltip.cs
- TableRowCollection.cs
- CollectionBase.cs
- BamlTreeNode.cs
- Input.cs
- SafeLocalMemHandle.cs
- XmlSchemaSubstitutionGroup.cs
- PointLight.cs
- ArithmeticException.cs
- MarshalDirectiveException.cs
- BuildProviderCollection.cs
- GeometryCombineModeValidation.cs
- TreeNode.cs
- SqlAliasesReferenced.cs
- InputScopeNameConverter.cs
- ValueUtilsSmi.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- ResponseBodyWriter.cs
- Quaternion.cs
- TextTreeNode.cs
- NavigationProgressEventArgs.cs
- RoleManagerSection.cs
- ZipIOLocalFileBlock.cs
- EncoderParameter.cs
- TextDecorationLocationValidation.cs
- GatewayIPAddressInformationCollection.cs
- SerializationObjectManager.cs
- RadioButtonBaseAdapter.cs
- XamlRtfConverter.cs
- ConnectivityStatus.cs
- SortQuery.cs
- AddInEnvironment.cs
- BasicHttpSecurity.cs
- OutputCacheModule.cs
- ToolTipService.cs
- ConfigsHelper.cs
- DocumentGridPage.cs
- GridLengthConverter.cs
- ExpressionBinding.cs
- HwndKeyboardInputProvider.cs
- XPathEmptyIterator.cs
- ObjectTag.cs
- PartitionedDataSource.cs
- DataGridColumn.cs
- ArgumentOutOfRangeException.cs
- CommandCollectionEditor.cs
- EmptyEnumerable.cs