当我在 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);
任何人都可以帮助我吗?