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
- XmlDataSourceDesigner.cs
- ObjRef.cs
- PrintPreviewControl.cs
- X509Certificate.cs
- Msmq4PoisonHandler.cs
- StringComparer.cs
- SchemaImporter.cs
- AdPostCacheSubstitution.cs
- UIElementCollection.cs
- StdValidatorsAndConverters.cs
- DataObjectCopyingEventArgs.cs
- MethodInfo.cs
- HandlerWithFactory.cs
- SystemTcpConnection.cs
- ConfigurationProperty.cs
- TypeUtils.cs
- Command.cs
- ErrorCodes.cs
- PictureBox.cs
- BuildResultCache.cs
- SelectionEditingBehavior.cs
- _AutoWebProxyScriptHelper.cs
- clipboard.cs
- WSSecurityTokenSerializer.cs
- DrawingDrawingContext.cs
- DataRecordObjectView.cs
- XmlIlTypeHelper.cs
- Tuple.cs
- SizeConverter.cs
- WebPartCatalogCloseVerb.cs
- XmlSequenceWriter.cs
- UIPropertyMetadata.cs
- InvalidCastException.cs
- InvalidateEvent.cs
- QilFunction.cs
- ColumnProvider.cs
- NamespaceMapping.cs
- MaskedTextProvider.cs
- EntityDataSourceContainerNameItem.cs
- graph.cs
- DataGridViewComboBoxEditingControl.cs
- ScriptHandlerFactory.cs
- DWriteFactory.cs
- AvTraceFormat.cs
- SQLDecimalStorage.cs
- Trigger.cs
- httpapplicationstate.cs
- JoinSymbol.cs
- ConfigXmlWhitespace.cs
- ConfigurationValue.cs
- QuadTree.cs
- PeerPresenceInfo.cs
- FindCriteria.cs
- FontFamilyValueSerializer.cs
- ILGen.cs
- PageContent.cs
- ExpressionTable.cs
- SwitchElementsCollection.cs
- SecurityUtils.cs
- recordstatescratchpad.cs
- Storyboard.cs
- EmptyControlCollection.cs
- FormsAuthenticationEventArgs.cs
- EndpointDiscoveryBehavior.cs
- SqlBuilder.cs
- FloatUtil.cs
- BlurEffect.cs
- ChainedAsyncResult.cs
- Tracer.cs
- DefaultMemberAttribute.cs
- GcHandle.cs
- AlgoModule.cs
- EditorZone.cs
- ReferencedAssemblyResolver.cs
- MetaModel.cs
- MsmqIntegrationBinding.cs
- CompilerError.cs
- ComplexLine.cs
- InstalledFontCollection.cs
- Mutex.cs
- TypeExtension.cs
- AssertHelper.cs
- EdmSchemaAttribute.cs
- SyndicationDeserializer.cs
- Clipboard.cs
- Section.cs
- CapabilitiesAssignment.cs
- DependentList.cs
- DataGridViewCellParsingEventArgs.cs
- HMACSHA256.cs
- Parsers.cs
- CopyNodeSetAction.cs
- MsmqAppDomainProtocolHandler.cs
- WindowsFormsHelpers.cs
- TextParentUndoUnit.cs
- PartialCachingControl.cs
- StrokeCollectionConverter.cs
- ConfigurationStrings.cs
- GetWinFXPath.cs
- PlaceHolder.cs