Вот решение VB.Net, которое я использовал.
Первый делают класс для сравнения дат:
Private Class DateComparer
Implements System.Collections.IComparer
Public Function Compare(ByVal info1 As Object, ByVal info2 As Object) As Integer Implements System.Collections.IComparer.Compare
Dim FileInfo1 As System.IO.FileInfo = DirectCast(info1, System.IO.FileInfo)
Dim FileInfo2 As System.IO.FileInfo = DirectCast(info2, System.IO.FileInfo)
Dim Date1 As DateTime = FileInfo1.CreationTime
Dim Date2 As DateTime = FileInfo2.CreationTime
If Date1 > Date2 Then Return 1
If Date1 < Date2 Then Return -1
Return 0
End Function
End Class
Тогда используют компаратор при сортировке массива:
Dim DirectoryInfo As New System.IO.DirectoryInfo("C:\")
Dim Files() As System.IO.FileInfo = DirectoryInfo.GetFiles()
Dim comparer As IComparer = New DateComparer()
Array.Sort(Files, comparer)
Если память служит, GetModuleHandle (NULL);
возвращает дескриптор экземпляра.
__ ImageBase - ваш друг, особенно в случае библиотек.
Обратите внимание, что связанное сообщение в блоге (написано Р. Ченом, хотя и не совпадает с тем, на которое ссылается автор Брайан Бонди) стоит прочитать (включая комментарии!)
Если вы используете MFC, вы можете использовать AfxGetInstanceHandle.
Если вы не используете MFC, вы можете использовать: GetWindowLong (hWnd, GWL_HINSTANCE)