インターフェイス ポインターを使用する COM コードが少しあります。コードの元の作成者は、次のようなインターフェイス ポインターを返す関数を実装しました。
HRESULT Query ( IN BSTR sQuery, OUT IEnumWbemClassObject* &pEnumerator ); // (1)
従来の代わりに
HRESULT Query ( IN BSTR sQuery, OUT IEnumWbemClassObject** ppEnumerator ); // (2)
関数 (1) は次のように呼び出されます。
hRes = Query ( sQuery, pEnumerator ); // (3)
これは間違いなく間違っているように見えますが、正常に動作します。out パラメーターが出力変数へのポインターではないため、またはこのアプローチに問題があるため、この行を取り上げているだけなのかどうかはわかりません。
出力パラメータにポインタからポインタへの代わりに参照からポインタを使用する利点はありますか?