CfbWriter

CfbWriter

概要

CfbWriter は CfbDocument を有効な Compound File Binary ファイルにシリアライズします。シリアライズされた内容をバイト配列として取得するには ToBytes を呼び出し、ディスクに直接書き込むには WriteFile を使用してください。内部の Serialize メソッドは、MS-CFB 仕様に従って FAT、DIFAT、mini-FAT、ディレクトリセクタを構築します。コンストラクタは、ライター内部でエントリレコードとセクタチェーンを表すために使用されます。

コンストラクタ

シグネチャ説明
Serializer(document: CfbDocument)指定されたパラメータで新しいCfbWriterを作成します。
EntryRecord(streamId: uint, name: string, objectType: DirectoryObjectType, clsid: byte[], stateBits: uint, creationTime: ulong, modifiedTime: ulong)指定されたパラメータで新しいCfbWriterを作成します。
Chain(payload: byte[])指定されたパラメータで新しいCfbWriterを作成します。

メソッド

シグネチャ説明
ToBytes(document: CfbDocument)documentをCFB準拠のバイト配列にシリアライズします。
WriteFile(document: CfbDocument, path: string)シリアライズし、document を path のファイルに書き込みます。
Serialize()内部CFBレイアウトを実行します: FATセクタを割り当て、ディレクトリエントリを構築し、完全なバイナリを返します。

プロパティ

名前型アクセス説明
StreamIduint読み取りこのエントリレコードに割り当てられたゼロベースのディレクトリインデックス。
Namestring読み取りUTF-16LE エントリ名(CFB ディレクトリに表示される形)。
ObjectTypeDirectoryObjectType読み取りこのエントリのオブジェクトタイプバイトにエンコードされた DirectoryObjectType の値。
Clsidbyte[]読み取りこのエントリの CLSID フィールドに書き込まれる 16 バイトの CLSID。
StateBitsuint読み取りこのエントリにアプリケーション定義の状態ビットが書き込まれます。
CreationTimeulong読み取りこのエントリに作成タイムスタンプ(FILETIME)が書き込まれます。
ModifiedTimeulong読み取りこのエントリに書き込まれる変更タイムスタンプ(FILETIME)。
StreamDatabyte[]読み取りストリーム型エントリのペイロードバイト(ストレージ型エントリの場合は空)。
ChildrenList<EntryRecord>読み取りストレージ型ノードの子 EntryRecord エントリの順序付けされたリスト。
ColorFlagDirectoryColorFlag読み取りこのエントリのディレクトリレコードに書き込まれる赤黒木の色。
LeftSiblingIduint読み取り赤黒木における左兄弟のStream ID。
RightSiblingIduint読み取り赤黒木における右兄弟のStream ID。
ChildIduint読み取り最初の子エントリのストリーム ID(ストレージタイプ ノード用)。
StartingSectorLocationuint読み取りこのストリームのデータの最初の FAT セクタ インデックス。
StreamSizeulong読み取りストリーム データ ペイロードのバイト数。
IsRootbool読み取りこのエントリがルートストレージエントリ(ストリーム ID 0)の場合は True。
IsStoragebool読み取りこのエントリがストレージコンテナの場合は True。
IsStreambool読み取りこのエントリがデータストリームの場合は True。
Payloadbyte[]読み取りこのエントリの完全なシリアライズされたバイト列(チェーンビルダー内部で使用されます)。
SectorsList<uint>読み取りこのエントリのデータに割り当てられた FAT セクタインデックスの順序付きリスト。
FirstSectoruint読み取りこのエントリのデータに割り当てられた最初の FAT セクタのインデックス。

参照

 日本語