Struktur StorageLayout (objidl.h)
Struktur StorageLayout menjelaskan satu blok data, termasuk namanya, lokasi, dan panjangnya. Untuk mengoptimalkan file campuran, aplikasi atau alat tata letak meneruskan array struktur StorageLayout dalam panggilan ke ILayoutStorage::LayoutScript.
Sintaks
typedef struct tagStorageLayout {
DWORD LayoutType;
OLECHAR *pwcsElementName;
LARGE_INTEGER cOffset;
LARGE_INTEGER cBytes;
} StorageLayout;
Anggota
LayoutType
Jenis elemen yang akan ditulis. Nilai diambil dari enumerasi STGTY . STGTY_STREAM berarti membaca blok data yang dinamai oleh pwcsElementName. STGTY_STORAGE berarti membuka penyimpanan yang ditentukan dalam pwcsElementName. STGTY_REPEAT digunakan dalam aplikasi multimedia untuk antarmuka audio, video, teks, dan elemen lainnya. Nilai STGTY_REPEAT pembuka berarti bahwa elemen yang mengikuti akan diulangi beberapa kali. Nilai STGTY_REPEAT penutup menandai akhir elemen yang akan diulang. Pasangan nilai STGTY_REPEAT berlapis diizinkan.
pwcsElementName
Nama string Unicode yang dihentikan null dari penyimpanan atau aliran. Jika elemen adalah substorase atau objek yang disematkan, jalur penyimpanan yang sepenuhnya memenuhi syarat harus ditentukan; misalnya, "RootStorageName\SubStorageName\Substream".
cOffset
Di mana nilai anggota LayoutTypeSTGTY_STREAM, bendera ini menentukan offset awal ke dalam uap bernama di anggota pwscElementName .
Di mana LayoutTypeSTGTY_STORAGE, bendera ini harus diatur ke nol.
Di mana LayoutTypeSTGTY_REPEAT, bendera ini harus diatur ke nol.
cBytes
Panjang, dalam byte, dari blok data bernama di pwcsElementName.
Di mana LayoutTypeSTGTY_STREAM, cBytes menentukan jumlah byte yang akan dibaca di cOffset dari aliran bernama di pwcsElementName.
Di mana LayoutTypeSTGTY_STORAGE, bendera ini diabaikan.
Di mana LayoutTypeSTGTY_REPEAT, cByte positif menentukan awal blok berulang. STGTY_REPEAT dengan nol cBytes menandai akhir blok berulang.
Nilai blok awal STG_TOEND menentukan bahwa elemen dalam blok berikut akan diulang setelah setiap aliran dibaca sepenuhnya.
Keterangan
Array struktur StorageLayout mungkin muncul sebagai berikut.
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}}
};
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows 2000 Server [aplikasi desktop | Aplikasi UWP] |
Header | objidl.h |