OK、それで私はこれを要約する適切なタイトルを本当に考えることができませんでした。
IPrintPipelinePropertyBagインターフェイスには、「プロパティバッグにプロパティを追加する」のに十分なメソッドAddPropertyがあります。
http://msdn.microsoft.com/en-us/library/aa506384.aspx
AddProperty([in、string] const wchar_t * pszName、[in] const VARIANT * pVar);
次のコードを使用して、プロパティバッグに文字列を追加します。
CComVariant varProperty = CComBSTR(someString);
pPrintPropertyBag->AddProperty(L"SOME_PROPERTY", &varFilename);
ただし、作成されたCComBSTRとCComVariantがしばらくすると範囲外になることは明らかです。PropertyBagが文字列を処理し、独自のコピーを作成するかどうかはわかりません。あらゆる種類のものをVARIANT内に保存できるので、そうではないはずです。
文字列が処理されないと仮定すると、私の質問は、COMでこれを行うためのパターンは何ですか?割り当てられた文字列を含むVARIANTを渡し、AddPropertyを呼び出したスレッドが最初に停止した場合でも、その文字列を他のスレッドで使用できるようにし、文字列の割り当てを適切に解除するにはどうすればよいですか?