共用方式為


多個指標層級

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

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

[
    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] 指標傳遞至 [唯一] 指標至您的數據。 另請注意 [size_is( , *pSize )] 中的逗號,指出最上層指標不是大小指標,而是較低層級的指標。

在用戶端上,存根會在呼叫遠端程式之前,將 *ppBar 設定為 NULL。 存根接著會配置並取消分配 BAR 物件的 Arry。 size 自變數會指出區塊的大小(以及未分批的 BAR 數目)。 用戶端在不再需要時,必須釋放傳回的 BAR 物件陣列。

size_is