У меня есть немного кода 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 не является указателем на выходную переменную или потому, что с этим подходом что-то не так.
Есть ли преимущество в использованииto-pointer вместо указателя на указатель для параметров out?