Struttura StorageLayout (objidl.h)
La struttura StorageLayout descrive un singolo blocco di dati, inclusi il nome, la posizione e la lunghezza. Per ottimizzare un file composto, un'applicazione o uno strumento di layout passa una matrice di strutture StorageLayout in una chiamata a ILayoutStorage::LayoutScript.
Sintassi
typedef struct tagStorageLayout {
DWORD LayoutType;
OLECHAR *pwcsElementName;
LARGE_INTEGER cOffset;
LARGE_INTEGER cBytes;
} StorageLayout;
Members
LayoutType
Tipo di elemento da scrivere. I valori vengono ricavati dall'enumerazione STGTY . STGTY_STREAM significa leggere il blocco di dati denominato da pwcsElementName. STGTY_STORAGE significa aprire lo spazio di archiviazione specificato in pwcsElementName. STGTY_REPEAT viene utilizzato nelle applicazioni multimediali per interfacciare audio, video, testo e altri elementi. Un valore di apertura STGTY_REPEAT indica che gli elementi che seguono devono essere ripetuti un numero specificato di volte. Il valore di chiusura STGTY_REPEAT contrassegna la fine di tali elementi da ripetere. Sono consentite coppie valore STGTY_REPEAT annidate.
pwcsElementName
Nome della stringa Unicode con terminazione Null dell'archiviazione o del flusso. Se l'elemento è un sottostorage o un oggetto incorporato, è necessario specificare il percorso di archiviazione completo; ad esempio "RootStorageName\SubStorageName\Substream".
cOffset
Dove il valore del membro LayoutType è STGTY_STREAM, questo flag specifica l'offset iniziale nel vapore denominato nel membro pwscElementName .
Dove LayoutType è STGTY_STORAGE, questo flag deve essere impostato su zero.
Dove LayoutType è STGTY_REPEAT, questo flag deve essere impostato su zero.
cBytes
Lunghezza, in byte, del blocco di dati denominato in pwcsElementName.
Dove LayoutType è STGTY_STREAM, cBytes specifica il numero di byte da leggere in cOffset dal flusso denominato in pwcsElementName.
Dove LayoutType è STGTY_STORAGE, questo flag viene ignorato.
Dove LayoutType è STGTY_REPEAT, un cBytes positivo specifica l'inizio di un blocco di ripetizione. STGTY_REPEAT con zero cBytes contrassegna la fine di un blocco di ripetizione.
Un valore di blocco iniziale di STG_TOEND specifica che gli elementi in un blocco seguente devono essere ripetuti dopo che ogni flusso è stato letto completamente.
Commenti
Una matrice di strutture StorageLayout può essere visualizzata come indicato di seguito.
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}}
};
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [app desktop | App UWP] |
Server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
Intestazione | objidl.h |