interface 屬性

interface關鍵字會指定介面的名稱。 介面名稱必須同時在 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 的有效介面屬性包括[編碼][解碼][auto_handle][implicit_handle],以及[code][nocode]。

interface-name

指定介面的名稱。 介面名稱必須是唯一的名稱,且開頭必須是字母或底線字元。

base-interface

指定這個衍生介面繼承成員函式、狀態碼和介面屬性的介面名稱。 衍生介面不會繼承型別定義。 若要這樣做,請使用 import 關鍵字來匯入基底介面的 IDL 檔案。

declarator-list

指定標準 C 宣告子,例如識別碼、指標宣告子和陣列宣告子。 如需詳細資訊,請參閱 陣列和Sized-Pointer屬性arrays.和 陣列和指標宣告子清單包含一或多個宣告子,並以逗號分隔。

備註

IDL 檔案和 ACF 中的介面名稱必須相同,除非您使用 MIDL 編譯器參數 /acf

介面名稱會形成介面控制碼資料結構名稱的第一個部分,這些結構是 RPC 執行時間函式的參數。 如需詳細資訊,請參閱 RPC_IF_HANDLE

如果介面標頭包含 [object] 屬性來表示 COM 介面,它也必須包含 [uuid] 屬性,而且必須指定衍生自它的基底 COM 介面。 如需 COM 介面的詳細資訊,請參閱 [object]

您也可以使用 interface 關鍵字搭配 typedef 關鍵字來定義介面資料類型。

範例

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

endpoint

介面定義 (IDL) 檔案

當地

物件

pointer_default

RPC_IF_HANDLE

typedef

uuid

版本