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
- CompositeFontFamily.cs
- CompatibleComparer.cs
- Connection.cs
- ipaddressinformationcollection.cs
- LabelDesigner.cs
- ApplicationDirectory.cs
- OdbcError.cs
- HttpProfileBase.cs
- MethodToken.cs
- ExtensionFile.cs
- WebPartEditorApplyVerb.cs
- CompatibleComparer.cs
- Thumb.cs
- ManagementDateTime.cs
- CryptoApi.cs
- HtmlUtf8RawTextWriter.cs
- ProcessHostMapPath.cs
- DrawingBrush.cs
- SiblingIterators.cs
- InputBindingCollection.cs
- XmlMembersMapping.cs
- TrackingRecord.cs
- X509Certificate2.cs
- DoWorkEventArgs.cs
- HttpListenerRequest.cs
- DbConnectionPoolGroupProviderInfo.cs
- WebBrowser.cs
- FieldToken.cs
- StringDictionaryWithComparer.cs
- HostingMessageProperty.cs
- InstanceKey.cs
- DefaultObjectSerializer.cs
- ImageField.cs
- UrlParameterReader.cs
- RuntimeIdentifierPropertyAttribute.cs
- SafeCryptContextHandle.cs
- NavigationProperty.cs
- AppDomainFactory.cs
- SerialPinChanges.cs
- hebrewshape.cs
- XmlDataSourceNodeDescriptor.cs
- WorkflowServiceHostFactory.cs
- SpellCheck.cs
- ComponentGuaranteesAttribute.cs
- DragCompletedEventArgs.cs
- xsdvalidator.cs
- WindowsStatusBar.cs
- ValidationErrorCollection.cs
- HostExecutionContextManager.cs
- TemplateBamlRecordReader.cs
- XmlWriter.cs
- XmlDataLoader.cs
- TextServicesCompartmentEventSink.cs
- OperationCanceledException.cs
- OdbcHandle.cs
- SafePEFileHandle.cs
- CheckBoxStandardAdapter.cs
- TextBoxRenderer.cs
- updateconfighost.cs
- BasicHttpBinding.cs
- XmlSchemaValidationException.cs
- PropertyRecord.cs
- PerfCounterSection.cs
- Point.cs
- WebConvert.cs
- CancelEventArgs.cs
- arabicshape.cs
- ProfileService.cs
- ObjectDataSourceWizardForm.cs
- DayRenderEvent.cs
- Ticks.cs
- Function.cs
- ISCIIEncoding.cs
- WebPartCatalogAddVerb.cs
- TraceSection.cs
- PermissionSetTriple.cs
- KeyNotFoundException.cs
- Cursor.cs
- SessionMode.cs
- Keywords.cs
- RandomNumberGenerator.cs
- CompositeScriptReference.cs
- GAC.cs
- CodeNamespaceImportCollection.cs
- CustomLineCap.cs
- DataGridLinkButton.cs
- PowerStatus.cs
- Monitor.cs
- ResolveMatchesMessageCD1.cs
- DataSourceGeneratorException.cs
- DesignerImageAdapter.cs
- MimeTypeMapper.cs
- SqlDataSourceSummaryPanel.cs
- DataTable.cs
- DbConnectionPoolOptions.cs
- InlinedAggregationOperatorEnumerator.cs
- Script.cs
- SQLInt64Storage.cs
- SqlParameter.cs
- ItemCheckEvent.cs