DWORD dwCount  = 0; siC   *siCTemp = siComponents;
DWORD dwCount        = 0; DWORD dwVisibleIndex = 0; siC   *siCTemp       = siComponents;  LPSTR szTmpString; TCHAR tchBuffer[MAX_BUF];
void SiCNodeSetAttributes(DWORD dwIndex, DWORD dwAttributes, BOOL bSet, BOOL bIncludeInvisible, DWORD dwACFlag){  DWORD dwCount  = 0;  siC   *siCTemp = siComponents;  if(siCTemp != NULL)  {    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))))    {      if(dwIndex == 0)      {        if(bSet)          siCTemp->dwAttributes |= dwAttributes;        else          siCTemp->dwAttributes &= ~dwAttributes;      }      ++dwCount;    }    siCTemp = siCTemp->Next;    while((siCTemp != NULL) && (siCTemp != siComponents))    {      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))))      {        if(dwIndex == dwCount)        {          if(bSet)            siCTemp->dwAttributes |= dwAttributes;          else            siCTemp->dwAttributes &= ~dwAttributes;        }        ++dwCount;      }      siCTemp = siCTemp->Next;    }  }}