This function creates a BSTR that contains a specified number of characters from an old BSTR, and frees the old BSTR.
HRESULT SysReAllocStringLen( BSTR FAR* pbstr, OLECHAR FAR* pch, unsigned int cch );
The SysReAllocStringLen function does the following:
Allocates a new string
Copies cch characters from the passed string into it
Appends a null character
Frees the BSTR referenced by pbstr
Resets pbstr to point to the new BSTR
If pch is NULL, a string of length cch is allocated but not initialized.
The pch string can contain embedded null characters and does not need to end with a NULL.
Only Unicode strings are supported.
Passing invalid (and under some circumstances NULL) pointers to this function causes an unexpected termination of the application.