pipe 屬性
管道類型建構函式可讓您跨遠端程序呼叫傳輸具型別資料的開放式資料流程。
typedef pipe element-type pipe-declarator;
-
element-type
-
定義傳輸緩衝區中單一元素的大小。 專案類型可以是基底類型、predefined_type、結構、32b 列舉或類型識別碼。 數個限制適用于 element_types,如下所述。
-
pipe-declarator
-
指定識別碼的一或多個識別符或指標。 以逗號分隔多個宣告子。
您可以使用 管道 類型建構函式,以雙向傳輸資料。 [in]管道參數可讓伺服器在遠端程序呼叫期間從用戶端提取資料流程。 [out]管道參數可讓伺服器將資料流程推送回用戶端。 您提供用戶端常式來推送和提取資料流程,以及為數據配置全域緩衝區。 用戶端和伺服器存根常式會封送處理和取消封送處理和取消封送資料,並將緩衝區的參考傳回應用程式。
下列限制適用于管道:
- 管道專案不能是或包含指標、一致或不同的陣列、控制碼或內容控制碼。 此外,在 Microsoft 實作管道中,管道專案不能是或包含 等位、 16b 列舉或 __int3264。
- 您無法將 [transmit_as]、 [represent_as]、 [wire_marshal]或 [user_marshal] 屬性套用至管道類型或 元素類型。
- 管道類型不能是結構或等位的成員、指標的目標,或陣列的基底類型。
- 宣告為管道類型的資料類型只能當做遠端呼叫的參數使用。
- 您可以依值或參考 ([ref] 指標) ,以雙向傳遞管道參數。 不過,您無法將 [ptr] 屬性套用至以傳址方式傳遞的管道。 不論方向為何,您無法指定具有 [unique] 或完整指標的管道參數。
- 您無法在 [object] 介面中使用管道。
- 您無法將 [等冪] 屬性套用至具有管道參數的常式。
- 您無法搭配管道使用序列化屬性[encode]和[解碼]。
- 根據預設,您無法使用自動控點,或是使用管線的 [auto_handle] 屬性。
注意
MIDL 編譯器僅支援 /Oif 模式中的管道。
如需使用管道參數實作常式的詳細資訊,請參閱 RPC 程式設計人員指南和參考中的 管道 。
typedef pipe unsigned char UCHAR_PIPE1, UCHAR_PIPE2;
//SIMPLE_STRUCT defined elsewhere
typedef pipe SIMPLE_STRUCT SIMPLE_STRUCT_PIPE;