Condividi tramite


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}}
};
Nota I parametri cOffset e cBytes sono strutture LARGE_INTEGER , usate per rappresentare un valore intero con segno a 64 bit come unione di due membri a 32 bit. I due membri a 32 bit devono essere rappresentati come struttura LARGE_INTEGER con DWORD LowPart e LONG HighPart come membri della struttura. LowPart specifica i 32 bit di ordine basso e HighPart specifica i 32 bit di ordine elevato. Se il compilatore dispone del supporto incorporato per numeri interi a 64 bit, usare il membro QuadPart della struttura LARGE_INTEGER per archiviare l'intero a 64 bit.
 

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

Vedi anche

ILayoutStorage::LayoutScript