DWORD dwResourceID; // resource ID
WCHAR szKeyName[64]; // entry key name
DWORD dwType; // ADVANCED_ENTRY_TYPE
- DWORD dwOrdinal; // ordinal number
WCHAR szText[MAX_PATH]; // text
INT nIconID; // icon ID (See ADVANCED_ICON)
{
ADVANCED_ENTRY *pParent = Advanced_GetItem(pEntry->dwParentID);
HTREEITEM hParent = TVI_ROOT;
- if (pParent != NULL)
+ if (pParent)
hParent = pParent->hItem;
TV_INSERTSTRUCT Insertion;
pEntry->nIconID = Advanced_AddIcon(szExpanded, nIconIndex);
}
- // Ordinal (ReactOS extension)
- Size = sizeof(Value);
- Value = DWORD(-1);
- RegQueryValueExW(hKey, L"Ordinal", NULL, NULL, LPBYTE(&Value), &Size);
- pEntry->dwOrdinal = Value;
-
if (pEntry->dwType == AETYPE_GROUP)
{
pEntry->hkeyRoot = NULL;
{
ADVANCED_ENTRY *pEntry1 = (ADVANCED_ENTRY *)x;
ADVANCED_ENTRY *pEntry2 = (ADVANCED_ENTRY *)y;
- if (pEntry1->dwOrdinal < pEntry2->dwOrdinal)
- return -1;
- if (pEntry1->dwOrdinal > pEntry2->dwOrdinal)
- return 1;
- return 0;
+ DWORD dwParentID1 = pEntry1->dwParentID;
+ DWORD dwParentID2 = pEntry2->dwParentID;
+ while (dwParentID1 != dwParentID2)
+ {
+ ADVANCED_ENTRY *pParent1 = Advanced_GetItem(dwParentID1);
+ ADVANCED_ENTRY *pParent2 = Advanced_GetItem(dwParentID2);
+ if (!pParent1 && !pParent2)
+ break;
+ if (!pParent1 && pParent2)
+ return -1;
+ if (pParent1 && !pParent2)
+ return 1;
+ INT nCompare = lstrcmpi(pParent1->szText, pParent2->szText);
+ if (nCompare)
+ return nCompare;
+ dwParentID1 = pParent1->dwParentID;
+ dwParentID2 = pParent2->dwParentID;
+ }
+ return lstrcmpi(pEntry1->szText, pEntry2->szText);
}
static VOID