interface 特性

接口关键字 (keyword) 指定接口的名称。 接口名称必须在 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]

interface-name

指定接口的名称。 接口名称必须是唯一名称,并且必须以字母或下划线字符开头。

base-interface

指定此派生接口从中继承成员函数、状态代码和接口特性的接口的名称。 派生接口不继承类型定义。 为此,请使用导入关键字 (keyword) 导入基接口的 IDL 文件。

declarator-list

指定标准 C 声明符,例如标识符、指针声明符和数组声明符。 有关详细信息,请参阅 数组和Sized-Pointer属性arrays.和 数组和指针declarator-list 由一个或多个声明符组成,用逗号分隔。

备注

IDL 文件和 ACF 中的接口名称必须相同,除非使用 MIDL 编译器开关 /acf

接口名称构成接口句柄数据结构名称的第一部分,这些结构是 RPC 运行时函数的参数。 有关详细信息,请参阅 RPC_IF_HANDLE

如果接口标头包含用于指示 COM 接口的 [object] 属性,则它还必须包含 [uuid] 属性,并且必须指定从中派生的基本 COM 接口。 有关 COM 接口的详细信息,请参阅 [object]

还可以将接口关键字 (keyword) 与 typedef 关键字 (keyword) 一起使用来定义接口数据类型。

示例

/* 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

版本