Seems to be used in a/to use a shared object/dynamic library/whatever you call it (.so on POSIX systems, .dll on MS systems). POSIX doesn't require such redundancy, so it is defined empty if not compiled on a Win32 environment, in which case it uses some MS-specific declarations (I'd guess that one is used *in* the library, the other in the using code, but I'm not familiar with the Win API). Have a look in the msdn docs for what it does exactly.
It defines in any case THU_API depending on what was previously declared it is set to __declspec(dllexport), __declspec(dllimport) or just nothing.
Usally this is used in Win32 to declare some functions is this way: /*some other declarators*/ THU_API aFunction();
In order to have different compiled results based on what you defined before