Compartir a través de


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}}
};
Nota Los parámetros cOffset y cBytes son estructuras LARGE_INTEGER , que se usan para representar un valor entero con signo de 64 bits como unión de dos miembros de 32 bits. Los dos miembros de 32 bits deben representarse como una estructura de LARGE_INTEGER con DWORD LowPart y LONG HighPart como miembros de estructura. (LowPart especifica los 32 bits de orden bajo y HighPart especifica los 32 bits de orden superior). Si el compilador tiene compatibilidad integrada con enteros de 64 bits, use el miembro QuadPart de la estructura de LARGE_INTEGER para almacenar el entero de 64 bits.
 

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

Consulte también

ILayoutStorage::LayoutScript