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.
};
另請參閱