title: How can Windows Portable Device (WPD) API be used by a program compiled using MingW?
body: <p>I'm writing a program that automates some tasks that must be done when a removable device is detected. Originally using only file streams. When I realized that not all removable devices can be accessed that way then I started to use SHFileOperation, but now I realized that some devices cannot be accessed even by this method.</p>
  
  <p>I want to use WPD API but my program is compiled using MingW, and the libraries it uses where compiled using MingW too. The only two possibilities I see are to recompile everything for Visual C++ (I want to avoid this if possible) or write a small wrapping library that will compile as a DLL and that only exports functions and can be easily linked from a program compiled with MingW even if the DLL itself was compiled with Visual C++ (so it can use WPD API).</p>
  
  <p>For example if somebody knows a library that already wrapped WPD, that will save me a lot of time.</p>