Code:
/ DotNET / DotNET / 8.0 / untmp / 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 [....] //----------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MaskInputRejectedEventArgs.cs
- TypeUnloadedException.cs
- IPEndPoint.cs
- ReceiveContent.cs
- ManagementEventWatcher.cs
- SystemGatewayIPAddressInformation.cs
- InkPresenterAutomationPeer.cs
- NavigationProgressEventArgs.cs
- ModuleElement.cs
- InfoCardX509Validator.cs
- DbModificationCommandTree.cs
- SspiSecurityTokenProvider.cs
- XmlDataSourceView.cs
- smtppermission.cs
- FieldToken.cs
- StateMachineHelpers.cs
- ModelUtilities.cs
- Delegate.cs
- SizeAnimationClockResource.cs
- Trace.cs
- SqlBulkCopy.cs
- BCLDebug.cs
- Rights.cs
- DesignerActionService.cs
- JpegBitmapDecoder.cs
- SerializerWriterEventHandlers.cs
- ReaderWriterLock.cs
- XmlSchemaAttributeGroup.cs
- DataService.cs
- Vector3D.cs
- _NtlmClient.cs
- ButtonChrome.cs
- DataControlFieldCell.cs
- CryptoApi.cs
- ResourceDictionaryCollection.cs
- Console.cs
- ApplicationBuildProvider.cs
- PreparingEnlistment.cs
- QueryCacheManager.cs
- NumberSubstitution.cs
- BaseProcessor.cs
- ListViewItemEventArgs.cs
- PropertyNames.cs
- DispatchChannelSink.cs
- HtmlValidationSummaryAdapter.cs
- SQLUtility.cs
- TemplateGroupCollection.cs
- ObjectDataSourceMethodEditor.cs
- NetworkStream.cs
- Image.cs
- HttpWebResponse.cs
- TypeConverter.cs
- ReadOnlyCollectionBuilder.cs
- ForeignKeyConstraint.cs
- ClassGenerator.cs
- CodeDesigner.cs
- StringAnimationUsingKeyFrames.cs
- EdmToObjectNamespaceMap.cs
- CheckableControlBaseAdapter.cs
- InfiniteIntConverter.cs
- TransactedBatchingElement.cs
- StreamGeometry.cs
- EditingMode.cs
- MediaTimeline.cs
- InheritanceContextChangedEventManager.cs
- RequestCacheManager.cs
- OLEDB_Enum.cs
- RuleSettingsCollection.cs
- HttpModulesSection.cs
- CodeTypeParameterCollection.cs
- CompositionCommandSet.cs
- InitializerFacet.cs
- TextReader.cs
- HotSpotCollection.cs
- DataColumnCollection.cs
- Perspective.cs
- ScriptServiceAttribute.cs
- PriorityBindingExpression.cs
- StatusBar.cs
- DelegatingTypeDescriptionProvider.cs
- XsltArgumentList.cs
- NumberSubstitution.cs
- ServiceTimeoutsElement.cs
- ContextMenuStrip.cs
- ExpressionTextBox.xaml.cs
- LineSegment.cs
- AstTree.cs
- UdpChannelFactory.cs
- TaiwanCalendar.cs
- EdmConstants.cs
- AspNetHostingPermission.cs
- ProcessModule.cs
- HtmlTextArea.cs
- ExitEventArgs.cs
- ScriptModule.cs
- ListQueryResults.cs
- MultipleViewProviderWrapper.cs
- hebrewshape.cs
- Constraint.cs
- ExtenderControl.cs