多個指標層級

當有多個層級的指標時,屬性會與最接近變數名稱的指標相關聯。 用戶端仍負責配置與回應相關聯的任何記憶體。

下列範例允許存根呼叫伺服器,而不需要事先知道會傳回多少資料:

[
    uuid( ...),
    version(3.3),
]
interface AnInterface
{
    HRESULT GetBars([out] long * pSize,
             [out, size_is( , *pSize)]
             BAR ** ppBar);//BAR type defined elsewhere
}

在此範例中,存根會將伺服器傳遞唯一指標,伺服器會初始化為 Null。 然後,伺服器會配置 BAR 區塊、設定指標、設定 size 引數並傳回 。 請注意,為了讓伺服器對呼叫端產生作用,您必須將 [ref] 指標傳遞給資料的 [unique] 指標。 另請注意 [size_is ( 、 *pSize ) ] 中的逗號,這表示最上層指標不是調整大小的指標,但較低層級的指標是 。

在用戶端上,存根會在呼叫遠端程式之前,將 *ppBar 設定為 Null 。 接著,存根會配置並取消封存 BAR 物件的 Arry。 size 引數表示區塊的大小 (和未分割的 BAR 數目) 。 當不再需要時,用戶端必須釋放傳回的 BAR 物件陣列。

size_is