Почему вы не загружаете kernel32.dll динамически, используя LoadLibrary, а затем используете GetProcAddress, чтобы определить, доступны ли функции API пула потоков Vista, которые вам нужны? Если это так, хорошо, если они не возвращаются к более старым функциям API.
например. (Непроверенные)
typedef PTP_WAIT (WINAPI *FnCreateThreadpoolWait) (PTP_WAIT_CALLBACK,PVOID,
PTP_CALLBACK_ENVIRON);
HMODULE hLibrary;
FnCreateThreadpoolWait pFn;
hLibrary = ::LoadLibrary ("kernel32.dll");
pFn = (FnCreateThreadpoolWait) ::GetProcAddress (hLibrary,"CreateThreadpoolWait");
if (pFn == NULL) // Vista API not available
.....