I guess I don't quite get it. What's so wrong with Win32::API? I mean, I definitely see an argument for developing a custom module as a wrapper around that rather than using Win32::API directly in application code, but why go to the trouble of XS or Inline just to call an external DLL when you don't need to?