coNtext_handle_serialize屬性
[coNtext_handle_serialize] ACF 屬性保證不論應用程式的預設行為為何,內容控制碼一律會序列化。
typedef [context_handle_serialize [ , type-acf-attribute-list ] ] context-handle-type;
[context_handle_serialize [, function-acf-attribute-list ] ] function-name( );
function-name(
[context_handle_serialize [ , parameter-acf-attribute-list ] ] param-name );
參數
-
type-acf-attribute-list
-
套用至型別的任何其他 ACF 屬性。
-
coNtext-handle-type
-
指定內容控制碼類型的識別碼,如 typedef 宣告中所定義。 這是在 IDL 檔案中接收 [coNtext_handle_serialize] 屬性的類型。
-
function-acf-attribute-list
-
套用至函式的任何其他 ACF 屬性。
-
function-name
-
IDL 檔案中所定義的函式名稱。
-
parameter-acf-attribute-list
-
套用至 參數的任何其他 ACF 屬性。
-
param-name
-
IDL 檔案中所定義的參數名稱。
備註
[coNtext_handle_serialize]屬性會識別系結控制碼,該控制碼會在遠端程序呼叫之間維護伺服器上的內容或狀態資訊。 屬性可以顯示為 IDL typedef 類型屬性、做為函式傳回型別屬性,或做為參數屬性。
根據預設,內容控制碼上的呼叫會序列化,但應用程式可以呼叫 RpcSsDontSerializeCoNtext 來覆寫此預設行為。 在 ACF 檔案中使用 [coNtext_handle_serialize] 屬性可確保呼叫此特定內容控制碼上的呼叫會序列化,即使呼叫應用程式已覆寫預設序列化也一樣。 內容取消常式是選擇性的。
這個屬性可在 MIDL 5.0 版中使用。
Windows Server 2003 和 Windows XP 或更新版本: 單一介面可以容納序列化和非序列化的內容控制碼,讓介面上的一個方法可以獨佔方式存取 (序列化) 的內容控制碼,而其他方法則會在共用模式中存取該內容控制碼, (非序列化) 。 這些存取功能相當於讀取/寫入鎖定機制;使用序列化內容控制碼的方法是 (寫入器) 的獨佔使用者,而使用非序列化內容控制碼的方法則是共用使用者 (讀取器) 。 必須序列化終結或修改內容控制碼狀態的方法。 未修改內容控制碼狀態的方法,例如只從內容控制碼讀取的方法,可以進行非序列化。 請注意,建立方法會隱含序列化。
範例
typedef [context_handle_serialize] PCONTEXT_HANDLE_TYPE;
HRESULT RemoteFunc([context_handle_serialize] pCxHandle);
另請參閱