多個指標層級
當有多個指標層級時,屬性會與最接近變數名稱的指標相關聯。 用戶端仍負責配置與回應相關聯的任何記憶體。
下列範例允許存根呼叫伺服器,而不需要事先知道會傳回多少數據:
[
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 物件陣列。
相關主題