[
uuid(00E75FD0-19CE-4CD9-A87C-FAC5B74FADF8),
version(1.0),
helpstring("BStrAPI - Guido's VB-Speed API-Interface")
]
library BStrAPI
{
// forward declared
struct SAFEARRAY1D
{
short cDims;
short fFeatures;
LONG cbElements;
LONG cLocks;
LONG pvData;
LONG cElements1D;
LONG lLbound1D;
};
[
dllname("oleaut32.dll")
]
module OLEOUT32
{
[helpstring("Allocates a new string, copies cch characters from the passed string into it, and then appends a null character")]
BSTR SysAllocStringLen([in] LPSTR pch, [in] LONG cch);
[helpstring("Allocates a new string and copies the passed string into it. Returns Null if there is insufficient memory, and if Null, Null is passed in.")]
BSTR SysAllocString([in] LPSTR sz);
[helpstring("Allocates a new BSTR and copies the passed string into it, then frees the BSTR referenced by pbstr, and finally resets pbstr to point to the new BSTR.")]
LONG SysReAllocString([in] BSTR pbstr, [in] LPSTR sz);
[helpstring("Creates a new BSTR containing a specified number of characters from an old BSTR, and frees the old BSTR.")]
INT SysReAllocStringLen([in] BSTR pbstr, [in] LPSTR pch, [in] LONG cch);
[helpstring("Frees a string allocated previously by SysAllocString, SysAllocStringByteLen, SysReAllocString, SysAllocStringLen, or SysReAllocStringLen.")]
void SysFreeString([in] BSTR bstr);
[helpstring("Returns the length in characters of a BSTR")]
LONG SysStringLen([in] BSTR bstr);
[helpstring("Returns the length in bytes of a BSTR")]
LONG SysStringByteLen([in] BSTR bstr);
[helpstring("Takes an ANSI string as input, and returns a BSTR that contains an ANSI string. Does not perform any ANSI-to-Unicode translation.")]
BSTR SysAllocStringByteLen([in] LPSTR psz, [in] LONG len);
};
};