firebreath/FireBreath — pull request #88 by asinbow (2012-10-31 01:46:55+00:00)
Title: fix crash with FOLDERID_LocalAppDataLow not found

The macro DEFINE_KNOWN_FOLDER was copied from , it will link FOLDERID_LocalAppDataLow to an external dll.
but for some system(to me, Windows 7, Chinese Edition), the symbol can't be found at runtime, so FOLDERID_LocalAppDataLow becomes GUID_NULL, and at line 52, it will fail with crash.

Really strange.

Let's inspect again, there are two styles of DEFINE_KNOWN_FOLDER:

```cpp
#ifdef INITGUID
#define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID DECLSPEC_SELECTANY name \
= { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
#else
#define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID name
#endif // INITGUID
```

Shall we use the first one without `extern`?