Yes. And it's not big deal. i already gave the sample. Here is new one:

Dll:

Code:
#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);
	}
	


}



Lite-c:

Code:
///////////////////////////////
#include <acknex.h>
#include <default.c>
#include <windows.h>

//needed windows.h
char* savedir_str="";
void SHGetKnownFolderliteC(int id,char* str);
#define FOLDER_LocalAppData 1
#define FOLDER_PublicDesktop 2
#define FOLDER_ProgramData 3
#define FOLDER_RoamingAppData 4 


void main()
{
	SHGetKnownFolderliteC(FOLDER_LocalAppData,savedir_str);
	printf(savedir_str);
	sys_exit("");
}



ask someone skilled if there is something wrong with the sample. if it's okay, then use it.

i don't know what else you want.