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


interface - атрибут

В ключевое слово интерфейса указывается имя интерфейса. Имя интерфейса должно быть указано как в IDL-файле, так и в ACF.

[ 
    interface-attribute-list 
] 
interface interface-name [ : base-interface ]
{
}

typedef interface interface-name declarator-list

Параметры

interface-attribute-list

Задает атрибуты, которые применяются к интерфейсу в целом. Допустимые атрибуты интерфейса для IDL-файла включают [endpoint], [local], [object], [pointer_default], [uuid] и [version]. Допустимые атрибуты интерфейса для ACF включают [encode], [decode], [auto_handle] или [implicit_handle], а также [code] или [nocode].

имя интерфейса

Указывает имя интерфейса. Имя интерфейса должно быть уникальным и начинаться с алфавита или символа подчеркивания.

базовый интерфейс

Указывает имя интерфейса, от которого этот производный интерфейс наследует функции-члены, коды состояния и атрибуты интерфейса. Производный интерфейс не наследует определения типов. Для этого используйте ключевое слово импорта IDL-файла базового интерфейса.

declarator-list

Указывает стандартные деклараторы C, такие как идентификаторы, деклараторы указателей и деклараторы массива. Дополнительные сведения см. в разделах Массив и Sized-Pointer Атрибуты, массивы и массивы и указатели. Список деклараторов состоит из одного или нескольких деклараторов, разделенных запятыми.

Комментарии

Имена интерфейсов в IDL-файле и ACF должны быть одинаковыми, за исключением случаев, когда используется параметр компилятора MIDL /acf.

Имя интерфейса формирует первую часть имени структур данных обработчика интерфейса, которые являются параметрами для функций среды выполнения RPC. Дополнительные сведения см. в разделе RPC_IF_HANDLE.

Если заголовок интерфейса содержит атрибут [object] для обозначения COM-интерфейса, он должен также включать атрибут [uuid] и указывать базовый COM-интерфейс, от которого он является производным. Дополнительные сведения о COM-интерфейсах см. в разделе [объект].

Для определения типа данных интерфейса можно также использовать ключевое слово с ключевое слово typedef.

Примеры

/* use of interface keyword in IDL file for an RPC interface */ 
[ 
    uuid (00000000-0000-0000-0000-000000000000), 
    version (1.0) 
] 
interface remote_if_2 
{  
    // Interface definition statements.
} 
 
/* use of interface keyword in ACF for an RPC interface */ 
[
    implicit_handle( handle_t xa_bhandle ) 
] 
interface remote_if_2 
{ 
    // Attribute configuration statements.
} 
 
/* use of interface keyword in IDL file for a COM interface */ 
[ 
    object, uuid (00000000-0000-0000-0000-000000000000) 
] 
interface IDerivedInterface : IBaseInterface 
{  
    import "base.idl" 
    Save(); 
} 
 
/* use of interface keyword to define an interface pointer type */ 
typedef interface IStorage *LPSTORAGE;

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

Файл конфигурации приложения (ACF)

Конечной точки

Файл определения интерфейса (IDL)

Местных

Объекта

pointer_default

RPC_IF_HANDLE

Typedef

uuid

Версия