HRESULT AVIDec_create(IUnknown * pUnkOuter, LPVOID * ppv) { HRESULT hr; AVIDecImpl * This; TRACE("(%p, %p)\n", pUnkOuter, ppv); *ppv = NULL; if (pUnkOuter) return CLASS_E_NOAGGREGATION; hr = TransformFilter_Construct(&AVIDec_Vtbl, sizeof(AVIDecImpl), &CLSID_AVIDec, &AVIDec_FuncsTable, (IBaseFilter**)&This); if (FAILED(hr)) return hr; else { ISeekingPassThru *passthru; hr = CoCreateInstance(&CLSID_SeekingPassThru, (IUnknown*)This, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)&This->seekthru_unk); IUnknown_QueryInterface(This->seekthru_unk, &IID_ISeekingPassThru, (void**)&passthru); ISeekingPassThru_Init(passthru, FALSE, (IPin*)This->tf.ppPins[0]); ISeekingPassThru_Release(passthru); } This->hvid = NULL; This->pBihIn = NULL; This->pBihOut = NULL; *ppv = This; return hr; }
HRESULT AVIDec_create(IUnknown * pUnkOuter, LPVOID * ppv) { HRESULT hr; AVIDecImpl * This; TRACE("(%p, %p)\n", pUnkOuter, ppv); *ppv = NULL; if (pUnkOuter) return CLASS_E_NOAGGREGATION; hr = TransformFilter_Construct(&AVIDec_Vtbl, sizeof(AVIDecImpl), &CLSID_AVIDec, &AVIDec_FuncsTable, (IBaseFilter**)&This); if (FAILED(hr)) return hr; This->hvid = NULL; This->pBihIn = NULL; This->pBihOut = NULL; *ppv = &This->tf.filter.IBaseFilter_iface; return hr; }
IUnknown * CALLBACK QTVDecoder_create(IUnknown * pUnkOuter, HRESULT* phr) { HRESULT hr; QTVDecoderImpl * This; TRACE("(%p, %p)\n", pUnkOuter, phr); *phr = S_OK; if (pUnkOuter) { *phr = CLASS_E_NOAGGREGATION; return NULL; } hr = TransformFilter_Construct(&QTVDecoder_Vtbl, sizeof(QTVDecoderImpl), &CLSID_QTVDecoder, &QTVDecoder_FuncsTable, (IBaseFilter**)&This); if (FAILED(hr)) { *phr = hr; return NULL; } *phr = hr; return (IUnknown*)This; }
static HRESULT Gstreamer_transform_create(IUnknown *punkout, const CLSID *clsid, const char *name, const TransformFilterFuncTable *vtbl, void **obj) { GstTfImpl *This; if (FAILED(TransformFilter_Construct(&GSTTf_Vtbl, sizeof(GstTfImpl), clsid, vtbl, (IBaseFilter**)&This))) return E_OUTOFMEMORY; This->gstreamer_name = name; *obj = This; return S_OK; }
static HRESULT Gstreamer_transform_create(IUnknown *punkout, const CLSID *clsid, const char *name, const TransformFilterFuncTable *vtbl, void **obj) { GstTfImpl *This; if (FAILED(TransformFilter_Construct(&GSTTf_Vtbl, sizeof(GstTfImpl), clsid, vtbl, (IBaseFilter**)&This))) return E_OUTOFMEMORY; else { ISeekingPassThru *passthru; CoCreateInstance(&CLSID_SeekingPassThru, (IUnknown*)This, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)&This->seekthru_unk); IUnknown_QueryInterface(This->seekthru_unk, &IID_ISeekingPassThru, (void**)&passthru); ISeekingPassThru_Init(passthru, FALSE, (IPin*)This->tf.ppPins[0]); ISeekingPassThru_Release(passthru); } This->gstreamer_name = name; *obj = This; return S_OK; }
HRESULT ACMWrapper_create(IUnknown * pUnkOuter, LPVOID * ppv) { HRESULT hr; ACMWrapperImpl* This; TRACE("(%p, %p)\n", pUnkOuter, ppv); *ppv = NULL; if (pUnkOuter) return CLASS_E_NOAGGREGATION; hr = TransformFilter_Construct(&ACMWrapper_Vtbl, sizeof(ACMWrapperImpl), &CLSID_ACMWrapper, &ACMWrapper_FuncsTable, (IBaseFilter**)&This); if (FAILED(hr)) return hr; *ppv = &This->tf.filter.IBaseFilter_iface; This->lasttime_real = This->lasttime_sent = -1; return hr; }