CComPtr-like usage:
boost::intrusive_ptr<IVideo> video;
someObject->QueryInterface(IID_IVideo,(void**)&video);
Is there a better way? How do you bring intrusive_ptr and QueryInterface together?
[Nat] Sorry if this is naïve...
Wouldn't it work to do something like this?
IVideo* temp_video = NULL;
someObject->QueryInterface(IID_IVideo, &temp_video);
boost::intrusive_ptr<IVideo> video(temp_video);
As the construction of the intrusive_ptr increases the ref count you have to call
temp_video->Release();
afterwards. Anyway, in my opinion this obvious solution is too error-prone.