20 public IKsAggregateControl,
24 public IAMStreamConfig,
219 m_ParentFilter(ParentFilter),
225 m_PipeAllocatorFlag(0),
226 m_bPinBusCacheInitialized(0),
231 m_Communication(Communication),
232 m_InterfaceHandler(0),
234 m_hBufferAvailable(0),
237 m_IoThreadStarted(0),
242 IKsObject * KsObjectParent;
280 reinterpret_cast<IUnknown*>(*Output)->AddRef();
294 *
Output = (IKsObject*)(
this);
295 reinterpret_cast<IKsObject*>(*Output)->AddRef();
300 *
Output = (IKsPinEx*)(
this);
301 reinterpret_cast<IKsPinEx*>(*Output)->AddRef();
306 *
Output = (IKsPinPipe*)(
this);
307 reinterpret_cast<IKsPinPipe*>(*Output)->AddRef();
312 *
Output = (IKsAggregateControl*)(
this);
313 reinterpret_cast<IKsAggregateControl*>(*Output)->AddRef();
319 reinterpret_cast<IQualityControl*>(*Output)->AddRef();
334 reinterpret_cast<IKsPropertySet*>(*Output)->AddRef();
343 reinterpret_cast<IKsControl*>(*Output)->AddRef();
350 reinterpret_cast<IStreamBuilder*>(*Output)->AddRef();
359 *
Output = (IKsPinFactory*)(
this);
360 reinterpret_cast<IKsPinFactory*>(*Output)->AddRef();
369 reinterpret_cast<ISpecifyPropertyPages*>(*Output)->AddRef();
375 reinterpret_cast<IMediaSeeking*>(*Output)->AddRef();
378 else if (
IsEqualGUID(refiid, IID_IAMBufferNegotiation))
381 reinterpret_cast<IAMBufferNegotiation*>(*Output)->AddRef();
386 *
Output = (IAMStreamConfig*)(
this);
387 reinterpret_cast<IAMStreamConfig*>(*Output)->AddRef();
390 else if (
IsEqualGUID(refiid, IID_IMemAllocatorNotifyCallbackTemp))
393 reinterpret_cast<IMemAllocatorNotifyCallbackTemp*>(*Output)->AddRef();
528 DWORD *pCapabilities)
537 hr = FilterMediaSeeking->GetCapabilities(pCapabilities);
546 DWORD *pCapabilities)
555 hr = FilterMediaSeeking->CheckCapabilities(pCapabilities);
573 hr = FilterMediaSeeking->IsFormatSupported(pFormat);
591 hr = FilterMediaSeeking->QueryPreferredFormat(pFormat);
609 hr = FilterMediaSeeking->GetTimeFormat(pFormat);
627 hr = FilterMediaSeeking->IsUsingTimeFormat(pFormat);
645 hr = FilterMediaSeeking->SetTimeFormat(pFormat);
663 hr = FilterMediaSeeking->GetDuration(pDuration);
681 hr = FilterMediaSeeking->GetStopPosition(pStop);
700 hr = FilterMediaSeeking->GetCurrentPosition(pCurrent);
710 const GUID *pTargetFormat,
712 const GUID *pSourceFormat)
721 hr = FilterMediaSeeking->ConvertTimeFormat(
pTarget, pTargetFormat,
Source, pSourceFormat);
731 DWORD dwCurrentFlags,
742 hr = FilterMediaSeeking->SetPositions(pCurrent, dwCurrentFlags, pStop, dwStopFlags);
761 hr = FilterMediaSeeking->GetPositions(pCurrent, pStop);
780 hr = FilterMediaSeeking->GetAvailable(pEarliest, pLatest);
798 hr = FilterMediaSeeking->SetRate(dRate);
816 hr = FilterMediaSeeking->GetRate(pdRate);
834 hr = FilterMediaSeeking->GetPreroll(pllPreroll);
904 IKsObject * KsObjectParent;
910 hFilter = KsObjectParent->KsGetObjectHandle();
929 IKsObject * KsObjectParent;
935 hFilter = KsObjectParent->KsGetObjectHandle();
1042 if (
Operation == KsPeekOperation_AddRef)
1096 #ifdef KSPROXY_TRACE 1112 #ifdef KSPROXY_TRACE 1126 PFRAMING_PROP FramingProp,
1127 FRAMING_CACHE_OPS Option)
1129 if (Option > Framing_Cache_Write || Option < Framing_Cache_ReadLast)
1146 PFRAMING_PROP FramingProp,
1147 FRAMING_CACHE_OPS Option)
1186 if (
Operation == KsPeekOperation_AddRef)
1197 IKsAllocatorEx *KsAllocator)
1200 KsAllocator->AddRef();
1271 #ifdef KSPROXY_TRACE 1293 #ifdef KSPROXY_TRACE 1312 #ifdef KSPROXY_TRACE 1324 #ifdef KSPROXY_TRACE 1337 #ifdef KSPROXY_TRACE 1352 ULONG PropertyLength,
1362 #ifdef KSPROXY_TRACE 1383 #ifdef KSPROXY_TRACE 1400 #ifdef KSPROXY_TRACE 1420 DWORD cbInstanceData,
1461 DWORD cbInstanceData,
1502 DWORD *pTypeSupport)
1507 #ifdef KSPROXY_TRACE 1532 #ifdef KSPROXY_TRACE 1558 #ifdef KSPROXY_TRACE 1559 swprintf(
Buffer,
L"COutputPin::Connect CreatePin handle failed with %lx\n",
hr);
1571 #ifdef KSPROXY_TRACE 1609 #ifdef KSPROXY_TRACE 1610 swprintf(
Buffer,
L"COutputPin::Connect IMemAllocator::SetProperties failed with hr %lx\n",
hr);
1623 #ifdef KSPROXY_TRACE 1624 swprintf(
Buffer,
L"COutputPin::Connect IMemAllocator::Commit failed with hr %lx\n",
hr);
1636 #ifdef KSPROXY_TRACE 1637 swprintf(
Buffer,
L"COutputPin::Connect No IMemAllocatorCallbackTemp interface hr %lx\n",
hr);
1653 #ifdef KSPROXY_TRACE 1654 swprintf(
Buffer,
L"COutputPin::Connect IMemAllocatorNotifyCallbackTemp::SetNotify failed hr %lx\n",
hr);
1666 #ifdef KSPROXY_TRACE 1667 swprintf(
Buffer,
L"COutputPin::Connect IMemInputPin::NotifyAllocator failed with hr %lx\n",
hr);
1686 #ifdef KSPROXY_TRACE 1701 m_Pin = pReceivePin;
1702 #ifdef KSPROXY_TRACE 1725 #ifdef KSPROXY_TRACE 1746 #ifdef KSPROXY_TRACE 1755 #ifdef KSPROXY_TRACE 1777 #ifdef KSPROXY_TRACE 1821 #ifdef KSPROXY_TRACE 1835 IKsObject * KsObjectParent;
1842 hFilter = KsObjectParent->KsGetObjectHandle();
1928 IKsObject * KsObjectParent;
1940 hFilter = KsObjectParent->KsGetObjectHandle();
1980 IKsInterfaceHandler * InterfaceHandler;
1987 #ifdef KSPROXY_TRACE 2000 #ifdef KSPROXY_TRACE 2010 if (MediumList->
Count)
2038 #ifdef KSPROXY_TRACE 2056 #ifdef KSPROXY_TRACE 2058 swprintf(
Buffer,
L"COutputPin::CreatePin failed to create interface handler %lx\n",
hr);
2066 hr = InterfaceHandler->KsSetPin((IKsPin*)
this);
2070 #ifdef KSPROXY_TRACE 2072 swprintf(
Buffer,
L"COutputPin::CreatePin failed to initialize interface handler %lx\n",
hr);
2087 #ifdef KSPROXY_TRACE 2100 #ifdef KSPROXY_TRACE 2121 IKsObject * KsObjectParent;
2175 swprintf(
Buffer,
L"COutputPin::CreatePinHandle copy format %p pbFormat %lu\n", pmt, pmt->cbFormat);
2189 hFilter = KsObjectParent->KsGetObjectHandle();
2213 #ifdef KSPROXY_TRACE 2219 swprintf(
Buffer,
L"COutputPin::CreatePinHandle Major %s SubType %s Format %s pbFormat %p cbFormat %u\n", pMajor, pSub, pFormat, pmt->pbFormat, pmt->cbFormat);
2280 ULONG NumProperty = 0;
2282 ULONG NumEvents = 0;
2307 NumProperty /=
sizeof(
GUID);
2309 NumEvents /=
sizeof(
GUID);
2344 #ifdef KSPROXY_TRACE 2351 *NumGuids = NumProperty+NumEvents+
NumMethods;
2413 PKSSTREAM_SEGMENT * StreamSegment;
2419 #ifdef KSPROXY_TRACE 2489 #ifdef KSPROXY_TRACE 2506 hEvent = StreamSegment[0]->CompletionEvent;
2527 #ifdef KSPROXY_TRACE 2560 return Pin->IoProcessRoutine();
2617 #ifdef KSPROXY_TRACE 2635 #ifdef KSPROXY_TRACE 2644 #ifdef KSPROXY_TRACE 2645 swprintf(
Buffer,
L"COutputPin_SetState Setting State CurState: KSSTATE_STOP KSSTATE_ACQUIRE PinName %s hr %lx\n", pPin->
m_PinName,
hr);
2668 #ifdef KSPROXY_TRACE 2669 swprintf(
Buffer,
L"COutputPin_SetState Setting State CurState KSSTATE_ACQUIRE KSSTATE_PAUSE PinName %s hr %lx\n", pPin->
m_PinName,
hr);
2692 #ifdef KSPROXY_TRACE 2693 swprintf(
Buffer,
L"COutputPin_SetState Setting State CurState: KSSTATE_PAUSE KSSTATE_RUN PinName %s hr %lx\n", pPin->
m_PinName,
hr);
2724 #ifdef KSPROXY_TRACE 2725 swprintf(
Buffer,
L"COutputPin_SetState Setting State CurState: KSSTATE_RUN KSSTATE_PAUSE PinName %s hr %lx\n", pPin->
m_PinName,
hr);
2748 #ifdef KSPROXY_TRACE 2749 swprintf(
Buffer,
L"COutputPin_SetState Setting State CurState: KSSTATE_PAUSE KSSTATE_ACQUIRE PinName %s hr %lx\n", pPin->
m_PinName,
hr);
2780 #ifdef KSPROXY_TRACE 2781 swprintf(
Buffer,
L"COutputPin_SetState Setting State CurState: KSSTATE_ACQUIRE KSSTATE_STOP PinName %s hr %lx\n", pPin->
m_PinName,
hr);
KSPIN_COMMUNICATION m_Communication
DWORD WINAPI COutputPin_IoThreadStartup(LPVOID lpParameter)
HANDLE m_hBufferAvailable
#define IOCTL_KS_PROPERTY
HRESULT STDMETHODCALLTYPE GetTimeFormat(GUID *pFormat)
HRESULT STDMETHODCALLTYPE QueryPreferredFormat(GUID *pFormat)
HRESULT STDMETHODCALLTYPE KsCreateSinkPinHandle(KSPIN_INTERFACE &Interface, KSPIN_MEDIUM &Medium)
KSPIN_INTERFACE Interface
HRESULT STDMETHODCALLTYPE GetAllocatorProperties(ALLOCATOR_PROPERTIES *pprop)
#define IOCTL_KS_DISABLE_EVENT
_In_ ULONG _In_ ULONG _In_ ULONG Length
HRESULT STDMETHODCALLTYPE KsEvent(PKSEVENT Event, ULONG EventLength, LPVOID EventData, ULONG DataLength, ULONG *BytesReturned)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
ALLOCATOR_PROPERTIES m_Properties
KSDDKAPI DWORD NTAPI KsCreatePin(HANDLE FilterHandle, PKSPIN_CONNECT Connect, ACCESS_MASK DesiredAccess, PHANDLE ConnectionHandle)
const GUID IID_IKsControl
#define KSPRIORITY_NORMAL
HRESULT ReceiveConnection([in] IPin *pConnector, [in] const AM_MEDIA_TYPE *pmt)
HRESULT STDMETHODCALLTYPE SuggestAllocatorProperties(const ALLOCATOR_PROPERTIES *pprop)
HRESULT STDMETHODCALLTYPE Backout(IPin *ppinOut, IGraphBuilder *pGraph)
HRESULT STDMETHODCALLTYPE LoadProxyPlugins(LPGUID pGuids, ULONG NumGuids)
#define KSPROPERTY_TYPE_SETSUPPORT
HRESULT STDMETHODCALLTYPE GetCapabilities(DWORD *pCapabilities)
HRESULT STDMETHODCALLTYPE ConvertTimeFormat(LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
HRESULT WINAPI IoProcessRoutine()
HRESULT STDMETHODCALLTYPE KsQualityNotify(ULONG Proportion, REFERENCE_TIME TimeDelta)
HRESULT STDMETHODCALLTYPE KsSetPipe(IKsAllocatorEx *KsAllocator)
HRESULT QueryAccept([in] const AM_MEDIA_TYPE *pmt)
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList
HRESULT STDMETHODCALLTYPE BeginFlush()
HRESULT STDMETHODCALLTYPE Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
HRESULT STDMETHODCALLTYPE GetStreamCaps(int iIndex, AM_MEDIA_TYPE **ppmt, BYTE *pSCC)
HRESULT STDMETHODCALLTYPE QueryId(LPWSTR *Id)
_In_ ULONG _In_ ULONG State
#define INVALID_HANDLE_VALUE
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
DWORD WINAPI GetLastError(VOID)
HRESULT STDMETHODCALLTYPE GetPages(CAUUID *pPages)
HRESULT STDMETHODCALLTYPE KsGetCurrentCommunication(KSPIN_COMMUNICATION *Communication, KSPIN_INTERFACE *Interface, KSPIN_MEDIUM *Medium)
KSPIN_INTERFACE m_Interface
HRESULT STDMETHODCALLTYPE KsReceiveAllocator(IMemAllocator *MemAllocator)
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
HRESULT STDMETHODCALLTYPE KsMediaSamplesCompleted(PKSSTREAM_SEGMENT StreamSegment)
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
HRESULT STDMETHODCALLTYPE EndOfStream()
STDMETHODIMP_(ULONG) AddRef()
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
const GUID IID_ISpecifyPropertyPages
HANDLE STDMETHODCALLTYPE KsGetObjectHandle()
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
HRESULT STDMETHODCALLTYPE GetStopPosition(LONGLONG *pStop)
KSIDENTIFIER * PKSPIN_INTERFACE
HRESULT NewSegment([in] REFERENCE_TIME tStart, [in] REFERENCE_TIME tStop, [in] double dRate)
IKsAllocatorEx *STDMETHODCALLTYPE KsGetPipe(KSPEEKOPERATION Operation)
#define KSPROPERTY_TYPE_GET
HRESULT STDMETHODCALLTYPE GetCurrentPosition(LONGLONG *pCurrent)
HRESULT STDMETHODCALLTYPE ConnectionMediaType(AM_MEDIA_TYPE *pmt)
ULONG STDMETHODCALLTYPE KsGetPipeAllocatorFlag()
#define KSPROPSETID_Connection
struct ISpecifyPropertyPages::tagCAUUID CAUUID
HRESULT STDMETHODCALLTYPE QuerySupported(REFGUID guidPropSet, DWORD dwPropID, DWORD *pTypeSupport)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
#define RtlMoveMemory(Destination, Source, Length)
HRESULT STDMETHODCALLTYPE KsGetPinFramingCache(PKSALLOCATOR_FRAMING_EX *FramingEx, PFRAMING_PROP FramingProp, FRAMING_CACHE_OPS Option)
HRESULT STDMETHODCALLTYPE KsMethod(PKSMETHOD Method, ULONG MethodLength, LPVOID MethodData, ULONG DataLength, ULONG *BytesReturned)
#define VFW_E_ALREADY_CONNECTED
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HRESULT STDMETHODCALLTYPE KsSetPipeAllocatorFlag(ULONG Flag)
HRESULT STDMETHODCALLTYPE GetRate(double *pdRate)
HRESULT STDMETHODCALLTYPE SetFormat(AM_MEDIA_TYPE *pmt)
IBaseFilter * m_ParentFilter
HRESULT WINAPI COutputPin_Constructor(IBaseFilter *ParentFilter, LPCWSTR PinName, ULONG PinId, KSPIN_COMMUNICATION Communication, REFIID riid, LPVOID *ppv)
HRESULT STDMETHODCALLTYPE SetTimeFormat(const GUID *pFormat)
HRESULT STDMETHODCALLTYPE GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest)
HRESULT STDMETHODCALLTYPE QueryAccept(const AM_MEDIA_TYPE *pmt)
HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(const GUID *pFormat)
HRESULT STDMETHODCALLTYPE Notify(IBaseFilter *pSelf, Quality q)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
friend HRESULT STDMETHODCALLTYPE COutputPin_SetState(IPin *Pin, KSSTATE State)
BOOL m_bPinBusCacheInitialized
LONG STDMETHODCALLTYPE KsIncrementPendingIoCount()
HRESULT STDMETHODCALLTYPE COutputPin_SetState(IPin *Pin, KSSTATE State)
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
FRAMING_PROP m_FramingProp[4]
#define VFW_E_NOT_CONNECTED
_Check_return_ HRESULT WINAPI StringFromIID(_In_ REFIID rclsid, _Outptr_ LPOLESTR *lplpsz)
const GUID IID_IKsAggregateControl
IMemAllocator * m_MemAllocator
HRESULT STDMETHODCALLTYPE EndFlush()
KSDDKAPI HRESULT WINAPI KsGetMediaTypeCount(HANDLE FilterHandle, ULONG PinFactoryId, ULONG *MediaTypeCount)
HRESULT STDMETHODCALLTYPE KsQueryInterfaces(PKSMULTIPLE_ITEM *InterfaceList)
HRESULT STDMETHODCALLTYPE SetSink(IQualityControl *piqc)
HRESULT WINAPI InitializeIOThread()
HRESULT STDMETHODCALLTYPE GetSupportedSets(LPGUID *pOutGuid, PULONG NumGuids)
HRESULT STDMETHODCALLTYPE CheckCapabilities(DWORD *pCapabilities)
HRESULT STDMETHODCALLTYPE KsSetPinFramingCache(PKSALLOCATOR_FRAMING_EX FramingEx, PFRAMING_PROP FramingProp, FRAMING_CACHE_OPS Option)
HRESULT STDMETHODCALLTYPE KsDeliver(IMediaSample *Sample, ULONG Flags)
HRESULT STDMETHODCALLTYPE QueryPinInfo(PIN_INFO *pInfo)
_Must_inspect_result_ _In_ ULONG Flags
IPin *STDMETHODCALLTYPE KsGetConnectedPin()
HRESULT STDMETHODCALLTYPE GetDuration(LONGLONG *pDuration)
KSDDKAPI HRESULT WINAPI KsGetMultiplePinFactoryItems(HANDLE FilterHandle, ULONG PinFactoryId, ULONG PropertyId, PVOID *Items)
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
HRESULT STDMETHODCALLTYPE Disconnect()
HRESULT STDMETHODCALLTYPE KsRemoveAggregate(REFGUID AggregateClass)
_In_ WDFCOLLECTION _In_ ULONG Index
HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(int *piCount, int *piSize)
#define STDMETHODCALLTYPE
HRESULT STDMETHODCALLTYPE KsPinFactory(ULONG *PinFactory)
HRESULT STDMETHODCALLTYPE QueryInternalConnections(IPin **apPin, ULONG *nPin)
GLdouble GLdouble GLdouble GLdouble q
HRESULT STDMETHODCALLTYPE NotifyRelease()
friend DWORD WINAPI COutputPin_IoThreadStartup(LPVOID lpParameter)
COutputPin(IBaseFilter *ParentFilter, LPCWSTR PinName, ULONG PinId, KSPIN_COMMUNICATION Communication)
struct KSPIN_CONNECT * PKSPIN_CONNECT
KSDDKAPI HRESULT WINAPI KsGetMediaType(int Position, AM_MEDIA_TYPE *AmMediaType, HANDLE FilterHandle, ULONG PinFactoryId)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
HRESULT STDMETHODCALLTYPE KsAddAggregate(IN REFGUID AggregateClass)
#define InterlockedDecrement
#define IOCTL_KS_ENABLE_EVENT
ULONG m_PipeAllocatorFlag
HRESULT STDMETHODCALLTYPE GetFormat(AM_MEDIA_TYPE **ppmt)
IKsInterfaceHandler * m_InterfaceHandler
std::vector< IUnknown * > ProxyPluginVector
const GUID IID_IKsPinFactory
HRESULT STDMETHODCALLTYPE EnumMediaTypes(IEnumMediaTypes **ppEnum)
KSIDENTIFIER * PKSPIN_MEDIUM
LONG STDMETHODCALLTYPE KsDecrementPendingIoCount()
IMemInputPin * m_MemInputPin
HRESULT STDMETHODCALLTYPE GetPreroll(LONGLONG *pllPreroll)
int _cdecl swprintf(const WCHAR *,...)
const GUID IID_IKsPropertySet
HRESULT STDMETHODCALLTYPE Render(IPin *ppinOut, IGraphBuilder *pGraph)
HRESULT STDMETHODCALLTYPE KsSetPinBusCache(GUID Bus)
HRESULT STDMETHODCALLTYPE ConnectedTo(IPin **pPin)
HRESULT STDMETHODCALLTYPE NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)
HRESULT STDMETHODCALLTYPE Set(REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT STDMETHODCALLTYPE ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt)
HRESULT STDMETHODCALLTYPE CreatePin(const AM_MEDIA_TYPE *pmt)
PWCHAR STDMETHODCALLTYPE KsGetFilterName()
#define InterlockedIncrement
IKsAllocatorEx * m_KsAllocatorEx
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
HRESULT STDMETHODCALLTYPE SetPositions(LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
HRESULT STDMETHODCALLTYPE QueryDirection(PIN_DIRECTION *pPinDir)
HRESULT STDMETHODCALLTYPE KsQueryMediums(PKSMULTIPLE_ITEM *MediumList)
HRESULT STDMETHODCALLTYPE KsPropagateAcquire()
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
HRESULT STDMETHODCALLTYPE CheckFormat(const AM_MEDIA_TYPE *pmt)
PKSALLOCATOR_FRAMING_EX m_FramingEx[4]
AM_MEDIA_TYPE m_MediaFormat
HRESULT STDMETHODCALLTYPE CreatePinHandle(PKSPIN_MEDIUM Medium, PKSPIN_INTERFACE Interface, const AM_MEDIA_TYPE *pmt)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
ProxyPluginVector m_Plugins
HRESULT STDMETHODCALLTYPE GetPositions(LONGLONG *pCurrent, LONGLONG *pStop)
enum _PinDirection PIN_DIRECTION
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
HRESULT STDMETHODCALLTYPE KsRenegotiateAllocator()
HRESULT STDMETHODCALLTYPE SetRate(double dRate)
HRESULT GetBuffer([out] IMediaSample **ppBuffer, [in] REFERENCE_TIME *pStartTime, [in] REFERENCE_TIME *pEndTime, [in] DWORD dwFlags)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
_In_ FLT_SET_CONTEXT_OPERATION Operation
HRESULT WINAPI CKsAllocator_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
WCHAR achName[MAX_PIN_NAME]
struct KSIDENTIFIER * PKSPROPERTY
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
HRESULT SetProperties([in] ALLOCATOR_PROPERTIES *pRequest, [out] ALLOCATOR_PROPERTIES *pActual)
UINT(* handler)(MSIPACKAGE *)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
HRESULT STDMETHODCALLTYPE Get(REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD *pcbReturned)
STDMETHODIMP_(ULONG) Release()
GUID STDMETHODCALLTYPE KsGetPinBusCache()
#define KSPROPERTY_TYPE_SET
IMemAllocator *STDMETHODCALLTYPE KsPeekAllocator(KSPEEKOPERATION Operation)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
PWCHAR STDMETHODCALLTYPE KsGetPinName()
#define RegCloseKey(hKey)
HRESULT STDMETHODCALLTYPE KsProperty(PKSPROPERTY Property, ULONG PropertyLength, LPVOID PropertyData, ULONG DataLength, ULONG *BytesReturned)
VOID STDMETHODCALLTYPE KsNotifyError(IMediaSample *Sample, HRESULT hr)
KSDATAFORMAT * PKSDATAFORMAT
HRESULT STDMETHODCALLTYPE IsFormatSupported(const GUID *pFormat)
#define HKEY_LOCAL_MACHINE
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)