Valores devueltos del método
El valor devuelto para los métodos de interfaz de C++ siempre es de tipo HRESULT; este valor se puede comprobar para determinar si se ha realizado correctamente o no. El uso de parámetros "output" permite asignar valores a variables durante la llamada de método o propiedad. En el ejemplo siguiente se muestra una llamada de método de C++ para enumerar proveedores.
UINT ucEnumProvIndex = 0;
BSTR bstrProvider = NULL;
HRESULT hr;
// pEnroll is previously instantiated CEnroll interface pointer
hr = pEnroll->enumProviders(ucEnumProvIndex, 0, &bstrProvider);
En el fragmento de código anterior, se devuelve correcto o error a la variable "hr". Si la llamada se realizó correctamente, hr se establecerá en S_OK y la variable bstrProvider contendrá el nombre del proveedor enumerado.
Una llamada de C++ para recuperar un valor de propiedad sería la siguiente.
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).
Una llamada de C++ para establecer un valor de propiedad sería el siguiente.
// bstrNewName previously set to a valid store name
hr = pEnroll->put_CAStoreName( bstrNewName );