1

我有一个带有嵌入式 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 及其类型库作为资源。我能做些什么?

4

0 回答 0