| 2), I was only able to compile by removing the WINSHELLAPI identifier from the typedef line... 2) I think it's just a Barry's copypasto. WINSHELLAPI evaluates to __declspec(dllimport), which doesn't make sense if you do GetProcAddress.
Source: wiktionary