static HRESULT WINAPI Parser_OutputPin_DecideAllocator(BaseOutputPin *iface, IMemInputPin *pPin, IMemAllocator **pAlloc) { Parser_OutputPin *This = (Parser_OutputPin *)iface; HRESULT hr; *pAlloc = NULL; if (This->alloc) hr = IMemInputPin_NotifyAllocator(pPin, This->alloc, This->readonly); else hr = VFW_E_NO_ALLOCATOR; return hr; }
static HRESULT WINAPI QTOutPin_DecideAllocator(BaseOutputPin *iface, IMemInputPin *pPin, IMemAllocator **pAlloc) { HRESULT hr; QTOutPin *This = impl_QTOutPin_from_BaseOutputPin(iface); QTSplitter *QTfilter = impl_from_IBaseFilter(This->pin.pin.pinInfo.pFilter); *pAlloc = NULL; if (QTfilter->pInputPin.pAlloc) hr = IMemInputPin_NotifyAllocator(pPin, QTfilter->pInputPin.pAlloc, FALSE); else hr = VFW_E_NO_ALLOCATOR; return hr; }
static void test_pin(IPin *pin) { IMemInputPin *mpin = NULL; IPin_QueryInterface(pin, &IID_IMemInputPin, (void **)&mpin); ok(mpin != NULL, "No IMemInputPin found!\n"); if (mpin) { ok(IMemInputPin_ReceiveCanBlock(mpin) == S_OK, "Receive can't block for pin!\n"); ok(IMemInputPin_NotifyAllocator(mpin, NULL, 0) == E_POINTER, "NotifyAllocator likes a NULL pointer argument\n"); IMemInputPin_Release(mpin); } /* TODO */ }