Structure StorageLayout (objidl.h)
La structure StorageLayout décrit un seul bloc de données, y compris son nom, son emplacement et sa longueur. Pour optimiser un fichier composé, une application ou un outil de disposition transmet un tableau de structures StorageLayout dans un appel à ILayoutStorage ::LayoutScript.
Syntaxe
typedef struct tagStorageLayout {
DWORD LayoutType;
OLECHAR *pwcsElementName;
LARGE_INTEGER cOffset;
LARGE_INTEGER cBytes;
} StorageLayout;
Membres
LayoutType
Type d’élément à écrire. Les valeurs sont extraites de l’énumération STGTY . STGTY_STREAM signifie lire le bloc de données nommé par pwcsElementName. STGTY_STORAGE signifie ouvrir le stockage spécifié dans pwcsElementName. STGTY_REPEAT est utilisé dans les applications multimédias pour interfacer l’audio, la vidéo, le texte et d’autres éléments. Une valeur de STGTY_REPEAT ouvrante signifie que les éléments qui suivent doivent être répétés un nombre spécifié de fois. La valeur STGTY_REPEAT fermante marque la fin des éléments qui doivent être répétés. Les paires STGTY_REPEAT valeur imbriquées sont autorisées.
pwcsElementName
Nom de chaîne Unicode terminé par null du stockage ou du flux. Si l’élément est un sous-stockage ou un objet incorporé, le chemin de stockage complet doit être spécifié ; par exemple, « RootStorageName\SubStorageName\Substream ».
cOffset
Lorsque la valeur du membre LayoutType est STGTY_STREAM, cet indicateur spécifie le décalage de début dans la vapeur nommée dans le membre pwscElementName .
Lorsque LayoutType est STGTY_STORAGE, cet indicateur doit être défini sur zéro.
Lorsque LayoutType est STGTY_REPEAT, cet indicateur doit être défini sur zéro.
cBytes
Longueur, en octets, du bloc de données nommé dans pwcsElementName.
Lorsque LayoutType est STGTY_STREAM, cBytes spécifie le nombre d’octets à lire dans cOffset à partir du flux nommé dans pwcsElementName.
Lorsque LayoutType est STGTY_STORAGE, cet indicateur est ignoré.
Lorsque LayoutType est STGTY_REPEAT, un cBytes positif spécifie le début d’un bloc de répétition. STGTY_REPEAT avec zéro octets marque la fin d’un bloc de répétition.
Une valeur de bloc de début de STG_TOEND spécifie que les éléments d’un bloc suivant doivent être répétés une fois que chaque flux a été entièrement lu.
Remarques
Un tableau de structures StorageLayout peut apparaître comme suit.
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}}
};
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau | Applications UWP] |
En-tête | objidl.h |