Workaround BOOST STRONG TYPEDEF

Header file for unique_ptr

Type aliases for compatibility pre win8 SDK

The Interface class IAsyncOperation is renamed under WIN8 SDK to
IDataObjectAsyncCapability. An alias is provided to allow WIN8+ SDK users
to compile code from pre WIN8 SDK.
Define compatibility types for main project space.
Change std::make_pair to std::pair for C++11.
My patch
opt