Partager via


IMetaDataEmit::SetClassLayout, méthode

Exécute la disposition des champs pour une classe définie par un appel précédent de IMetaDataEmit::DefineTypeDef, méthode.

HRESULT SetClassLayout (
    [in]  mdTypeDef           td, 
    [in]  DWORD               dwPackSize, 
    [in]  COR_FIELD_OFFSET    rFieldOffsets[], 
    [in]  ULONG               ulClassSize 
);

Paramètres

  • td
    [in] Jeton mdTypeDef qui spécifie la classe à disposer.

  • dwPackSize
    [in] Taille de compression : 1, 2, 4, 8 ou 16 octets. La taille de compression correspond au nombre d'octets entre des champs adjacents.

  • rFieldOffsets
    [in] Tableau de structures COR_FIELD_OFFSET qui spécifient chacune un champ de la classe et l'offset du champ dans la classe. Terminez le tableau avec mdTokenNil.

  • ulClassSize
    [in] Taille, en octets, de la classe.

Notes

La classe est définie initialement en appelant la méthode IMetaDataEmit::DefineTypeDef et en spécifiant l'une des trois dispositions pour les champs de la classe : automatique, séquentielle ou explicite. Normalement, vous utilisez la disposition automatique et laissez l'exécution choisir la meilleure disposition pour les champs.

Toutefois, vous souhaitez peut-être que les champs soient présentés selon la disposition utilisée par le code non managé. Dans ce cas, choisissez la disposition séquentielle ou explicite et appelez SetClassLayout pour exécuter la disposition des champs :

  • Disposition séquentielle : spécifiez la taille de compression. Un champ est aligné d'après sa taille naturelle ou la taille de compression, selon l'offset le plus petit du champ. Affectez la valeur zéro à rFieldOffsets et ulClassSize.

  • Disposition explicite : spécifiez l'offset de chaque champ ou spécifiez la taille de classe et la taille de compression.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : Cor.h

Bibliothèque : utilisée en tant que ressource dans MSCorEE.dll

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Voir aussi

Référence

IMetaDataEmit, interface

IMetaDataEmit2, interface