Поделиться через


Метод IMetaDataEmit::DefineTypeDef

Создает определение типа для типа СРЕДЫ CLR и получает маркер метаданных для этого определения типа.

Синтаксис

HRESULT DefineTypeDef (
    [in]  LPCWSTR     szTypeDef,
    [in]  DWORD       dwTypeDefFlags,
    [in]  mdToken     tkExtends,
    [in]  mdToken     rtkImplements[],
    [out] mdTypeDef   *ptd  
);  

Параметры

szTypeDef
[in] Имя типа в Юникоде.

dwTypeDefFlags
[in] TypeDef Атрибуты. Это битовая маска значений CoreTypeAttr .

tkExtends
[in] Токен базового класса. Он должен быть либо маркером, mdTypeDef либо маркером mdTypeRef .

rtkImplements
[in] Массив маркеров, указывающий интерфейсы, которые реализует этот класс или интерфейс.

ptd
[out] Назначенный mdTypeDef маркер.

Комментарии

Флаг в dwTypeDefFlags указывает, является ли создаваемый тип ссылочным типом системы общего типа (класс или интерфейс) или типом системного значения общего типа.

В зависимости от предоставленных параметров этот метод в качестве побочного эффекта также может создать mdInterfaceImpl запись для каждого интерфейса, который наследуется или реализуется этим типом. Однако этот метод не возвращает ни один из этих mdInterfaceImpl маркеров. Если клиент хочет позже добавить или изменить mdInterfaceImpl маркер, он должен использовать IMetaDataImport интерфейс для их перечисления. Если вы хотите использовать COM-семантику [default] интерфейса, следует указать интерфейс по умолчанию в качестве первого элемента в ; настраиваемый атрибут, заданный в rtkImplementsклассе, будет указывать, что класс имеет интерфейс по умолчанию (который всегда считается первым mdInterfaceImpl токеном, объявленным для класса ).

Каждый элемент массива rtkImplements содержит mdTypeDef токен или mdTypeRef . Последним элементом в массиве должен быть mdTokenNil.

Требования

Платформы: см. раздел Требования к системе.

Заголовка: Cor.h

Библиотека: Используется в качестве ресурса в MSCorEE.dll

версии платформа .NET Framework: доступно с версии 1.0.

См. также раздел