2012-03-19 5 views
2

HRESULTを指定してCOMExceptionを作成するにはどうすればよいですか?HRESULTからCOMExceptionを作成する

私はP/Invokeを持っています。これは、HRESULTを返すwin32メソッドです。
エラーを返す場合は、標準のエラーテキストでCOMExceptionをスローします。
どうすればよいですか?

  1. throw new COMException(null, hResult)

  2. COMException e = new COMException;
    e.HResult = hResult;
    throw e;

または私はいくつかの他の方法を使用する必要がありますか?

答えて

1

DllImportコールでPreserveSigフィールドを調べます。これにより、関数から返されたS_OKHRESULT以外の例外が生成されます。

+1

たとえば、 'S_FALSE'はスローされますか?それは奇妙なことですが、おそらく 'S_OK'と区別できないよりも優れています。 – svick

関連する問題