APN This page describes the pros and cons of accessing the Win32 API using Ffidl (which is a terrific extension) versus TWAPI from my objective :-) perspective as the author of the latter.
Of course, there is no reason you cannot use TWAPI and Ffidl together, and in fact I view them more complementary than competitive. Use TWAPI if possible and Ffidl to access an API that the former does not support.
To understand the two clearly, it's important also to introduce winapi, Emmanuel Frecons' Ffidl-based library for "access to the low-level Win32 API". In comparison with twapi, winapi is closer to "raw" Win32. APN respectfully differs - if you prefer the raw Win32 API as documented in Microsoft's SDK, TWAPI supports that every bit as well.
Pros of Ffidl
Pros of TWAPI
As an example of the differences in complexity, convenience and ease of use, suppose you wanted to find the user account associated with a process. In TWAPI, you would simply say
twapi::get_process_info PID -user
You need very little Windows knowledge for this! To do this via Ffidl, you would need to know about OpenProcess, OpenProcessToken, access rights and masks, GetTokenInformation, LookupAccountSid, WTSEnumerateProcesses and which can be used on which version of Windows and what privileges need to be obtained to use them. You would have to find out, through experience because it is not documented, that not only are there OS version differences but service pack differences, particularly when retrieving information about "privileged" processes like svchost. Then once you have this knowledge, try coding it all using Ffidl or the TWAPI low level interface.
Similarly, try implementing some of the examples at [L1 ] using Ffidl to get a feel of difference in complexity.