Совет при использовании COM Object / CComPtr и STL - PullRequest
5 голосов
/ 27 апреля 2010

Я делаю некоторые связанные с COM вещи с directshow, такие как:

typedef CComPtr<IBaseFilter> AutoIBaseFilterPtr;
map<CString, AutoIBaseFilterPtr> _filterMap;

Для хранения списка связанных com-объектов directShow и их понятного имени.

После нахождения этой статьи (см .: Проблема 2) о том, как изменения в компиляторе VC10 могут повлиять на ранее код OK, мне интересно, есть ли еще какие-то вещи, на которые следует обратить внимание при смешении STL и CComPtr или возможно просто смешать STL и COM в целом.

Любые советы будут с благодарностью, спасибо

1 Ответ

2 голосов
/ 12 мая 2010

Единственное, о чем я могу подумать, это то, что я не упомянул о том, что CAdapt требуется для CComBSTR, а также CComPtr, потому что он перегружает operator&.

Фактически, именно перегрузка operator& делает необходимым CAdapt, так как многие контейнеры STL требуют, чтобы получение адреса чего-либо X возвращало указатель на указанный X.

...