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 とその typelib をリソースとして持っています。私に何ができる?

4

0 に答える 0