iferença entre ponteiro para ponteiro e referência para ponteiro (C +

Eu tenho um pouco de código COM que usa ponteiros de interface. O autor original do código implementou funções que retornam um ponteiro de interface como este:

HRESULT Query ( IN BSTR sQuery, OUT IEnumWbemClassObject* &pEnumerator ); // (1)

em vez do tradicional

HRESULT Query ( IN BSTR sQuery, OUT IEnumWbemClassObject** ppEnumerator ); // (2)

A função (1) é chamada assim:

hRes = Query ( sQuery, pEnumerator ); // (3)

which definitivamenteparec errado, mas funciona bem. Não tenho certeza se estou apenas escolhendo essa linha porque o parâmetro out não é um ponteiro para a variável de saída ou porque há algo errado com essa abordage

Existe uma vantagem em usar uma referência para ponteiro em vez de um ponteiro para ponteiro para parâmetros de saíd

questionAnswers(4)

yourAnswerToTheQuestion