Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Атрибут [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);
}
См. также раздел