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
- HtmlImage.cs
- DateTimeSerializationSection.cs
- GPStream.cs
- EntityTransaction.cs
- SupportingTokenListenerFactory.cs
- ContextBase.cs
- TypeUsage.cs
- CanonicalFontFamilyReference.cs
- SqlInfoMessageEvent.cs
- VerificationAttribute.cs
- UserPreferenceChangingEventArgs.cs
- MultiPropertyDescriptorGridEntry.cs
- WindowsAuthenticationModule.cs
- XpsFilter.cs
- ExpressionBindings.cs
- ScrollChrome.cs
- CodeDomConfigurationHandler.cs
- MatcherBuilder.cs
- FontWeights.cs
- EventToken.cs
- BrushProxy.cs
- SchemaTypeEmitter.cs
- RouteUrlExpressionBuilder.cs
- complextypematerializer.cs
- CodeFieldReferenceExpression.cs
- SQLString.cs
- ExtensionSimplifierMarkupObject.cs
- EntitySetDataBindingList.cs
- PhonemeEventArgs.cs
- Int16KeyFrameCollection.cs
- HotSpot.cs
- RelationshipManager.cs
- Repeater.cs
- util.cs
- WebPartConnectionsDisconnectVerb.cs
- PixelFormat.cs
- SerializationInfo.cs
- TypeInfo.cs
- XmlSchemaObjectTable.cs
- ScrollableControl.cs
- CollectionBuilder.cs
- UniqueEventHelper.cs
- TagPrefixInfo.cs
- ReflectPropertyDescriptor.cs
- DependencyObjectType.cs
- LinkTarget.cs
- VisualStyleTypesAndProperties.cs
- PageSetupDialog.cs
- ScriptingAuthenticationServiceSection.cs
- _SpnDictionary.cs
- RouteData.cs
- SelectorAutomationPeer.cs
- DocumentPaginator.cs
- BaseDataBoundControl.cs
- TransformProviderWrapper.cs
- AggregateNode.cs
- SqlDataReaderSmi.cs
- ImageListImage.cs
- AutomationPattern.cs
- HandledEventArgs.cs
- TrackingMemoryStreamFactory.cs
- PaginationProgressEventArgs.cs
- QueryExpression.cs
- CompilationRelaxations.cs
- DecimalKeyFrameCollection.cs
- SelectionChangedEventArgs.cs
- StylusPointPropertyId.cs
- CaseInsensitiveHashCodeProvider.cs
- ExceptionUtility.cs
- EntitySqlException.cs
- Number.cs
- XmlSchemaSimpleType.cs
- SymmetricCryptoHandle.cs
- Debug.cs
- MultiByteCodec.cs
- ComPersistableTypeElementCollection.cs
- HyperLinkField.cs
- HttpCacheVary.cs
- WindowsRichEditRange.cs
- ResourceManagerWrapper.cs
- SequenceDesigner.cs
- BrowserCapabilitiesCodeGenerator.cs
- SystemNetworkInterface.cs
- LocalizedNameDescriptionPair.cs
- ReferencedType.cs
- LockedBorderGlyph.cs
- IsolationInterop.cs
- DbCommandDefinition.cs
- DispatcherHookEventArgs.cs
- ByteStream.cs
- WebPartZone.cs
- EntityException.cs
- MgmtConfigurationRecord.cs
- QueryRewriter.cs
- InheritanceUI.cs
- SqlBuilder.cs
- DetailsViewModeEventArgs.cs
- SmtpLoginAuthenticationModule.cs
- WebPartMenuStyle.cs
- SafeNativeMemoryHandle.cs