explicit_handle屬性

[explicit_handle] ACF 屬性會指定每個程式都有作為其第一個參數的基本控制碼,例如 handle_t 類型。

[
    explicit_handle
] 
interface interface-name
{
    ...
}

參數

interface-name

指定介面的名稱。

備註

當您使用 [explicit_handle] 屬性時,即使 IDL 檔案在其參數清單中未包含此控制碼,每個程式都有基本控制碼做為其第一個參數。 發出至標頭檔案和存根常式的原型包含其他參數,且該參數會當做指示遠端呼叫的控制碼使用。

[explicit_handle]屬性會影響遠端程式和序列化程式。 針對類型序列化,支援常式會以初始參數作為明確 (序列化) 控制碼來產生。 如果未使用 [explicit_handle] 屬性,應用程式仍然可以指定作業具有明確的控制碼 (系結或序列化) 導向呼叫。 若要這樣做,具有包含控制碼類型的引數的原型會提供給 IDL 檔案。 請注意,在預設模式中,不會先出現的引數也可以當做指示呼叫的控制碼使用。

因此,雖然 [explicit_handle] 屬性是提供 IDL 原型基本 [explicit_handle] 屬性的方法,但不需要變更 IDL 檔案。 在 /osf 模式中,只能使用第一個引數做為明確控制碼類型。

[explicit_handle]屬性可以當做介面屬性或作業屬性使用。 做為介面屬性,會影響介面中的所有作業,以及需要序列化支援的所有類型。 不過,如果使用它作為作業屬性,它只會影響該特定作業。 如果方法包含一或多個 [in] 內容控制碼,則最左邊的 [in] 內容控制碼會當做系結控制碼使用,而且不會建立其他明確控制碼。

範例

/* ACF File */ 
[
    explicit_handle
] 
interface iface
{ 
    // Interface definition statements.
};

另請參閱

ACF) (應用程式組態檔

auto_handle

implicit_handle

/osf