Skip to content

Latest commit

 

History

History
31 lines (16 loc) · 1.35 KB

ii.22.23-interfaceimpl-0x09.md

File metadata and controls

31 lines (16 loc) · 1.35 KB

II.22.23 InterfaceImpl: 0x09

The InterfaceImpl table has the following columns:

  • Class (an index into the TypeDef table)

  • Interface (an index into the TypeDef, TypeRef, or TypeSpec table; more precisely, a TypeDefOrRefII.24.2.6) coded index)

The InterfaceImpl table records the interfaces a type implements explicitly. Conceptually, each row in the InterfaceImpl table indicates that Class implements Interface.

_ This contains informative text only._

  1. The InterfaceImpl table can contain zero or more rows

  2. Class shall be non-null [ERROR]

  3. If Class is non-null, then:

    1. Class shall index a valid row in the TypeDef table [ERROR]

    2. Interface shall index a valid row in the TypeDef or TypeRef table [ERROR]

    3. The row in the TypeDef, TypeRef, or TypeSpec table indexed by Interface shall be an interface (Flags.Interface = 1), not a Class or ValueType [ERROR]

  4. There should be no duplicates in the InterfaceImpl table, based upon non-null Class and Interface values [WARNING]

  5. There can be many rows with the same value for Class (since a class can implement many interfaces)

  6. There can be many rows with the same value for Interface (since many classes can implement the same interface)

End informative text.