Estructura StorageLayout (objidl.h)
La estructura StorageLayout describe un único bloque de datos, incluido su nombre, ubicación y longitud. Para optimizar un archivo compuesto, una aplicación o herramienta de diseño pasa una matriz de estructuras StorageLayout en una llamada a ILayoutStorage::LayoutScript.
Sintaxis
typedef struct tagStorageLayout {
DWORD LayoutType;
OLECHAR *pwcsElementName;
LARGE_INTEGER cOffset;
LARGE_INTEGER cBytes;
} StorageLayout;
Miembros
LayoutType
Tipo de elemento que se va a escribir. Los valores se toman de la enumeración STGTY . STGTY_STREAM significa leer el bloque de datos denominado por pwcsElementName. STGTY_STORAGE significa abrir el almacenamiento especificado en pwcsElementName. STGTY_REPEAT se usa en aplicaciones multimedia para interactuar con audio, vídeo, texto y otros elementos. Un valor de apertura STGTY_REPEAT significa que los elementos siguientes se repetirán un número especificado de veces. El valor de cierre STGTY_REPEAT marca el final de esos elementos que se van a repetir. Se permiten pares de valores de STGTY_REPEAT anidados.
pwcsElementName
Nombre de cadena Unicode terminada en null del almacenamiento o de la secuencia. Si el elemento es un substorage o un objeto incrustado, se debe especificar la ruta de acceso de almacenamiento completa; por ejemplo, "RootStorageName\SubStorageName\Substream".
cOffset
Donde el valor del miembro LayoutType es STGTY_STREAM, esta marca especifica el desplazamiento inicial en el vapor denominado en el miembro pwscElementName .
Donde LayoutType es STGTY_STORAGE, esta marca debe establecerse en cero.
Donde LayoutType es STGTY_REPEAT, esta marca debe establecerse en cero.
cBytes
Longitud, en bytes, del bloque de datos denominado pwcsElementName.
Donde LayoutType es STGTY_STREAM, cBytes especifica el número de bytes que se van a leer en cOffset de la secuencia denominada en pwcsElementName.
Donde LayoutType es STGTY_STORAGE, se omite esta marca.
Donde LayoutType es STGTY_REPEAT, un cBytes positivo especifica el principio de un bloque de repetición. STGTY_REPEAT con cero cBytes marca el final de un bloque de repetición.
Un valor de bloque inicial de STG_TOEND especifica que los elementos de un bloque siguiente se repetirán después de leer completamente cada secuencia.
Comentarios
Una matriz de estructuras StorageLayout puede aparecer como se indica a continuación.
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}}
};
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP] |
Encabezado | objidl.h |