DefineTypeDef メソッドの以前の呼び出しによって定義されているクラスのフィールドのレイアウトを完了します。
Syntax
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Parameters
td [in]レイアウトするクラスを指定する mdTypeDef トークン。
dwPackSize [in]パッキング サイズ: 1、2、4、8、または 16 バイト。 パッキング サイズは、隣接するフィールド間のバイト数です。
rFieldOffsets [in] COR_FIELD_OFFSET 構造体の配列。各構造体は、クラスのフィールドとクラス内のフィールドのオフセットを指定します。 配列を mdTokenNil で終了します。
ulClassSize [in]クラスのサイズ (バイト単位)。
Remarks
クラスは、最初に IMetaDataEmit::D efineTypeDef メソッドを呼び出し、クラスのフィールドに自動、シーケンシャル、または明示的の 3 つのレイアウトのいずれかを指定することによって定義されます。 通常は、自動レイアウトを使用し、ランタイムがフィールドをレイアウトするための最適な方法を選択できるようにします。
ただし、アンマネージド コードが使用する配置に従ってフィールドをレイアウトすることが必要な場合があります。 この場合は、シーケンシャルレイアウトまたは明示的レイアウトのいずれかを選択し、 SetClassLayout を呼び出してフィールドのレイアウトを完了します。
シーケンシャル レイアウト: パッキング サイズを指定します。 フィールドは、その自然なサイズまたはパッキング サイズのいずれかに従って配置され、フィールドのオフセットが小さくなります。
rFieldOffsetsとulClassSizeを 0 に設定します。明示的なレイアウト: 各フィールドのオフセットを指定するか、クラス サイズとパッキング サイズを指定します。
Requirements
プラットフォーム:サポートされている .NET オペレーティング システムを参照してください。
Header: Cor.h
Library: CorGuids.lib
See also
.NET