#include <wchar.h>
#include <KnownFolders.h>
#include <shlobj.h>
#include <comdef.h>
wchar_t* path = new wchar_t[256];
DLLFUNC void SHGetKnownFolderliteC(int id, char* str)
{
if (id == 1)
{
SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, NULL, &path);
}
else if (id == 2)
{
SHGetKnownFolderPath(FOLDERID_PublicDesktop, 0, NULL, &path);
}
else if (id == 3)
{
SHGetKnownFolderPath(FOLDERID_ProgramData, 0, NULL, &path);
}
else if (id == 4)
{
SHGetKnownFolderPath(FOLDERID_RoamingAppData, 0, NULL, &path);
}
else
{
SHGetKnownFolderPath(FOLDERID_Fonts, 0, NULL, &path);
}
if (path != NULL)
{
_bstr_t b(path); strcpy_s((char*)str, 256, (char*)b);
}
}