从C代码调用SHGetKnownFolderPath

hip*_*ail 2 c winapi windows-vista windows-7 known-folders

我正在尝试SHGetKnownFolderPath()使用Visual Studio 2008从C 调用Vista函数.该代码在C++中工作正常,但拒绝使用此输出编译为C代码:

xyz\indexwiki.cpp(316):错误C2440:'function':无法从'const GUID'转换为'const KNOWNFOLDERID*const'xyz\indexwiki.cpp(316):警告C4024:'SHGetKnownFolderPath':正式的不同类型和实际参数1

代码非常多:

PWSTR path;

HRESULT hr = SHGetKnownFolderPath(
  FOLDERID_Profile,
  0,
  NULL,
  &path
);
Run Code Online (Sandbox Code Playgroud)

如果可以的话,我宁愿把它保存为C并将项目保存为单个源文件.对于较新的Windows API,这是一个已知问题吗?我通过谷歌找不到多少.我错过了什么吗?或者是否有一个简单的解决方法涉及转换或预处理器定义?

typ*_*.pl 5

以下怎么样?

HRESULT hr = SHGetKnownFolderPath(&FOLDERID_Profile,0,NULL,&path);