自動系結句柄
當應用程式不需要特定伺服器,且不需要維護客戶端與伺服器之間的任何狀態資訊時,自動系結句柄就很有用。 當您使用自動系結句柄時,您不需要撰寫任何用戶端應用程式程式代碼來處理系結和句柄,您只需指定在應用程式組態檔 (ACF) 中使用自動系結句柄即可。 存根接著會定義句柄並管理系結。
例如,可以使用自動句柄實作時間戳作業。 它不會對用戶端應用程式提供時間戳的用戶端應用程式造成任何差異,因為它可以接受來自任何可用伺服器的時間。
注意
Macintosh 平台不支持自動句柄。
您可以藉由在 ACF 中包含 [auto_handle] 屬性來指定自動句柄的使用方式。 時間戳範例會使用下列 ACF:
/* ACF file */
[
auto_handle
]
interface autoh
{
}
當 ACF 不包含任何其他句柄屬性,而且當遠端程式不使用明確句柄時,MIDL 編譯程式預設會使用自動句柄。 當 ACF 不存在時,它也會使用自動句柄做為預設值。
遠端程式是在IDL檔案中指定。 自動句柄不得顯示為遠端程式的自變數。 例如:
/* IDL file */
[
uuid (6B29FC40-CA47-1067-B31D-00DD010662DA),
version(1.0),
pointer_default(unique)
]
interface autoh
{
void GetTime([out] long * time);
void Shutdown(void);
}
自動句柄的優點是開發人員不需要撰寫任何程式代碼來管理句柄;存根會自動管理系結。 這與 Hello, World 範例明顯不同,其中用戶端會管理 ACF 中定義的隱含基本句柄,而且必須呼叫數個運行時間函式來建立系結句柄。