參考指標

參考指標是最簡單的指標,而且用戶端存根需要最少的處理量。 當用戶端程式將參考指標傳遞至遠端程式時,參考指標一律會包含有效記憶體區塊的位址。 當遠端程式完成時,它仍然指向相同的記憶體區塊。 這些指標主要用於實作參考語意,以及允許 C 中的 [out] 參數。

在下列範例中,指標的值不會在呼叫期間變更,不過指標所指示之位址的資料內容可能會變更。

靜態參考指標位址的資料變更

參考指標具有下列特性:

  • 它一律指向有效的儲存體,且永遠不會有 Null值。
  • 它永遠不會在呼叫期間變更,而且一律會指向呼叫前後的相同儲存體。
  • 從遠端程式傳回的資料會寫入現有的儲存體。
  • 參考指標所指向的儲存體無法由函式中的任何其他指標或任何其他名稱存取。

使用 [ref] 屬性在介面定義中指定參考指標,如下列範例所示。

/* IDL file */
[ 
  uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
  version(1.0)
]
interface RefPtrInterface
{
  void RemoteFn([in, out, ref] char *pChar);
}

這個範例會將 pChar 參數定義為單一字元的指標,而不是字元陣列。 它是 [out] 參數和參考指標,指向伺服器常式 RemoteFn 將填入資料的記憶體。