Valori restituiti dal metodo
Il valore restituito per i metodi di interfaccia C++ è sempre di tipo HRESULT; questo valore può essere controllato per determinare l'esito positivo o l'errore. L'uso dei parametri "output" consente di assegnare valori alle variabili durante la chiamata al metodo o alla chiamata di proprietà. Nell'esempio seguente viene illustrata una chiamata al metodo C++ per enumerare i provider.
UINT ucEnumProvIndex = 0;
BSTR bstrProvider = NULL;
HRESULT hr;
// pEnroll is previously instantiated CEnroll interface pointer
hr = pEnroll->enumProviders(ucEnumProvIndex, 0, &bstrProvider);
Nel frammento di codice precedente, l'esito positivo o l'errore vengono restituiti alla variabile "hr". Se la chiamata ha esito positivo, hr verrà impostato su S_OK e la variabile bstrProvider conterrà il nome del provider enumerato.
Una chiamata C++ per recuperare un valore della proprietà sarà il seguente.
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 chiamata C++ per impostare un valore di proprietà sarà il seguente.
// bstrNewName previously set to a valid store name
hr = pEnroll->put_CAStoreName( bstrNewName );