StorageLayout 構造体 (objidl.h)

StorageLayout 構造体は、名前、場所、長さを含む 1 つのデータ ブロックを記述します。 複合ファイルを最適化するために、アプリケーションまたはレイアウト ツールは、ILayoutStorage::LayoutScript の呼び出しで StorageLayout 構造体の配列を渡します。

構文

typedef struct tagStorageLayout {
  DWORD         LayoutType;
  OLECHAR       *pwcsElementName;
  LARGE_INTEGER cOffset;
  LARGE_INTEGER cBytes;
} StorageLayout;

メンバー

LayoutType

書き込む要素の型。 値は STGTY 列挙から取得されます。 STGTY_STREAM は、 pwcsElementName という名前のデータ ブロックを読み取るということです。 STGTY_STORAGE は、 pwcsElementName で指定されたストレージを開きます。 STGTY_REPEAT は、オーディオ、ビデオ、テキスト、およびその他の要素をインターフェイスするためにマルチメディア アプリケーションで使用されます。 開始STGTY_REPEAT値は、後続の要素が指定された回数繰り返されることを意味します。 終了 STGTY_REPEAT 値は、繰り返される要素の末尾を示します。 入れ子になった STGTY_REPEAT 値のペアが許可されます。

pwcsElementName

ストレージまたはストリームの null で終わる Unicode 文字列名。 要素がサブストレージまたは埋め込みオブジェクトの場合は、完全修飾ストレージ パスを指定する必要があります。たとえば、"RootStorageName\SubStorageName\Substream" などです。

cOffset

LayoutType メンバーの値がSTGTY_STREAMされている場合、このフラグは pwscElementName メンバーで指定された蒸気への開始オフセットを指定します。

LayoutTypeSTGTY_STORAGE場合、このフラグは 0 に設定する必要があります。

LayoutTypeSTGTY_REPEAT場合、このフラグは 0 に設定する必要があります。

cBytes

pwcsElementName で指定されたデータ ブロックの長さ (バイト単位)。

LayoutTypeSTGTY_STREAM場合、cBytespwcsElementName で指定されたストリームから cOffset で読み取るバイト数を指定します。

LayoutTypeSTGTY_STORAGE場合、このフラグは無視されます。

LayoutTypeSTGTY_REPEAT場合、正の cBytes は繰り返しブロックの先頭を指定します。 cBytes が 0 のSTGTY_REPEATは、繰り返しブロックの末尾をマークします。

STG_TOENDの開始ブロック値は、各ストリームが完全に読み取られた後に、次のブロック内の要素を繰り返すように指定します。

注釈

StorageLayout 構造体の配列は、次のように表示される場合があります。

StorageLayout arrScript[]=
    // Read first 2k of "WordDocument" stream
    {STGTY_STREAM,L"WordDocument",{0,0},{0,2048}},
 
    //Test if "ObjectPool\88112233" storage exists
    {STGTY_STORAGE,L"ObjectPool\\88112233",{0,0},{0,0}},
 
    //Read 2k at offset 1048 of "WordDocument" stream
    {STGTY_STREAM,L"WordDocument",{0,10480},{0,2048}},
 
    //Interlace "Audio", "Video", and "Caption" streams
    {STGTY_REPEAT,NULL,0,STG_TOEND},
        {STGTY_STREAM,L"Audio", {0,0},{0,2048}},    // 2k of Audio
        {STGTY_STREAM,L"Video", {0,0},{0,65536}},   // 64k of Video
        {STGTY_STREAM,L"Caption", {0,0},{0,128}},   // 128b of text
    {STGTY_REPEAT,NULL, {0,0},{0,0}}
};
メモ パラメーター cOffsetcBytesLARGE_INTEGER 構造体であり、64 ビット符号付き整数値を 2 つの 32 ビット メンバーの和集合として表すために使用されます。 2 つの 32 ビット メンバーは、DWORD LowPart と LONG HighPart を構造体メンバーとして使用するLARGE_INTEGER構造体として表す必要があります。 (LowPart は下位 32 ビットを指定し、HighPart は上位 32 ビットを指定します)。コンパイラで 64 ビット整数のサポートが組み込まれている場合は、LARGE_INTEGER構造体の QuadPart メンバーを使用して 64 ビット整数を格納します。
 

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
Header objidl.h

こちらもご覧ください

ILayoutStorage::LayoutScript