Возвращаемые значения метода
Возвращаемое значение для методов интерфейса C++ всегда имеет тип HRESULT; Это значение можно проверить, чтобы определить успешность или неудачу. Использование "выходных" параметров позволяет назначать значения переменным во время вызова метода или свойства. В следующем примере показан вызов метода C++ для перечисления поставщиков.
UINT ucEnumProvIndex = 0;
BSTR bstrProvider = NULL;
HRESULT hr;
// pEnroll is previously instantiated CEnroll interface pointer
hr = pEnroll->enumProviders(ucEnumProvIndex, 0, &bstrProvider);
В предыдущем фрагменте кода в переменную "hr" возвращается успешное или неудачное завершение. Если вызов выполнен успешно, параметру hr будет присвоено значение S_OK а переменная bstrProvider будет содержать имя перечисленного поставщика.
Вызов C++ для получения значения свойства выглядит следующим образом.
BSTR bstrStoreName = NULL;
HRESULT hr;
// pEnroll is previously instantiated CEnroll interface pointer
// get the storename
hr = pEnroll->get_CAStoreName( &bstrStoreName );
// (When done using bstrStoreName, free it by calling SysFreeString).
Вызов C++ для задания значения свойства выглядит следующим образом.
// bstrNewName previously set to a valid store name
hr = pEnroll->put_CAStoreName( bstrNewName );