BSTR data type

I have some Windows DLLs that include functions where the BSTR data type
is used as a parameter and/or return value. The Win32API library does
not seem to support this data type (at least directly). Does anyone
have code to do so? How about the variant data type? (I am not talking
about COM server libraries that could be called with Win32OLE.)

Jamal