if((bIncludeInvisible == TRUE) || ((bIncludeInvisible == FALSE) && (!(siCTemp->dwAttributes & SIC_INVISIBLE))))
if(((bIncludeInvisible == TRUE) || ((bIncludeInvisible == FALSE) && (!(siCTemp->dwAttributes & SIC_INVISIBLE)))) && ((dwACFlag == AC_ALL) || ((dwACFlag == AC_COMPONENTS)            && (!(siCTemp->dwAttributes & SIC_ADDITIONAL))) || ((dwACFlag == AC_ADDITIONAL_COMPONENTS) &&   (siCTemp->dwAttributes & SIC_ADDITIONAL))))
HRESULT SiCNodeGetAttributes(DWORD dwIndex, BOOL bIncludeInvisible){  DWORD dwCount = 0;  siC   *siCTemp = siComponents;  if(siCTemp != NULL)  {    if((bIncludeInvisible == TRUE) || ((bIncludeInvisible == FALSE) && (!(siCTemp->dwAttributes & SIC_INVISIBLE))))    {      if(dwIndex == 0)        return(siCTemp->dwAttributes);      ++dwCount;    }    siCTemp = siCTemp->Next;    while((siCTemp != NULL) && (siCTemp != siComponents))    {      if((bIncludeInvisible == TRUE) || ((bIncludeInvisible == FALSE) && (!(siCTemp->dwAttributes & SIC_INVISIBLE))))      {        if(dwIndex == dwCount)          return(siCTemp->dwAttributes);        ++dwCount;      }            siCTemp = siCTemp->Next;    }  }  return(-1);}