Valores de retorno do método
O valor de retorno para métodos de interface C++ é sempre do tipo HRESULT; Esse valor pode ser verificado para determinar o sucesso ou a falha. O uso de parâmetros de "saída" permite que valores sejam atribuídos a variáveis durante a chamada de método ou propriedade. O exemplo a seguir mostra uma chamada de método C++ para enumerar provedores.
UINT ucEnumProvIndex = 0;
BSTR bstrProvider = NULL;
HRESULT hr;
// pEnroll is previously instantiated CEnroll interface pointer
hr = pEnroll->enumProviders(ucEnumProvIndex, 0, &bstrProvider);
No fragmento de código anterior, o sucesso ou falha é retornado para a variável "hr". Se a chamada foi bem-sucedida, hr será definido como S_OK e a variável bstrProvider conterá o nome do provedor enumerado.
Uma chamada C++ para recuperar um valor de propriedade seria a seguinte.
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).
Uma chamada C++ para definir um valor de propriedade seria a seguinte.
// bstrNewName previously set to a valid store name
hr = pEnroll->put_CAStoreName( bstrNewName );