local - атрибут

[ Локальный ] атрибут указывает компилятору MIDL, что интерфейс или функция не являются удаленными.

[ 
    local 
    [, interface-attribute-list] 
] 
interface interface-name
{
}

[ 
    object, 
    uuid(string-uuid), 
    local [, interface-attribute-list] 
]
interface interface-name
{
}

[ local [, function-attribute-list] ] function-declarator ;

Параметры

Interface-список атрибутов

Указывает другие атрибуты, применяемые к интерфейсу в целом. Атрибуты [ конечных точек ] , [ версий ] и [ указателей _ по умолчанию ] являются необязательными. При компиляции с параметром _ конфигурации/АПП [ также могут присутствовать неявные _ обработчики ] или [ Автоматические _ обработчики ] . Несколько атрибутов разделяются запятыми.

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

Указывает имя, по которому программные компоненты могут разграничить интерфейс.

Строка UUID

Указывает строку UUID, созданную служебной программой uuidgen. Если вы не используете параметр компилятора MIDL /ОСФ, строку UUID можно заключить в кавычки.

Function-Attribute-List

Указывает ноль или более атрибутов, которые применяются к функции. Допустимыми атрибутами функций являются [ обратные вызовы ] , атрибут указателя [ ref ] , [ UNIQUE ] или [ ptr ] ; и атрибут использования [ строка ] , [ Ignore ] и [ Контекстный _ маркер ] . Несколько атрибутов разделяются запятыми.

декларатор функции

Указывает спецификатор типа, имя функции и список параметров для функции.

Remarks

[ Локальный ] атрибут может применяться к отдельным функциям или к интерфейсу в целом.

При использовании в заголовке интерфейса [ локальный ] атрибут позволяет использовать компилятор MIDL в качестве генератора заголовков. Компилятор не создает заглушки для всех функций и не гарантирует, что заголовок может быть передан.

Для интерфейса RPC [ локальный ] атрибут нельзя использовать одновременно с [ ] атрибутом UUID. В заголовке интерфейса должен присутствовать либо [ UUID ] , либо [ Local ] . выбранный вариант должен быть ровно один раз.

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

При использовании в отдельной функции [ локальный ] атрибут обозначает локальную процедуру, для которой заглушки не создаются. Использование [ Local ] в качестве атрибута функции — это расширение Майкрософт для устройства DCE IDL. Поэтому этот атрибут недоступен при компиляции с помощью параметра MIDL /ОСФ .

Обратите внимание, что интерфейс без атрибутов можно импортировать в базовый IDL-файл. Однако интерфейс должен содержать только типы данными без процедур. Если в интерфейсе содержится даже одна процедура, необходимо указать локальный или UUID.

Примеры

/* IDL file #1 */ 
[
    local
] 
interface local_procs 
{ 
    void MyLocalProc(void);
} 
 
/* IDL file #2 */ 
[
    object, 
    uuid(12345678-1234-1234-123456789ABC), 
    local
] 
interface local_object_procs : IUnknown
{ 
    void MyLocalObjectProc(void);
} 
 
/* IDL file #3 */ 
[
    uuid(87654321-1234-1234-123456789ABC)
] 
interface mixed_procs 
{ 
    [local] void MyLocalProc(void); 
    HRESULT MyRemoteProc([in] short sParam); 
}

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

_Конфигурация/АПП

Автоматическая _ работа

обратный вызов

Контекстный _ маркер

конечной

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

обращать

неявный _ обработчик

/осф

object

Указатель _ по умолчанию

указатель

ref

Строка

однозначно

UUID

Версия