ドキュメント無し関数 / 名前無し関数
システムDLLの関数の中には、エクスポートはされているもののドキュメントが無い関数、「名前無し」でエクスポートされている関数があります。一部のWindowsアプリケーションではこれらを使っている場合があり、中には役に立つものもあります。ここではそれらの中で過去に自分が調べたものを紹介しています。
また、エクスプローラーなどで利用されているCOMインターフェイスで、執筆時点で公式ドキュメントが存在しないもののうち判明した分も取り上げています。
※ 紹介しているものの一部は将来のWindowsで変更される可能性がありますので、「確認済みバージョン」と異なるバージョンのWindowsで利用する際はご注意ください。
※ 名前無し関数の関数名は適当です。もしちゃんとした関数名が存在していた場合、それは太字で表示します。実際に使用する場合、関数名は何でも構いません。
※ ここに出ているデータは、完全なデータではありません。
※ 一部の関数は、既にヘッダーに定義されていて、MSDNライブラリに記述されているものもあります。(それらには後ろに * を付けました。)
※ インターフェイス名に関しては、レジストリに登録されている場合はその名称を利用していますが、登録されておらずシンボル情報からも判別できない場合は適当な名前を付けています。(適当な名前を付けているものは * を付けました。)
[C/C++] これらの関数を使用するには、LoadLibrary、GetProcAddress 関数を使用します。
[VB(.NET)] 「構文」にかかれている定義を使えば、これらの関数を利用できます。
目次
関数一覧
- LogoffWindowsDialog (shell32.dll, #54)
- ExitWindowsDialog (shell32.dll, #60)
- SHGetNetResource (shell32.dll, #69)
- OpenRegStream * (shell32.dll, #85)
- SHCloneSpecialIDList * (shell32.dll, #89)
- SHWinHelp (shell32.dll, #127)
- SHFree * (shell32.dll, #195)
- SHAlloc * (shell32.dll, #196)
- _ShellMessageBoxWrapW (shlwapi.dll, #388)