私は何年も前に ATL プログラミングを行いましたが、現在はその道を再び進んでいます。前回、コンパイラが put_ と get_ (つまりプロパティ) を自動的に最適化する方法があったことを覚えています。前回どうやってやったのか本当にわかりません。
現在、私はこれをやっています:
// assume p is a pointer to an interface
CComBSTR name;
p->get_Name(&name);
このコードは本当に私を悩ませています。もっと良い方法があると確信しています:
// can we do this?
CComBSTR name(p->get_Name());
// or maybe this
CComBSTR name(p->Name);
CComPtr と _com_ptr_t を使用してこれを行う方法がわかりませんでした。また、p は同じライブラリー内のインターフェースへのポインターであることに注意してください。だから私は #import などを使用していません。