|  | Home | Libraries | People | FAQ | More | 
      In order to use Boost.WinAPI you have to include one or several headers from
      the boost/winapi directory. Each header there defines
      a portion of Windows API, the name of the header should be self-explanatory.
      Each Boost.WinAPI header may declare a number of symbols like functions and
      types in the global namespace, mimicking the Windows SDK, and the corresponding
      set of symbols in the boost::winapi
      namespace. User's code is supposed to use the symbols from the boost::winapi
      namespace only.
    
      Most of the functions in the boost::winapi
      have the same name and meaning as the corresponding Windows API functions.
      Types and constants have a trailing underscore ('_') in their name to avoid
      clashes with macros that are defined in Windows SDK.
    
| ![[Note]](../../../../../doc/src/images/note.png) | Note | 
|---|---|
| 
        Boost.WinAPI does not define function-name macros that expand to the  | 
For example, here is how one would create and destroy a semaphore with Boost.WinAPI:
#include <limits> #include <boost/winapi/handles.hpp> #include <boost/winapi/semaphore.hpp> boost::winapi::HANDLE_ h = boost::winapi::CreateSemaphoreExW( NULL, // security attributes 0l, // initial count std::numeric_limits< boost::winapi::LONG_ >::max(), // max count L"Local\\MySemaphore", // semaphore name 0l, // flags boost::winapi::SEMAPHORE_ALL_ACCESS_ // access mode ); if (h) boost::winapi::CloseHandle(h);
Refer to MSDN for documentation on the particular functions, types and constants.