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
- PersonalizationProviderHelper.cs
- AddInContractAttribute.cs
- ProgressiveCrcCalculatingStream.cs
- hresults.cs
- AssemblyCollection.cs
- SrgsRulesCollection.cs
- IncrementalHitTester.cs
- CompositeFontInfo.cs
- CTreeGenerator.cs
- DrawingImage.cs
- EntitySetBaseCollection.cs
- ProcessProtocolHandler.cs
- ExpandedWrapper.cs
- SqlSupersetValidator.cs
- BindingUtils.cs
- OleDbSchemaGuid.cs
- XmlSchemaGroupRef.cs
- ISAPIApplicationHost.cs
- ModifierKeysConverter.cs
- ConditionalWeakTable.cs
- BitmapEncoder.cs
- NotSupportedException.cs
- DataGridCellsPanel.cs
- BlurBitmapEffect.cs
- DispatcherSynchronizationContext.cs
- shaperfactory.cs
- SafeEventLogWriteHandle.cs
- CodeConstructor.cs
- RepeaterCommandEventArgs.cs
- LicenseProviderAttribute.cs
- ButtonBaseDesigner.cs
- ImageSourceConverter.cs
- CoordinationService.cs
- AVElementHelper.cs
- ClientEventManager.cs
- XmlSerializerAssemblyAttribute.cs
- MouseActionConverter.cs
- XLinq.cs
- BindingList.cs
- TextDecorationCollectionConverter.cs
- TimeManager.cs
- VerificationException.cs
- ProofTokenCryptoHandle.cs
- ExtensionFile.cs
- ScriptResourceDefinition.cs
- ChoiceConverter.cs
- SecurityKeyUsage.cs
- CompModSwitches.cs
- FileDialogPermission.cs
- Message.cs
- CodeDOMUtility.cs
- Gdiplus.cs
- SortDescriptionCollection.cs
- HttpValueCollection.cs
- TemplateField.cs
- Color.cs
- EntitySetBaseCollection.cs
- ProtocolsConfigurationEntry.cs
- BulletedListEventArgs.cs
- SHA256.cs
- SizeFConverter.cs
- ZeroOpNode.cs
- ListViewGroup.cs
- DelegatingTypeDescriptionProvider.cs
- URLString.cs
- PropertyGridCommands.cs
- SQLInt16Storage.cs
- DocumentGridContextMenu.cs
- StackSpiller.cs
- StringAnimationBase.cs
- SelectionPatternIdentifiers.cs
- TableProviderWrapper.cs
- FilePrompt.cs
- StructuredTypeEmitter.cs
- ContentPlaceHolder.cs
- ChangePasswordAutoFormat.cs
- ToolStripLocationCancelEventArgs.cs
- Parser.cs
- TransportationConfigurationTypeInstallComponent.cs
- FieldMetadata.cs
- StrokeCollection2.cs
- WebPartEditorOkVerb.cs
- PeoplePickerWrapper.cs
- ConfigurationStrings.cs
- SharedPerformanceCounter.cs
- TextSimpleMarkerProperties.cs
- HideDisabledControlAdapter.cs
- PenContext.cs
- WSDualHttpSecurity.cs
- TransformedBitmap.cs
- HwndSubclass.cs
- ValidationRuleCollection.cs
- XmlSchemaAttributeGroupRef.cs
- XmlAnyElementAttributes.cs
- TransformPatternIdentifiers.cs
- DataSvcMapFile.cs
- ValidationErrorInfo.cs
- PersonalizationAdministration.cs
- XmlSiteMapProvider.cs
- LoginStatusDesigner.cs