我用ALT做了一个ActiveX,加到WEB中了,打开网页时ActiveX可以被正常加载,但一点按钮调用ActiveX里的方法时就出"加载时出错"的错误.点详细按钮会调出"加载项管理|的窗口.我写的ActiveX控件在最上边,状态为有效.这个ActiveX在Helow World级别的时候运行正常,但我添加了"#import "shdocvw.dll""并写了些复杂的语句后就出错了.我怀疑是不是我用VC6的ReleaseMinSize生成的DLL里没把shdocvw.dll包进来啊?
我刚学VC有很多东西不很清晰,希望我把我的问题描写清楚了.
我刚学VC有很多东西不很清晰,希望我把我的问题描写清楚了.
CComPtr<IDispatch> spDispatch;
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2; // TODO: Add your implementation code here
SHDocVw::IShellWindowsPtr m_spSHWinds;
m_spSHWinds.CreateInstance (__uuidof(SHDocVw::ShellWindows));
long nCount = m_spSHWinds->GetCount(); for (int i = 0; i < nCount; i++){
IDispatchPtr spDisp;
_variant_t va = (long) i;
spDisp = m_spSHWinds->Item(va); SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
if (spBrowser) {
if (SUCCEEDED(spBrowser->get_Document( &spDispatch))) {
pDoc2 = spDispatch;
CComBSTR bstrTitle;
pDoc2->get_title(&bstrTitle);
}
} }
if( NULL != pDoc2 )
{
CComBSTR bstrTitle;
pDoc2->get_title(&bstrTitle);
}if(FAILED(spBrowser->get_Document(&spDispatch)))return 0;
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
if(FAILED(spDispatch->QueryInterface(IID_IHTMLDocument2,(void **)&pDoc2)))return 0;
if(FAILED(spDispatch->QueryInterface(IID_IHTMLDocument2,(void **)&pDoc2)))return 0;
这句返回0,怎么才能转换成功呢?希望能再给点意见,谢谢!!!
pDoc2是NULL啊!
既然if (SUCCEEDED(spBrowser->get_Document( &spDispatch))) 通过了就应该说明&spDispatch取到值了,那么pDoc2 = spDispatch;为什么不能给pDoc2赋值呢?