自動系結控點

當應用程式不需要特定伺服器,且不需要維護用戶端與伺服器之間的任何狀態資訊時,自動系結控制碼會很有用。 當您使用自動系結控制碼時,您不需要撰寫任何用戶端應用程式程式碼來處理系結和控制碼—您只需在應用程式組態檔中指定自動系結控制碼的使用, (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 中定義的隱含基本控制碼,而且必須呼叫數個執行時間函式來建立系結控制碼。