ymm4-plugin-document
読み取り中…
検索中…
一致する文字列を見つけられません
YukkuriMovieMaker.Commons.ComStreamWrapper クラス

COMの IStream を.NETの Stream として扱うためのラッパークラスです。 [詳解]

YukkuriMovieMaker.Commons.ComStreamWrapper の継承関係図

公開メンバ関数

 ComStreamWrapper (global::System.Runtime.InteropServices.ComTypes.IStream stream)
 ComStreamWrapperクラスの新しいインスタンスを初期化します。
override void Flush ()
unsafe override int Read (byte[] buffer, int offset, int count)
override long Seek (long offset, global::System.IO.SeekOrigin origin)
override void SetLength (long value)
unsafe override void Write (byte[] buffer, int offset, int count)

限定公開メンバ関数

override void Dispose (bool disposing)

プロパティ

override bool CanRead [get]
override bool CanSeek [get]
override bool CanWrite [get]
override long Length [get]
override long Position [get, set]

詳解

COMの IStream を.NETの Stream として扱うためのラッパークラスです。

このクラスは、アンマネージドなCOMのストリームを、標準的なマネージドのStreamインターフェースに適合させます。 これにより、ネイティブコードから提供されるストリームを、既存の.NETのストリーム処理ロジックで簡単に利用できるようになります。 このラッパーは、Disposeされると内部で保持しているIStreamを解放します。

// この例では、ネイティブメソッドからIStreamが返されることを想定しています。
// [DllImport("nativelibrary.dll")]
// private static extern void GetImageStream(out System.Runtime.InteropServices.ComTypes.IStream stream);
public void LoadImageFromComStream()
{
System.Runtime.InteropServices.ComTypes.IStream comStream = null;
try
{
// ネイティブメソッドを呼び出してIStreamを取得(シミュレーション)
// GetImageStream(out comStream);
if (comStream != null)
{
// ComStreamWrapperでラップする
using (var managedStream = new ComStreamWrapper(comStream))
{
// .NETのStreamとして画像などを読み込む
// var bitmap = new System.Drawing.Bitmap(managedStream);
// Console.WriteLine($"Image loaded with size: {bitmap.Size}");
}
}
}
finally
{
// ComStreamWrapperがDisposeで解放するため、ここでの解放は不要。
// if (comStream != null) Marshal.ReleaseComObject(comStream);
}
}
ComStreamWrapper(global::System.Runtime.InteropServices.ComTypes.IStream stream)
ComStreamWrapperクラスの新しいインスタンスを初期化します。
Definition ComStreamWrapper.cs:62

構築子と解体子

◆ ComStreamWrapper()

YukkuriMovieMaker.Commons.ComStreamWrapper.ComStreamWrapper ( global.System.Runtime.InteropServices.ComTypes.IStream stream)

ComStreamWrapperクラスの新しいインスタンスを初期化します。

引数
streamラップするCOMの IStream。
例外
ArgumentNullExceptionstream がnullの場合にスローされます。

メソッド詳解

◆ Dispose()

override void YukkuriMovieMaker.Commons.ComStreamWrapper.Dispose ( bool disposing)
protected

◆ Flush()

override void YukkuriMovieMaker.Commons.ComStreamWrapper.Flush ( )

◆ Read()

unsafe override int YukkuriMovieMaker.Commons.ComStreamWrapper.Read ( byte[] buffer,
int offset,
int count )

◆ Seek()

override long YukkuriMovieMaker.Commons.ComStreamWrapper.Seek ( long offset,
global.System.IO.SeekOrigin origin )

◆ SetLength()

override void YukkuriMovieMaker.Commons.ComStreamWrapper.SetLength ( long value)

◆ Write()

unsafe override void YukkuriMovieMaker.Commons.ComStreamWrapper.Write ( byte[] buffer,
int offset,
int count )

プロパティ詳解

◆ CanRead

override bool YukkuriMovieMaker.Commons.ComStreamWrapper.CanRead
get

◆ CanSeek

override bool YukkuriMovieMaker.Commons.ComStreamWrapper.CanSeek
get

◆ CanWrite

override bool YukkuriMovieMaker.Commons.ComStreamWrapper.CanWrite
get

◆ Length

override long YukkuriMovieMaker.Commons.ComStreamWrapper.Length
get

◆ Position

override long YukkuriMovieMaker.Commons.ComStreamWrapper.Position
getset


このクラス詳解は次のファイルから抽出されました: