1. В чем преимущество использования указателя на указатель в этом случае?
Поскольку эта функция, вероятно, предназначена для изменения указателя, вы можете передать его, указав его адрес.
Когда этот метод возвращает, содержит адрес указателя на новый bru sh. Этот параметр передается неинициализированным.
Возможно, он был объявлен как ссылка на указатель, но для пользователя более понятно, что он должен дать адрес указателя, который будет изменен, так как это приведет к его исполнению семанти c.
2. Почему они не разработали функцию, которая только что вернула ID2D1SolidColorBrush*
?
Поскольку функция уже возвращает что-то, имеющее статус.
Если этот метод завершается успешно, он возвращает S_OK
. В противном случае возвращается код ошибки HRESULT
.
Разделение состояния и вычисленного значения является хорошей практикой.