Основной вопрос здесь заключается в том, для чего вы используете HRESULT
для?
Вы можете явно присвоить любое значение HRESULT
, но тогда почему бы просто не использовать int
?
HRESULT
s используются как способ сообщить об успешном или неудачном вызове функции. Обычно HRESULT
это либо S_OK
(0), либо ошибка (отрицательные числа). S_FALSE
(-1) используется реже.
При использовании с COM или. NET вызывающая сторона обычно только проверяет, успешно ли выполнена функция. По умолчанию при маршалинге функции, которая возвращает маршаллер HRESULT
. NET, функция будет превращена в void
, вызывая исключение, если результат отрицательный, и отбрасывая результат, если он неотрицательный.
Если это так для вашего кода, то нет смысла указывать конкретное c положительное значение. Если вы не используете это для совместимости, вам, вероятно, вообще не следует использовать HRESULT
.