I know that shell32.dll exports two types of functions—ANSI and UNICODE. (For the sake of simplicity, I am talking only about functions that take CHAR*/WCHAR* arguments.)
For example, ShellMessageBoxA
is the ANSI version, while ShellMessageBoxW
is the Unicode version. ShellMessageBox
is a macro defined in the header file:
#ifdef UNICODE
#define ShellMessageBox ShellMessageBoxW
#else
#define ShellMessageBox ShellMessageBoxA
#endif // !UNICODE
So ShellMessageBox
does not exist as a function that is exported from Shell32.dll.
But now I discovered that SHGetPathFromIDList
is exported three times:
- ORDINAL 312 -
SHGetPathFromIDList
- ORDINAL 313 -
SHGetPathFromIDListA
- ORDINAL 314 -
SHGetPathFromIDListW
What is purpose of this?