COMベースの Windows エクスプローラ シェル拡張機能では、COM インターフェイス メソッドから返される戻り値を使用してエラー状態が表現されますHRESULT。
しかし、COM インターフェイス メソッドの本体内 (または、COM メソッドで直接的または間接的に呼び出される C++ オブジェクトのメソッド内) で C++ 例外 (例: std::runtime_error、std::bad_alloc、std::invalid_argumentなど) がスローされた場合、正確には何が起こるのでしょうか?
これは未定義の動作ですか?
それとも、C++ 例外が何らかの方法でWin32 構造化例外 (SEH)に変換されているのでしょうか?
もしそうなら、変換プロセスのメカニズムは何ですか?