DirectX 9のエラー文字列を取得したいのですが、WebでFormatMessage()と_com_error.ErrorMessage()を使用していることがわかりましたが、どちらも失敗します。
hr = g_pd3dDevice->GetRenderTargetData(...
... // the debugger tells me hr = 0x8876086c
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, hr, 0, (LPTSTR)&lpBuf, 0, NULL))
// it returns 0 with lpBuf unallocated
FormatMessage()が失敗し、GetLastError()で再度使用して、FormatMessage()が失敗する理由を確認します。「システムは%2のメッセージファイルでメッセージ番号0x%1のメッセージテキストを見つけることができません。」
_com_error.ErrorMessage()は、「不明なエラー0x8876086c」と表示します