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
- FontStretches.cs
- AutomationElementCollection.cs
- WorkerRequest.cs
- BindingValueChangedEventArgs.cs
- ScriptResourceHandler.cs
- QilInvokeEarlyBound.cs
- Variant.cs
- _HTTPDateParse.cs
- DropDownList.cs
- Stylesheet.cs
- _OverlappedAsyncResult.cs
- ShowExpandedMultiValueConverter.cs
- ReachFixedDocumentSerializer.cs
- SQLMoney.cs
- RequiredFieldValidator.cs
- MatrixTransform3D.cs
- CombinedGeometry.cs
- UnaryNode.cs
- StrongNameMembershipCondition.cs
- ZipIOLocalFileBlock.cs
- TextStore.cs
- SoapElementAttribute.cs
- RecognizerBase.cs
- ThemeableAttribute.cs
- HashCryptoHandle.cs
- GridEntryCollection.cs
- WpfXamlType.cs
- PriorityRange.cs
- TemplateControlBuildProvider.cs
- _PooledStream.cs
- XpsPartBase.cs
- isolationinterop.cs
- IPAddressCollection.cs
- BoundConstants.cs
- ScalarOps.cs
- GlyphElement.cs
- NativeWindow.cs
- ObfuscationAttribute.cs
- DefaultWorkflowTransactionService.cs
- ItemContainerGenerator.cs
- EmptyStringExpandableObjectConverter.cs
- ClientFormsIdentity.cs
- TextSelectionProcessor.cs
- DetailsViewRow.cs
- ZipFileInfo.cs
- ViewGenResults.cs
- DataGridGeneralPage.cs
- NotifyCollectionChangedEventArgs.cs
- XsltLibrary.cs
- ProtocolsConfigurationEntry.cs
- SafeRightsManagementEnvironmentHandle.cs
- TreeNodeBindingCollection.cs
- QueueProcessor.cs
- CompilerError.cs
- WorkflowRuntimeServiceElement.cs
- SqlBulkCopyColumnMapping.cs
- TableLayoutSettings.cs
- RuntimeResourceSet.cs
- TextBreakpoint.cs
- SmtpLoginAuthenticationModule.cs
- SHA384Managed.cs
- DynamicRendererThreadManager.cs
- EntityContainerEmitter.cs
- TemplateColumn.cs
- _Connection.cs
- AmbientLight.cs
- TextRangeEdit.cs
- IsolatedStorageFileStream.cs
- SectionUpdates.cs
- InvocationExpression.cs
- PersianCalendar.cs
- _DisconnectOverlappedAsyncResult.cs
- BevelBitmapEffect.cs
- TypeBuilderInstantiation.cs
- Profiler.cs
- Localizer.cs
- ByteConverter.cs
- GridViewColumnHeaderAutomationPeer.cs
- PointAnimationBase.cs
- HandledMouseEvent.cs
- StrongNameIdentityPermission.cs
- DataGridViewCellValidatingEventArgs.cs
- ProgressPage.cs
- RolePrincipal.cs
- ContainerFilterService.cs
- FileEnumerator.cs
- SystemColors.cs
- DataBindingExpressionBuilder.cs
- ResolveNextArgumentWorkItem.cs
- DiagnosticsConfigurationHandler.cs
- ObjectPropertyMapping.cs
- DiscoveryMessageProperty.cs
- Privilege.cs
- followingsibling.cs
- XmlArrayItemAttributes.cs
- DesignerProperties.cs
- SimpleHandlerBuildProvider.cs
- CodeRegionDirective.cs
- DataGridViewRowConverter.cs
- Wildcard.cs