В функции SHCreateShellItem
есть функция, которая объявлена в <shlobj.h>
, но она была #ifdef
'вне зависимости от того, больше или равно _WIN32_IE
или равно 0x601
(если оно есть, то декларация присутствует). Однако, даже когда я определяю от _WIN32_IE
до 0x601
до включения <shlobj.h>
, MSVC ++ по-прежнему жалуется на то, что SHCreateShellItem
не объявлено.
Например, я не могу получить следующее для компиляции:
#define _WIN32_IE 0x601
#include <shlobj.h>
int someFunction (LPITEMIDLIST parent, LPITEMIDLIST child)
{
HRESULT result;
IShellItem *shellObj;
result = SHCreateShellItem (parent, NULL, child, &shellObj);
if (SUCCEEDED(result))
{
// do stuff
}
return SUCCEEDED(result);
}
Нужно ли определять _WIN32_IE
по-другому?