Well, I tried to shuffle the order of creation of these files. The results I got was as follows:
- On windows I was getting "sorted by name" order.
- On Linux I was getting creation order.
Funny thing is I work on Suse Linux 9.0 with current wine CVS and IEnumIDList in the shelfolder test returns for me test.txt, testdir2, test1.txt, test2.txt, and test3.txt in that order. So I can't confirm the idea that Wine under Linux would always enumerate files in a directory nor in alphabetically order nor in order of creation.
I'm using ASP Linux at home (FC1 based) with ext3 file system. I should try this at work (SuSE 9.1) with reiserfs.
I tested XP, 2003 and 98 all with same results. So my assumption was that I would always get the "sorted by name" order from windows no meter what. I could be wrong here. If this is the case it has something to do with SHFolder's heading information, that we currently ignore.
If you mean the selected column in a shell folder view, that should not have any influence on the order of files returned for an IEnumIDList object. It does not and can't now about the column to use for ordering nor should it do any specific ordering AFAICS. This is supposed to be done by the IShellView through use of the IShellFolder's CompareIDs method
I was referring to iShellFolder2::GetDefaultColumn function. But you could be right and this is nothing more then file system's way of storing files.
I know FAT will allocate first unused/deleted dir entry. But a new directory will always start empty.
I have set a fix in which sorts all entries first - the part I was trying to fix in the first place ;-)
Vitaliy Margolen