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


local - атрибут

Атрибут [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-attribute-list

Указывает другие атрибуты, которые применяются к интерфейсу в целом. Атрибуты [endpoint], [version] и [pointer_default] являются необязательными. При компиляции с параметром /app_config также может присутствовать [implicit_handle] или [auto_handle] . Разделяйте несколько атрибутов запятыми.

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

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

string-uuid

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

function-attribute-list

Задает ноль или несколько атрибутов, применяемых к функции. Допустимые атрибуты функции: [обратный вызов]; атрибут указателя [ссылка], [уникальный], или [ptr]; и атрибуты использования [string], [ignore] и [context_handle]. Разделяйте несколько атрибутов запятыми.

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

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

Комментарии

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

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

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

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

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

Обратите внимание, что интерфейс без атрибутов можно импортировать в базовый 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); 
}

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

/app_config

auto_handle

Обратного вызова

context_handle

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

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

Игнорировать

implicit_handle

/Osf

Объекта

pointer_default

Ptr

Ref

строка

Уникальный

uuid

Версия