Valores retornados do método
O valor retornado para métodos de interface C++ é sempre do tipo HRESULT; esse valor pode ser verificado para determinar o êxito ou a falha. O uso de parâmetros de "saída" permite que os valores sejam atribuídos a variáveis durante o método ou a chamada de 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, êxito ou falha é retornado à variável "hr". Se a chamada tiver sido bem-sucedida, o rh 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 );