MFC アプリケーションで ATL を使用すると (好きだから理由は聞かないでください)、エラー コードE_FAILが表示されることがあります。ただし、特定の理由を特定することはほとんど役に立ちません。
私は何度もグーグルで検索しましたが、関連するものは何も見つかりませんでした。try{} catch{}
ATLのようなものがあるべきだと思いました。
サンプルコードは次のとおりです。
CAxWindow m_wndView; // ActiveX host window class.
CComPtr<IWMPPlayer> m_spWMPPlayer; // Smart pointer to IWMPPlayer interface.
AtlAxWinInit();
CComPtr<IAxWinHostWindow> spHost;
HRESULT hr;
CRect rcClient;
GetClientRect(&rcClient);
m_wndView.Create(m_hWnd, rcClient, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
//when I switch to Static Link to ATL from Dynamic Link to ATL, I always get E_FAIL
hr = m_wndView.QueryHost(&spHost);
誰でも私を助けることができますか?