StringToHGlobalUni is useful for custom marshaling or for use when mixing managed and unmanaged code. Because this method allocates the unmanaged memory required for a string, always free the memory by calling FreeHGlobal. This method provides the opposite functionality of Marshal.PtrToStringUni.

This method copies embedded null characters, and includes a terminating null character.