shell32.dll は、ANSI と UNICODE の 2 種類の関数をエクスポートすることを知っています。(わかりやすくするために、CHAR*/WCHAR* 引数を取る関数についてのみ説明します。)
たとえば、ShellMessageBoxA
は ANSI バージョンで、ShellMessageBoxW
は Unicode バージョンです。ShellMessageBox
ヘッダー ファイルで定義されているマクロです。
#ifdef UNICODE
#define ShellMessageBox ShellMessageBoxW
#else
#define ShellMessageBox ShellMessageBoxA
#endif // !UNICODE
したがってShellMessageBox
、Shell32.dll からエクスポートされる関数としては存在しません。
しかし今、私はそれSHGetPathFromIDList
が3回エクスポートされていることを発見しました:
- オーディナル 312 -
SHGetPathFromIDList
- オーディナル 313 -
SHGetPathFromIDListA
- オーディナル 314 -
SHGetPathFromIDListW
これの目的は何ですか?