1

10 進数: 143196173
16 進数: 0x889000D

IAudioSessionControl2->GetProcessId()への呼び出しの結果です。

GetLastError = 126*
Message = "指定されたモジュールが見つかりませんでした"

このエラーの解釈方法がよくわかりません。さらに、HRESULT の説明がどこにも見つかりません。記載されている戻りコードは、S_OK、E_POINTER、AUDCLNT_E_NO_SINGLE_PROCESS、および AUDCLNT_E_DEVICE_INVALIDATED です。

このコードが何を示しているか知っている人はいますか?

*これは、メッセージを提供する Win32Exception を使用して Marshal.GetLastError によって取得された、マネージド/アンマネージド境界を越えてマーシャリングされたエラーです。それは偽物かもしれませんが、それは私が持っているものです. HRESULT は、アンマネージ コードから直接引き出されます。


さらに調査すると、FAILED()はこれがエラーであるとは考えていないようです。ただし、out パラメータはクリア (0 に設定) されますが、これはあまり意味がありません。また、GetErrorInfo は S_FALSE を返します。そのため、追加のデバッグ情報はありません。

4

2 に答える 2

4

これは AUDCLNT_S_NO_CURRENT_PROCESS です - Windows 7 SDK ヘッダーが遅すぎることに気付きました。

SDK ドキュメントは、これを反映するように更新される予定です。

結果は、セッションがクロスプロセス セッションであることを意味します。返されるプロセス ID は、セッションを作成した最初のプロセスのプロセス ID ですが、この結果が得られた場合、プロセス ID は一意ではないため、プロセス ID に依存することはできません。

于 2009-07-25T18:35:09.383 に答える
-1

COMメソッドは、失敗時にIErrorInfoを設定できます。取得してみてください。追加情報が含まれている可能性があります。アンマネージコードでは、そのためにGetErrorInfo()を使用します。

于 2009-07-22T08:47:46.777 に答える