Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Advice when using COM Object/CComPtr and the STL

I am doing some COM related things with directshow such as:

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

To store a list of directShow related com objects and their friendly name.

After finding this article (See:Problem 2) on how changes in VC10 compiler might effect previously OK code, I am wondering if there are any more things to watch out for when mixing the STL and CComPtr or prehaps just mixing the STL and COM in general.

Any tips would be greatly appreciated, thanks

like image 363
Andrew Avatar asked Nov 05 '22 13:11

Andrew


1 Answers

The only slight thing I can think of that hasn't been mentioned is that CAdapt is required for CComBSTR as well as CComPtr, because it overloads operator& too.

In fact, it is overloading operator& that makes CAdapt necessary, as many STL containers require that taking the address of something X returns a pointer to said X.

like image 151
Kim Gräsman Avatar answered Nov 11 '22 10:11

Kim Gräsman