
#pragma once

// Allow use of features specific to Windows XP or later.
#ifndef WINVER
#define WINVER 0x0501
#endif

// Allow use of features specific to Windows XP or later.
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif						

// Allow use of features specific to Windows 98 or later.
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0410
#endif

// Allow use of features specific to IE 6.0 or later.
#ifndef _WIN32_IE
#define _WIN32_IE 0x0600
#endif

#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers

#include <windows.h>
#include <setupapi.h>
#include <tchar.h>
#include <cfgmgr32.h>

#ifdef _DEBUG

#include <sstream>

#define LOG_DEBUG(message) { \
    std::ostringstream os; \
    os << __FUNCTION__ << ": " << message << std::endl; \
    ::OutputDebugStringA(os.str().c_str()); \
}

#else

#define LOG_DEBUG(message) __noop

#endif // DEBUG
