データを「エンコード」するためにバイトを組み合わせる方法だけですか?
RCWが自動的に.NET文字列を取得し、それをCOMBSTRに変換する方法を知りたいのですが。.NET文字列から変換された有効なCOMBSTRを形成するだけだと思います。
関連:.NETのバイトタイプを使用して独自の有効なBSTRを構築できますか?
2つの文字列タイプはまったく関係ありません。あるタイプを別のタイプに変換するには、変換が発生する必要があります。
BSTRには、SysAllocString *を介して割り当てられ、SysFreeStringで割り当て解除され、長さのプレフィックスがあり、2つのヌル文字のターミネータが含まれるなど、従う必要のあるいくつかの規則があります。
http://msdn.microsoft.com/en-us/library/ms221069.aspx
.Net文字列は、マネージヒープを介して割り当てられるマネージタイプです。その存続期間は、CLRガベージコレクターによって管理されます。
独自のBSTRを作成するには、Marshal.StringToBSTRを使用する方がはるかに優れています。
http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.stringtobstr.aspx
それでも不十分な場合は、SysAllocStringをピンボークできます。