Sample code for checking failover

The following code snippet shows how to code for a failover:

/* Declare required variables */
...
/* Open Database connection */
...
/* Perform a transaction */
...
/*Check HRESULT  and dwMinor in ERRORINFO, handle failover */
if (FAILED(hr))
{
   IErrorInfo* pIErrorInfo;
   GetErrorInfo(0, &pIErrorInfo);
   IErrorRecords * pIErrorRecords;
   HRESULT hr1 = pIErrorInfo->QueryInterface(IID_IErrorRecords,
      (void **)&pIErrorRecords);
   if (SUCCEEDED(hr1))
   {
      ERRORINFO errorInfo;
      pIErrorRecords->GetBasicErrorInfo(0, &errorInfo);
      pIErrorRecords->Release();
      if (errorInfo.dwMinor == 30130)
      {
         //successful failover,
         //retry the transaction
      }
   }
}