CVCam::CVCam(LPUNKNOWN lpunk, HRESULT *phr) :
CSource(NAME("Virtual Cam"), lpunk, CLSID_VirtualCam)
{
ASSERT(phr);
CAutoLock cAutoLock(&m_cStateLock);
// Create the one and only output pin
m_paStreams = (CSourceStream **) new CVCamStream*[1];
m_paStreams[0] = new CVCamStream(phr, this, L"Virtual Cam");
}
两次实例化m_paStreams
的原因是什么?
CAutoLock cAutoLock(&m_cStateLock);
是否适用于针对此过滤器的单独请求(通过不同的应用程序)?
答案 0 :(得分:3)
我不知道这段代码是什么,但我可以向你保证m_paStreams只在你发布的内容中初始化一次。
m_paStreams似乎是一个指向CSourceStream对象的指针数组。据推测,可能有多个这样的对象,因此,阵列。您的代码只是创建一个大小为1的数组,然后对于数组的第一个元素,创建CVCamStream对象。