A: 

Don't define _WIN32_IE directly, do it implicitly with _WIN32_WINNT (which sets the target platform for the SDK includes)

#define _WIN32_WINNT 0x0600 
#include <windows.h>
#include <shlobj.h>
selbie
Thanks for the advice, however I still the same deal, it is not declaring the function. Does this value get implicitly defined anywhere?
dreamlax
Possibly your IDE project settings predefine this constant? Although one would expect the code definition to override in this case.
Elemental
If you define these variables in a header file theres always a risk that windows.h has been included before the header is included (especially if precompiled headers are being used).
Chris Becke
+1  A: 

_WIN32_IE is usually defined in your stdafx.h file. You must change it there.

Stefan
Precompiled header woes! Thanks for your help.
dreamlax