SHGetFolderPathEx と 拡張カーネル

Windows 2000 Kernel32 改造計画【BM】

拡張カーネル v2.2d をリリースしました。
comctl32 6.0.2900.6029 もダウンロードできるようにしました
ターゲットのフォルダにコピーして使います。
(例: notepad++、uTorrent)

追加した関数
kernel32
FindNLSString

user32
IsProcessDPIAware

shell32
SHGetFolderPathEx

後、v2.2~2.2cのパッケージでmfc関連のNT5系列版がインストールできない問題があったので修正しました。

この、SHGetFolderPathEx なんですが調べてみると、未実装とか、使われていないとかありますが、Vistaのアクセサリなどで呼び出されています。

SHGetKnownFolderPath | 上弦乃月
[mfc 52322] Re: SHGetFolderPathEx は使えますか? - mfc-ml

一応、内部的にどうなってるか解析してみました。

HRESULT WINAPI SHGetFolderPathEx
(REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, LPWSTR pszPath, DWORD pccPath)

これが関数定義です。

dwFlags については、 KNOWN_FOLDER_FLAG が使われてるのですが、
KF_FLAG_NOT_PARENT_RELATIVE と KF_FLAG_DEFAULT_PATH しか意味を持っていません。

SHGetFolderPathとの関数の並びも違っていますし、実質SHGetKnownFolderPath の下位劣化版関数という感じでした。

おすすめ

コメントを残す

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