Paul, I did not parse C++ but rather C#, a bit easier
Since the whole API was in C++, to use it from pascal it was necessary to make another dll that wrapped the C++ calls with C.
So I searched and one guy did a dll like that already, and provided C# bindings for it:
https://github.com/rlabrecque/Steamworks.NET
I wrote a mini parser that just extracts the functions, enums and structs (and comments too when possible). Maybe later I'll add it to the rep, in case someone is interested on it.
Bookmarks