📄 listsort.cpp
字号:
#include "GSFinder.h"
///////////////////////////////////////////////////////////////
int CALLBACK ListSortCompareFuncByName(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
LISTITEMCOMP* pList1 = (LISTITEMCOMP*)lParam1;
LISTITEMCOMP* pList2 = (LISTITEMCOMP*)lParam2;
BOOL bRaise = (BOOL)lParamSort;
if (pList1->nItem < pList2->nItem)
return -1;
else if (pList1->nItem == pList2->nItem)
{
//MOD START TODA 暥帤楍斾妑偺崅懍壔 (from Y.Nagamidori)
/*TCHAR szName1[MAX_PATH];
TCHAR szName2[MAX_PATH];
wcscpy(szName1, pList1->lpszName);
wcsupr(szName1);
wcscpy(szName2, pList2->lpszName);
wcsupr(szName2);
return bRaise ? wcscmp(szName1, szName2):wcscmp(szName2, szName1);*/
return bRaise ? wcsicmp(pList1->lpszName, pList2->lpszName) : wcscmp(pList2->lpszName, pList1->lpszName);
//MOD END
}
else if (pList1->nItem > pList2->nItem)
return 1;
return 0;
}
///////////////////////////////////////////////////////////////
int CALLBACK ListSortCompareFuncByExt(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
LISTITEMCOMP* pList1 = (LISTITEMCOMP*)lParam1;
LISTITEMCOMP* pList2 = (LISTITEMCOMP*)lParam2;
BOOL bRaise = (BOOL)lParamSort;
//MOD START TODA 暥帤楍斾妑偺崅懍壔 (from Y.Nagamidori)
if (pList1->nItem < pList2->nItem)
return -1;
else if (pList1->nItem == pList2->nItem)
{
/*TCHAR szName1[MAX_PATH];
TCHAR szName2[MAX_PATH];
wcscpy(szName1, pList1->lpszName);
wcsupr(szName1);
wcscpy(szName2, pList2->lpszName);
wcsupr(szName2);
if (pList1->nItem == LIST_ITEM_FILE)
{
LPCTSTR lpszExt1 = wcschr(szName1,_T('.'));
LPCTSTR lpszExt2 = wcschr(szName2,_T('.'));
if (lpszExt1 && lpszExt2)
{
if (bRaise)
{
int nRet = wcscmp(lpszExt1, lpszExt2);
return nRet?nRet:wcscmp(szName1, szName2);
}
else
{
int nRet = wcscmp(lpszExt2, lpszExt1);
return nRet?nRet:wcscmp(szName2, szName1);
}
}
else if (lpszExt1==NULL)
return bRaise?-1:1;
else
return bRaise?1:-1;
}
else
return wcscmp(szName1, szName2);*/
if (pList1->nItem == LIST_ITEM_FILE)
{
LPCTSTR lpszExt1 = wcsrchr(pList1->lpszName,_T('.')); //MOD TODA
LPCTSTR lpszExt2 = wcsrchr(pList2->lpszName,_T('.')); //MOD TODA
if (lpszExt1 && lpszExt2)
{
if (bRaise)
{
int nRet = wcsicmp(lpszExt1, lpszExt2);
return nRet ? nRet : wcsicmp(pList1->lpszName, pList2->lpszName);
}
else
{
int nRet = wcsicmp(lpszExt2, lpszExt1);
return nRet ? nRet : wcsicmp(pList2->lpszName, pList1->lpszName);
}
}
else if (lpszExt1 == NULL)
return bRaise ? -1 : 1;
else
return bRaise ? 1 : -1;
}
else
return wcsicmp(pList1->lpszName, pList2->lpszName);
}
else if (pList1->nItem > pList2->nItem)
return 1;
//MOD END
return 0;
}
///////////////////////////////////////////////////////////////
int CALLBACK ListSortCompareFuncBySize(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
LISTITEMCOMP* pList1 = (LISTITEMCOMP*)lParam1;
LISTITEMCOMP* pList2 = (LISTITEMCOMP*)lParam2;
BOOL bRaise = (BOOL)lParamSort;
//MOD START TODA 暥帤楍斾妑偺崅懍壔 (from Y.Nagamidori)
if (pList1->nItem < pList2->nItem)
return -1;
else if (pList1->nItem == pList2->nItem)
{
/*TCHAR szName1[MAX_PATH];
TCHAR szName2[MAX_PATH];
wcscpy(szName1, pList1->lpszName);
wcsupr(szName1);
wcscpy(szName2, pList2->lpszName);
wcsupr(szName2);
if (pList1->nItem == LIST_ITEM_FILE)
{
if (bRaise)
{
if (pList1->dwSize < pList2->dwSize)
return -1;
else if (pList1->dwSize == pList2->dwSize)
return 0;
else if (pList1->dwSize > pList2->dwSize)
return 1;
}
else
{
if (pList1->dwSize < pList2->dwSize)
return 1;
else if (pList1->dwSize == pList2->dwSize)
return 0;
else if (pList1->dwSize > pList2->dwSize)
return -1;
}
}
else
return wcscmp(szName1, szName2);*/
if (pList1->nItem == LIST_ITEM_FILE)
{
if (bRaise)
{
if (pList1->dwSize < pList2->dwSize)
return -1;
else if (pList1->dwSize == pList2->dwSize)
return 0;
else if (pList1->dwSize > pList2->dwSize)
return 1;
}
else
{
if (pList1->dwSize < pList2->dwSize)
return 1;
else if (pList1->dwSize == pList2->dwSize)
return 0;
else if (pList1->dwSize > pList2->dwSize)
return -1;
}
}
else
return wcsicmp(pList1->lpszName, pList2->lpszName);
}
else if (pList1->nItem > pList2->nItem)
return 1;
//MOD END
return 0;
}
///////////////////////////////////////////////////////////////
int CALLBACK ListSortCompareFuncByTime(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
//MOD START TODA 暥帤楍斾妑偺崅懍壔 (from Y.Nagamidori)
LISTITEMCOMP* pList1 = (LISTITEMCOMP*)lParam1;
LISTITEMCOMP* pList2 = (LISTITEMCOMP*)lParam2;
BOOL bRaise = (BOOL)lParamSort;
if (pList1->nItem < pList2->nItem)
return -1;
else if (pList1->nItem == pList2->nItem)
return bRaise ? CompareFileTime(&pList1->ft, &pList2->ft) : CompareFileTime(&pList2->ft, &pList1->ft);
else if (pList1->nItem > pList2->nItem)
return 1;
//MOD END
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -