StorageLayout-Struktur (objidl.h)
Die StorageLayout-Struktur beschreibt einen einzelnen Datenblock, einschließlich Name, Speicherort und Länge. Um eine Verbunddatei zu optimieren, übergibt eine Anwendung oder ein Layouttool ein Array von StorageLayout-Strukturen in einem Aufruf von ILayoutStorage::LayoutScript.
Syntax
typedef struct tagStorageLayout {
DWORD LayoutType;
OLECHAR *pwcsElementName;
LARGE_INTEGER cOffset;
LARGE_INTEGER cBytes;
} StorageLayout;
Member
LayoutType
Der Typ des zu schreibenden Elements. Werte werden aus der STGTY-Enumeration übernommen. STGTY_STREAM bedeutet, dass der Datenblock mit dem Namen pwcsElementName gelesen wird. STGTY_STORAGE bedeutet, dass der in pwcsElementName angegebene Speicher geöffnet wird. STGTY_REPEAT wird in Multimediaanwendungen verwendet, um Audio, Video, Text und andere Elemente zu integrieren. Ein öffnender STGTY_REPEAT Wert bedeutet, dass die folgenden Elemente mehrmals wiederholt werden. Der Wert für den schließenden STGTY_REPEAT markiert das Ende der Elemente, die wiederholt werden sollen. Geschachtelte STGTY_REPEAT Wertpaare sind zulässig.
pwcsElementName
Der Name der Unicode-Zeichenfolge, die mit NULL beendet wurde, des Speichers oder Streams. Wenn es sich bei dem Element um einen Unterspeicher oder ein eingebettetes Objekt handelt, muss der vollqualifizierte Speicherpfad angegeben werden. Beispiel: "RootStorageName\SubStorageName\Substream".
cOffset
Wenn der Wert des LayoutType-ElementsSTGTY_STREAM ist, gibt dieses Flag den Anfangsoffset in den Dampf an, der im pwscElementName-Element benannt ist.
Wenn LayoutTypeSTGTY_STORAGE ist, sollte dieses Flag auf 0 festgelegt werden.
Wenn LayoutTypeSTGTY_REPEAT ist, sollte dieses Flag auf 0 festgelegt werden.
cBytes
Länge des Datenblocks mit dem Namen in pwcsElementName in Byte.
Wenn LayoutTypeSTGTY_STREAM ist, gibt cBytes die Anzahl der Bytes an, die bei cOffset aus dem Stream mit dem Namen in pwcsElementName gelesen werden sollen.
Wenn LayoutTypeSTGTY_STORAGE ist, wird dieses Flag ignoriert.
Wenn LayoutTypeSTGTY_REPEAT ist, gibt ein positives cBytes den Anfang eines Wiederholungsblocks an. STGTY_REPEAT mit null CBytes markiert das Ende eines Wiederholungsblocks .
Der Anfangsblockwert STG_TOEND gibt an, dass Elemente in einem folgenden Block wiederholt werden sollen, nachdem jeder Stream vollständig gelesen wurde.
Hinweise
Ein Array von StorageLayout-Strukturen kann wie folgt angezeigt werden.
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}}
};
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [Desktop-Apps | UWP-Apps] |
Kopfzeile | objidl.h |