childCount=0;\r
}\r
for(long i=0;i<childCount;++i) {\r
- if(varChildren[i].vt==VT_DISPATCH) {\r
- IAccessible2* childPacc=NULL;\r
- varChildren[i].pdispVal->QueryInterface(IID_IAccessible2,(void**)&childPacc);\r
- if(childPacc) {\r
- if(tempNode=this->fillVBuf(childPacc,buffer,parentNode,previousNode,paccTable,paccTable2,tableID))\r
- previousNode=tempNode;\r
- else\r
- LOG_DEBUG(L"Error in calling fillVBuf");\r
- childPacc->Release();\r
- }\r
+ if (varChildren[i].vt != VT_DISPATCH) {\r
+ VariantClear(&(varChildren[i]));\r
+ continue;\r
+ }\r
+ IAccessible2* childPacc=NULL;\r
+ varChildren[i].pdispVal->QueryInterface(IID_IAccessible2,(void**)&childPacc);\r
+ if (!childPacc) {\r
+ VariantClear(&(varChildren[i]));\r
+ continue;\r
}\r
+ if(tempNode=this->fillVBuf(childPacc,buffer,parentNode,previousNode,paccTable,paccTable2,tableID))\r
+ previousNode=tempNode;\r
+ else\r
+ LOG_DEBUG(L"Error in calling fillVBuf");\r
+ childPacc->Release();\r
VariantClear(&(varChildren[i]));\r
}\r
free(varChildren);\r