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]。 用逗号分隔多个属性。

interface-name

指定软件组件可描述接口的名称。

string-uuid

指定 Uuidgen 实用工具生成的 UUID 字符串。 如果不使用 MIDL 编译器开关 /osf,则可以将 UUID 字符串括在引号中。

function-attribute-list

指定应用于函数的零个或多个属性。 有效的函数属性为 [callback];指针属性 [ref][unique][ptr];以及用法属性 [string][ignore][context_handle]。 用逗号分隔多个属性。

function-declarator

指定函数的类型说明符、函数名称和参数列表。

备注

[local] 属性可以应用于单个函数或整个接口。

在接口标头中使用时, [local] 属性允许将 MIDL 编译器用作标头生成器。 编译器不会为任何函数生成存根,也不确保可以传输标头。

对于 RPC 接口, [local] 属性不能与 [uuid] 属性同时使用。 接口标头中必须存在 [uuid][local] ,而你选择的接口标头必须恰好出现一次。

对于由 [object] 接口属性) 标识的 COM 接口 (,即使存在 [uuid] 属性,接口属性列表也可以包含 [local] 属性。

在单个函数中使用时, [local] 属性指定不为其生成存根的本地过程。 使用 [local] 作为函数属性是 DCE IDL 的 Microsoft 扩展。 因此,在使用 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

回调 (callback)

context_handle

端点

接口定义 (IDL) 文件

忽略

implicit_handle

/osf

对象

pointer_default

Ptr

裁判

string

独特

uuid

版本