XP スタイルの ファイルソートと StrCmpLogicalW
名前に数字が含まれるファイルやフォルダの並べ替え順序が Windows XP と Windows 2000 で異なる
にあるように、XPでは、レジストリのポリシーに従って、ソートの方式を変更することができます.
このソートには、 StrCmpLogicalW という、shlwapiの関数が使用されているのですが、 MSDN のドキュメントを見ると XP 以降になっていますが、 IE6 の機能なので、IE6がインストールされた2000にも実装されています.
が、このレジストリーポリシーは 0x4000007E で定義されていて、 Windows 2000にはありません
もし、 shell32.dllでレジストリポリシーの値を参照したら、NoStrCmpLogical の値は定義されていないという結果になります
IE5版の shlwapi.dllが関数をサポートしていないので、標準の shell32.dllが StrCmpLogicalW を参照すると落っこちてしまう
というわけで、確認してみましたが、2000版には、この部分の処理がありませんでした
MSDNには 2000に実装されていると書いてるのに、序数のみでのサポートだったり、序数で定義されてるのに、未実装になってたり、実装済みなのに、未実装になってたり、実際に見てみないとよくわからないですね
Comments