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に実装されていると書いてるのに、序数のみでのサポートだったり、序数で定義されてるのに、未実装になってたり、実装済みなのに、未実装になってたり、実際に見てみないとよくわからないですね

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です