Duncan points to a site created by Nathanthat is a Wiki of Pinvoke signatures, tips, and tricks. What a great idea. When I teach people about PInvoke, I usually make the comment that one of the trickiest parts of getting it right is getting the signature mapped correctly from the unmanaged types to the managed types. That and of course creating the objects properly and passing them as parameters and handing them as return values. This site will make a great resource for dealing with some of those APIs as long as it continues to grow.
I will make it a point to go add stuff there every time I find myself making a PInvoke call that is not already fully documented there. You should too!