/* Also see NBookmarkHelper::Sort. */
int CALLBACK CShellBrowser::Sort(int InternalIndex1,int InternalIndex2) const
{
	int ComparisonResult = 0;

	bool IsFolder1 = ((m_pwfdFiles[InternalIndex1].dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY) ? true : false;
	bool IsFolder2 = ((m_pwfdFiles[InternalIndex2].dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY) ? true : false;
	
	/* Folders will always be sorted separately from files,
	except in the recycle bin. */
	if(IsFolder1 && !IsFolder2 && !CompareVirtualFolders(CSIDL_BITBUCKET))
	{
		ComparisonResult = -1;
	}
	else if(!IsFolder1 && IsFolder2 && !CompareVirtualFolders(CSIDL_BITBUCKET))
	{
		ComparisonResult = 1;
	}
	else
	{
		switch(m_SortMode)
		{
		case FSM_NAME:
			ComparisonResult = SortByName(InternalIndex1,InternalIndex2);
			break;

		case FSM_TYPE:
			ComparisonResult = SortByType(InternalIndex1,InternalIndex2);
			break;

		case FSM_SIZE:
			ComparisonResult = SortBySize(InternalIndex1,InternalIndex2);
			break;

		case FSM_DATEMODIFIED:
			ComparisonResult = SortByDate(InternalIndex1,InternalIndex2,DATE_TYPE_MODIFIED);
			break;

		case FSM_TOTALSIZE:
			ComparisonResult = SortByTotalSize(InternalIndex1,InternalIndex2,TRUE);
			break;

		case FSM_FREESPACE:
			ComparisonResult = SortByTotalSize(InternalIndex1,InternalIndex2,FALSE);
			break;

		case FSM_DATEDELETED:
			ComparisonResult = SortByDateDeleted(InternalIndex1,InternalIndex2);
			break;

		case FSM_ORIGINALLOCATION:
			ComparisonResult = SortByOriginalLocation(InternalIndex1,InternalIndex2);
			break;

		case FSM_ATTRIBUTES:
			ComparisonResult = SortByAttributes(InternalIndex1,InternalIndex2);
			break;

		case FSM_REALSIZE:
			ComparisonResult = SortByRealSize(InternalIndex1,InternalIndex2);
			break;

		case FSM_SHORTNAME:
			ComparisonResult = SortByShortName(InternalIndex1,InternalIndex2);
			break;

		case FSM_OWNER:
			ComparisonResult = SortByOwner(InternalIndex1,InternalIndex2);
			break;

		case FSM_PRODUCTNAME:
			ComparisonResult = SortByVersionInfo(InternalIndex1,InternalIndex2,VERSION_INFO_PRODUCT_NAME);
			break;

		case FSM_COMPANY:
			ComparisonResult = SortByVersionInfo(InternalIndex1,InternalIndex2,VERSION_INFO_COMPANY);
			break;

		case FSM_DESCRIPTION:
			ComparisonResult = SortByVersionInfo(InternalIndex1,InternalIndex2,VERSION_INFO_DESCRIPTION);
			break;

		case FSM_FILEVERSION:
			ComparisonResult = SortByVersionInfo(InternalIndex1,InternalIndex2,VERSION_INFO_FILE_VERSION);
			break;

		case FSM_PRODUCTVERSION:
			ComparisonResult = SortByVersionInfo(InternalIndex1,InternalIndex2,VERSION_INFO_PRODUCT_VERSION);
			break;

		case FSM_SHORTCUTTO:
			ComparisonResult = SortByShortcutTo(InternalIndex1,InternalIndex2);
			break;

		case FSM_HARDLINKS:
			ComparisonResult = SortByHardlinks(InternalIndex1,InternalIndex2);
			break;

		case FSM_EXTENSION:
			ComparisonResult = SortByExtension(InternalIndex1,InternalIndex2);
			break;

		case FSM_CREATED:
			ComparisonResult = SortByDate(InternalIndex1,InternalIndex2,DATE_TYPE_CREATED);
			break;

		case FSM_ACCESSED:
			ComparisonResult = SortByDate(InternalIndex1,InternalIndex2,DATE_TYPE_ACCESSED);
			break;

		case FSM_TITLE:
			ComparisonResult = SortBySummaryProperty(InternalIndex1,InternalIndex2,PROPERTY_ID_TITLE);
			break;

		case FSM_SUBJECT:
			ComparisonResult = SortBySummaryProperty(InternalIndex1,InternalIndex2,PROPERTY_ID_SUBJECT);
			break;

		case FSM_AUTHOR:
			ComparisonResult = SortBySummaryProperty(InternalIndex1,InternalIndex2,PROPERTY_ID_AUTHOR);
			break;

		case FSM_KEYWORDS:
			ComparisonResult = SortBySummaryProperty(InternalIndex1,InternalIndex2,PROPERTY_ID_KEYWORDS);
			break;

		case FSM_COMMENTS:
			ComparisonResult = SortBySummaryProperty(InternalIndex1,InternalIndex2,PROPERTY_ID_COMMENT);
			break;

		case FSM_CAMERAMODEL:
			ComparisonResult = SortByImageProperty(InternalIndex1,InternalIndex2,PropertyTagEquipModel);
			break;

		case FSM_DATETAKEN:
			ComparisonResult = SortByImageProperty(InternalIndex1,InternalIndex2,PropertyTagDateTime);
			break;

		case FSM_WIDTH:
			ComparisonResult = SortByImageProperty(InternalIndex1,InternalIndex2,PropertyTagImageWidth);
			break;

		case FSM_HEIGHT:
			ComparisonResult = SortByImageProperty(InternalIndex1,InternalIndex2,PropertyTagImageHeight);
			break;

		case FSM_VIRTUALCOMMENTS:
			ComparisonResult = SortByVirtualComments(InternalIndex1,InternalIndex2);
			break;

		case FSM_FILESYSTEM:
			ComparisonResult = SortByFileSystem(InternalIndex1,InternalIndex2);
			break;

		case FSM_NUMPRINTERDOCUMENTS:
			ComparisonResult = SortByPrinterProperty(InternalIndex1,InternalIndex2,PRINTER_INFORMATION_TYPE_NUM_JOBS);
			break;

		case FSM_PRINTERSTATUS:
			ComparisonResult = SortByPrinterProperty(InternalIndex1,InternalIndex2,PRINTER_INFORMATION_TYPE_STATUS);
			break;

		case FSM_PRINTERCOMMENTS:
			ComparisonResult = SortByPrinterProperty(InternalIndex1,InternalIndex2,PRINTER_INFORMATION_TYPE_COMMENTS);
			break;

		case FSM_PRINTERLOCATION:
			ComparisonResult = SortByPrinterProperty(InternalIndex1,InternalIndex2,PRINTER_INFORMATION_TYPE_LOCATION);
			break;

		case FSM_NETWORKADAPTER_STATUS:
			ComparisonResult = SortByNetworkAdapterStatus(InternalIndex1,InternalIndex2);
			break;

		case FSM_MEDIA_BITRATE:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_BITRATE);
			break;

		case FSM_MEDIA_COPYRIGHT:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_COPYRIGHT);
			break;

		case FSM_MEDIA_DURATION:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_DURATION);
			break;

		case FSM_MEDIA_PROTECTED:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_PROTECTED);
			break;

		case FSM_MEDIA_RATING:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_RATING);
			break;

		case FSM_MEDIA_ALBUMARTIST:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_ALBUM_ARTIST);
			break;

		case FSM_MEDIA_ALBUM:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_ALBUM_TITLE);
			break;

		case FSM_MEDIA_BEATSPERMINUTE:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_BEATS_PER_MINUTE);
			break;

		case FSM_MEDIA_COMPOSER:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_COMPOSER);
			break;

		case FSM_MEDIA_CONDUCTOR:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_CONDUCTOR);
			break;

		case FSM_MEDIA_DIRECTOR:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_DIRECTOR);
			break;

		case FSM_MEDIA_GENRE:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_GENRE);
			break;

		case FSM_MEDIA_LANGUAGE:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_LANGUAGE);
			break;

		case FSM_MEDIA_BROADCASTDATE:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_BROADCASTDATE);
			break;

		case FSM_MEDIA_CHANNEL:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_CHANNEL);
			break;

		case FSM_MEDIA_STATIONNAME:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_STATIONNAME);
			break;

		case FSM_MEDIA_MOOD:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_MOOD);
			break;

		case FSM_MEDIA_PARENTALRATING:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_PARENTALRATING);
			break;

		case FSM_MEDIA_PARENTALRATINGREASON:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_PARENTALRATINGREASON);
			break;

		case FSM_MEDIA_PERIOD:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_PERIOD);
			break;

		case FSM_MEDIA_PRODUCER:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_PRODUCER);
			break;

		case FSM_MEDIA_PUBLISHER:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_PUBLISHER);
			break;

		case FSM_MEDIA_WRITER:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_WRITER);
			break;

		case FSM_MEDIA_YEAR:
			ComparisonResult = SortByMediaMetadata(InternalIndex1,InternalIndex2,MEDIAMETADATA_TYPE_YEAR);
			break;

		default:
			assert(false);
			break;
		}
	}

	if(ComparisonResult == 0)
	{
		/* By default, items that are equal will be sub-sorted
		by their display names. */
		ComparisonResult = StrCmpLogicalW(m_pExtraItemInfo[InternalIndex1].szDisplayName,
			m_pExtraItemInfo[InternalIndex2].szDisplayName);
	}

	if(!m_bSortAscending)
	{
		ComparisonResult = -ComparisonResult;
	}

	return ComparisonResult;
}
/* Also see NBookmarkHelper::Sort. */
int CALLBACK CShellBrowser::Sort(int InternalIndex1,int InternalIndex2) const
{
	int ComparisonResult = 0;

	BasicItemInfo_t basicItemInfo1 = getBasicItemInfo(InternalIndex1);
	BasicItemInfo_t basicItemInfo2 = getBasicItemInfo(InternalIndex2);

	bool IsFolder1 = ((basicItemInfo1.wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY) ? true : false;
	bool IsFolder2 = ((basicItemInfo2.wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY) ? true : false;
	
	/* Folders will always be sorted separately from files,
	except in the recycle bin. */
	if(IsFolder1 && !IsFolder2 && !CompareVirtualFolders(CSIDL_BITBUCKET))
	{
		ComparisonResult = -1;
	}
	else if(!IsFolder1 && IsFolder2 && !CompareVirtualFolders(CSIDL_BITBUCKET))
	{
		ComparisonResult = 1;
	}
	else
	{
		switch(m_folderSettings.sortMode)
		{
		case SortMode::Name:
			ComparisonResult = SortByName(basicItemInfo1, basicItemInfo2, m_config->globalFolderSettings);
			break;

		case SortMode::Type:
			ComparisonResult = SortByType(basicItemInfo1,basicItemInfo2);
			break;

		case SortMode::Size:
			ComparisonResult = SortBySize(InternalIndex1,InternalIndex2);
			break;

		case SortMode::DateModified:
			ComparisonResult = SortByDate(InternalIndex1,InternalIndex2,DATE_TYPE_MODIFIED);
			break;

		case SortMode::TotalSize:
			ComparisonResult = SortByTotalSize(basicItemInfo1,basicItemInfo2,TRUE);
			break;

		case SortMode::FreeSpace:
			ComparisonResult = SortByTotalSize(basicItemInfo1,basicItemInfo2,FALSE);
			break;

		case SortMode::DateDeleted:
			ComparisonResult = SortByItemDetails(basicItemInfo1, basicItemInfo2, &SCID_DATE_DELETED);
			break;

		case SortMode::OriginalLocation:
			ComparisonResult = SortByItemDetails(basicItemInfo1, basicItemInfo2, &SCID_ORIGINAL_LOCATION);
			break;

		case SortMode::Attributes:
			ComparisonResult = SortByAttributes(basicItemInfo1, basicItemInfo2);
			break;

		case SortMode::RealSize:
			ComparisonResult = SortByRealSize(basicItemInfo1, basicItemInfo2);
			break;

		case SortMode::ShortName:
			ComparisonResult = SortByShortName(basicItemInfo1, basicItemInfo2);
			break;

		case SortMode::Owner:
			ComparisonResult = SortByOwner(basicItemInfo1, basicItemInfo2);
			break;

		case SortMode::ProductName:
			ComparisonResult = SortByVersionInfo(basicItemInfo1, basicItemInfo2,VERSION_INFO_PRODUCT_NAME);
			break;

		case SortMode::Company:
			ComparisonResult = SortByVersionInfo(basicItemInfo1, basicItemInfo2,VERSION_INFO_COMPANY);
			break;

		case SortMode::Description:
			ComparisonResult = SortByVersionInfo(basicItemInfo1, basicItemInfo2,VERSION_INFO_DESCRIPTION);
			break;

		case SortMode::FileVersion:
			ComparisonResult = SortByVersionInfo(basicItemInfo1, basicItemInfo2,VERSION_INFO_FILE_VERSION);
			break;

		case SortMode::ProductVersion:
			ComparisonResult = SortByVersionInfo(basicItemInfo1, basicItemInfo2,VERSION_INFO_PRODUCT_VERSION);
			break;

		case SortMode::ShortcutTo:
			ComparisonResult = SortByShortcutTo(basicItemInfo1, basicItemInfo2);
			break;

		case SortMode::HardLinks:
			ComparisonResult = SortByHardlinks(basicItemInfo1, basicItemInfo2);
			break;

		case SortMode::Extension:
			ComparisonResult = SortByExtension(basicItemInfo1,basicItemInfo2);
			break;

		case SortMode::Created:
			ComparisonResult = SortByDate(InternalIndex1,InternalIndex2,DATE_TYPE_CREATED);
			break;

		case SortMode::Accessed:
			ComparisonResult = SortByDate(InternalIndex1,InternalIndex2,DATE_TYPE_ACCESSED);
			break;

		case SortMode::Title:
			ComparisonResult = SortByItemDetails(basicItemInfo1, basicItemInfo2,&PKEY_Title);
			break;

		case SortMode::Subject:
			ComparisonResult = SortByItemDetails(basicItemInfo1, basicItemInfo2,&PKEY_Subject);
			break;

		case SortMode::Authors:
			ComparisonResult = SortByItemDetails(basicItemInfo1, basicItemInfo2,&PKEY_Author);
			break;

		case SortMode::Keywords:
			ComparisonResult = SortByItemDetails(basicItemInfo1, basicItemInfo2,&PKEY_Keywords);
			break;

		case SortMode::Comments:
			ComparisonResult = SortByItemDetails(basicItemInfo1, basicItemInfo2,&PKEY_Comment);
			break;

		case SortMode::CameraModel:
			ComparisonResult = SortByImageProperty(basicItemInfo1, basicItemInfo2,PropertyTagEquipModel);
			break;

		case SortMode::DateTaken:
			ComparisonResult = SortByImageProperty(basicItemInfo1, basicItemInfo2,PropertyTagDateTime);
			break;

		case SortMode::Width:
			ComparisonResult = SortByImageProperty(basicItemInfo1, basicItemInfo2,PropertyTagImageWidth);
			break;

		case SortMode::Height:
			ComparisonResult = SortByImageProperty(basicItemInfo1, basicItemInfo2,PropertyTagImageHeight);
			break;

		case SortMode::VirtualComments:
			ComparisonResult = SortByVirtualComments(basicItemInfo1, basicItemInfo2);
			break;

		case SortMode::FileSystem:
			ComparisonResult = SortByFileSystem(basicItemInfo1,basicItemInfo2);
			break;

		case SortMode::NumPrinterDocuments:
			ComparisonResult = SortByPrinterProperty(basicItemInfo1,basicItemInfo2,PRINTER_INFORMATION_TYPE_NUM_JOBS);
			break;

		case SortMode::PrinterStatus:
			ComparisonResult = SortByPrinterProperty(basicItemInfo1,basicItemInfo2,PRINTER_INFORMATION_TYPE_STATUS);
			break;

		case SortMode::PrinterComments:
			ComparisonResult = SortByPrinterProperty(basicItemInfo1,basicItemInfo2,PRINTER_INFORMATION_TYPE_COMMENTS);
			break;

		case SortMode::PrinterLocation:
			ComparisonResult = SortByPrinterProperty(basicItemInfo1,basicItemInfo2,PRINTER_INFORMATION_TYPE_LOCATION);
			break;

		case SortMode::NetworkAdapterStatus:
			ComparisonResult = SortByNetworkAdapterStatus(basicItemInfo1,basicItemInfo2);
			break;

		case SortMode::MediaBitrate:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_BITRATE);
			break;

		case SortMode::MediaCopyright:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_COPYRIGHT);
			break;

		case SortMode::MediaDuration:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_DURATION);
			break;

		case SortMode::MediaProtected:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_PROTECTED);
			break;

		case SortMode::MediaRating:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_RATING);
			break;

		case SortMode::MediaAlbumArtist:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_ALBUM_ARTIST);
			break;

		case SortMode::MediaAlbum:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_ALBUM_TITLE);
			break;

		case SortMode::MediaBeatsPerMinute:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_BEATS_PER_MINUTE);
			break;

		case SortMode::MediaComposer:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_COMPOSER);
			break;

		case SortMode::MediaConductor:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_CONDUCTOR);
			break;

		case SortMode::MediaDirector:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_DIRECTOR);
			break;

		case SortMode::MediaGenre:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_GENRE);
			break;

		case SortMode::MediaLanguage:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_LANGUAGE);
			break;

		case SortMode::MediaBroadcastDate:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_BROADCASTDATE);
			break;

		case SortMode::MediaChannel:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_CHANNEL);
			break;

		case SortMode::MediaStationName:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_STATIONNAME);
			break;

		case SortMode::MediaMood:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_MOOD);
			break;

		case SortMode::MediaParentalRating:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_PARENTALRATING);
			break;

		case SortMode::MediaParentalRatingReason:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_PARENTALRATINGREASON);
			break;

		case SortMode::MediaPeriod:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_PERIOD);
			break;

		case SortMode::MediaProducer:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_PRODUCER);
			break;

		case SortMode::MediaPublisher:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_PUBLISHER);
			break;

		case SortMode::MediaWriter:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_WRITER);
			break;

		case SortMode::MediaYear:
			ComparisonResult = SortByMediaMetadata(basicItemInfo1, basicItemInfo2,MEDIAMETADATA_TYPE_YEAR);
			break;

		default:
			assert(false);
			break;
		}
	}

	if(ComparisonResult == 0)
	{
		/* By default, items that are equal will be sub-sorted
		by their display names. */
		ComparisonResult = StrCmpLogicalW(m_itemInfoMap.at(InternalIndex1).szDisplayName,
			m_itemInfoMap.at(InternalIndex2).szDisplayName);
	}

	if(!m_folderSettings.sortAscending)
	{
		ComparisonResult = -ComparisonResult;
	}

	return ComparisonResult;
}