我有一个带有嵌入式 ActiveX 对象的 HTML 页面。此对象被引用为 OBJECT 标记。
activeX 在类似列表视图的控件中处理一些数据。我需要获取该列表视图控件中的数据。我使用以下代码:
int msg;
DWORD lRes = NULL ;
IHTMLDocument2 *pDoc= NULL;
IHTMLElementCollection *pElement = NULL;
IDispatch *ppvDisp;
VARIANT ObjName;
_variant_t index = NULL;
HRESULT hr;
LRESULT lr;
UINT *cntTypeInf ;
OleInitialize(NULL);
msg = RegisterWindowMessage(L"WM_HTML_GETOBJECT");
lr = SendMessageTimeout(hwnd, msg, 0, 0, SMTO_ABORTIFHUNG, 1000, &lRes);
hr = ObjectFromLresult((LRESULT)lRes, IID_IHTMLDocument2, 0, (void**)&pDoc);
hr = pDoc->get_all( &pElement );
BSTR BStrObjName = _com_util::ConvertStringToBSTR((const char *)"S_DetectCom");
ObjName.vt = VT_BSTR ;
ObjName.bstrVal = BStrObjName ;
hr = pElement->item( ObjName , index , &ppvDisp );
hr = ppvDisp->GetTypeInfoCount(cntTypeInf);
ppvDisp 是对象的 IDispatch。
我将 dll 及其类型库作为资源。我能做些什么?