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 );