Я попытался с этим кодом ниже, который не возвращает правильное количество детей.
long getHTMLCollectionChildCount (HWND hWnd, POINT point){
RECT rect;
SetRectEmpty(&rect);
CComPtr<IHTMLElement> elementFound;
//This method returns the element based on mouse point
findElement(hWnd, &point, &rect, &elementFound);
CComPtr<IDispatch> pDispatch;
CComPtr<IHTMLDOMNode> pNode;
HRESULT hr;
long lLen = 0L;
if(elementFound){
hr = elementFound->QueryInterface(IID_IHTMLDOMNode, (void**)&pNode);
if (SUCCEEDED(hr) && pNode){
hr = pNode->get_childNodes(&pDispatch);
if (SUCCEEDED(hr) && pDispatch){
CComPtr<IHTMLDOMChildrenCollection> pNodeCollection;
hr = pDispatch->QueryInterface(IID_IHTMLDOMChildrenCollection, (void **)&pNodeCollection);
if (SUCCEEDED(hr) && pNodeCollection){
pNodeCollection->get_length(&lLen);
}
}
}
}
return lLen;
Пожалуйста, не забудьте упомянуть, где это идет не так, или любой фрагмент кода, это будет здорово!
Задача ещё не решена.
Других решений пока нет …