Estrutura StorageLayout (objidl.h)
A estrutura StorageLayout descreve um único bloco de dados, incluindo seu nome, local e comprimento. Para otimizar um arquivo composto, um aplicativo ou uma ferramenta de layout passa uma matriz de estruturas StorageLayout em uma chamada para ILayoutStorage::LayoutScript.
Sintaxe
typedef struct tagStorageLayout {
DWORD LayoutType;
OLECHAR *pwcsElementName;
LARGE_INTEGER cOffset;
LARGE_INTEGER cBytes;
} StorageLayout;
Membros
LayoutType
O tipo de elemento a ser gravado. Os valores são obtidos da enumeração STGTY . STGTY_STREAM significa ler o bloco de dados nomeado por pwcsElementName. STGTY_STORAGE significa abrir o armazenamento especificado em pwcsElementName. STGTY_REPEAT é usado em aplicativos multimídia para interface de áudio, vídeo, texto e outros elementos. Um valor de abertura STGTY_REPEAT significa que os elementos a seguir devem ser repetidos um número especificado de vezes. O valor de STGTY_REPEAT de fechamento marca o final desses elementos que devem ser repetidos. Pares de valores STGTY_REPEAT aninhados são permitidos.
pwcsElementName
O nome da cadeia de caracteres Unicode terminada em nulo do armazenamento ou fluxo. Se o elemento for um objeto substorage ou inserido, o caminho de armazenamento totalmente qualificado deverá ser especificado; por exemplo, "RootStorageName\SubStorageName\Substream".
cOffset
Quando o valor do membro LayoutType é STGTY_STREAM, esse sinalizador especifica o deslocamento inicial para o vapor nomeado no membro pwscElementName .
Quando LayoutType é STGTY_STORAGE, esse sinalizador deve ser definido como zero.
Quando LayoutType é STGTY_REPEAT, esse sinalizador deve ser definido como zero.
cBytes
Comprimento, em bytes, do bloco de dados nomeado em pwcsElementName.
Quando LayoutType é STGTY_STREAM, cBytes especifica o número de bytes a serem lidos em cOffset do fluxo nomeado em pwcsElementName.
Quando LayoutType é STGTY_STORAGE, esse sinalizador é ignorado.
Quando LayoutType é STGTY_REPEAT, um cBytes positivo especifica o início de um bloco de repetição. STGTY_REPEAT com zero cBytes marca o final de um bloco de repetição.
Um valor de bloco inicial de STG_TOEND especifica que os elementos em um bloco a seguir devem ser repetidos depois que cada fluxo tiver sido completamente lido.
Comentários
Uma matriz de estruturas StorageLayout pode aparecer da seguinte maneira.
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 | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
Cabeçalho | objidl.h |