COM では、ほとんどの操作は、関数が正常に完了したかどうかを示す HRESULT リターン コードを返します。 #import ディレクティブは、各 "raw" メソッドまたはプロパティのラッパー コードを生成し、返された HRESULT を確認します。 HRESULT がエラーを示す場合、ラッパー コードは HRESULT リターン コードを引数として _com_issue_errorex() を呼び出すことによって COM エラーをスローします。 COM エラー オブジェクトは、try-catch ブロックでキャッチできます。 (効率を高めるために、_com_error オブジェクトへの参照をキャッチします)。
これらは ADO エラーです。ADO 操作が失敗した結果です。 基になるプロバイダーによって返されるエラーは、Connection オブジェクトの Errors コレクション内の Error オブジェクトとして表示されます。
#import ディレクティブは、ADO .dllで宣言されたメソッドとプロパティのエラー処理ルーチンのみを作成します。 ただし、独自のエラー チェック マクロまたはインライン関数を記述することで、この同じエラー処理メカニズムを利用できます。 例については、Visual C++ 拡張機能のトピックを参照してください。