11const GUID IID_IKsPinPipe = {0xe539cd90, 0xa8b4, 0x11d1, {0x81, 0x89, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}};
12const GUID IID_IKsPinEx = {0x7bb38260L, 0xd19c, 0x11d2, {0xb3, 0x8a, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e}};
37 public IKsAggregateControl,
187 m_ParentFilter(ParentFilter),
193 m_Communication(Communication),
196 m_InterfaceHandler(0),
198 m_PipeAllocatorFlag(0),
199 m_bPinBusCacheInitialized(0),
207 IKsObject * KsObjectParent;
213 hFilter = KsObjectParent->KsGetObjectHandle();
216 KsObjectParent->Release();
256 *
Output = (IKsObject*)(
this);
257 reinterpret_cast<IKsObject*
>(*Output)->AddRef();
282 *
Output = (IKsPinEx*)(
this);
283 reinterpret_cast<IKsPinEx*
>(*Output)->AddRef();
288 *
Output = (IKsPinPipe*)(
this);
289 reinterpret_cast<IKsPinPipe*
>(*Output)->AddRef();
294 *
Output = (IKsPinFactory*)(
this);
295 reinterpret_cast<IKsPinFactory*
>(*Output)->AddRef();
308 *
Output = (IKsAggregateControl*)(
this);
309 reinterpret_cast<IKsAggregateControl*
>(*Output)->AddRef();
441 PFRAMING_PROP FramingProp,
442 FRAMING_CACHE_OPS Option)
444 if (Option > Framing_Cache_Write || Option < Framing_Cache_ReadLast)
461 PFRAMING_PROP FramingProp,
462 FRAMING_CACHE_OPS Option)
512 IKsAllocatorEx *KsAllocator)
717 IKsObject * KsObjectParent;
724 hFilter = KsObjectParent->KsGetObjectHandle();
740 IKsObject * KsObjectParent;
747 hFilter = KsObjectParent->KsGetObjectHandle();
926 ULONG PropertyLength,
975 DWORD cbInstanceData,
1016 DWORD cbInstanceData,
1057 DWORD *pTypeSupport)
1227 IKsObject * KsObjectParent;
1234 hFilter = KsObjectParent->KsGetObjectHandle();
1329 IKsObject * KsObjectParent;
1339 hFilter = KsObjectParent->KsGetObjectHandle();
1381 IKsInterfaceHandler * InterfaceHandler;
1398 if (MediumList->
Count)
1439 hr = InterfaceHandler->KsSetPin((IKsPin*)
this);
1444 OutputDebugStringW(
L"CInputPin::CreatePin failed to initialize InterfaceHandlerPlugin\n");
1492 IKsObject * KsObjectParent;
1502 hFilter = KsObjectParent->KsGetObjectHandle();
1573 swprintf(
Buffer,
L"CInputPin::CreatePinHandle Major %s SubType %s Format %s pbFormat %p cbFormat %u\n", pMajor, pSub, pFormat, pmt->pbFormat, pmt->cbFormat);
1639 ULONG NumProperty = 0;
1641 ULONG NumEvents = 0;
1666 NumProperty /=
sizeof(
GUID);
1668 NumEvents /=
sizeof(
GUID);
1672 swprintf(
Buffer,
L"CInputPin::GetSupportedSets NumProperty %lu NumMethods %lu NumEvents %lu\n", NumProperty,
NumMethods, NumEvents);
1710 *NumGuids = NumProperty+NumEvents+
NumMethods;
#define InterlockedIncrement
#define InterlockedDecrement
enum _PinDirection PIN_DIRECTION
#define STDMETHODCALLTYPE
#define RegCloseKey(hKey)
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
const GUID IID_IKsPropertySet
KSDATAFORMAT * PKSDATAFORMAT
const GUID IID_IKsPinFactory
const GUID IID_IKsAggregateControl
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
#define INVALID_HANDLE_VALUE
UINT(* handler)(MSIPACKAGE *)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
const GUID IID_IKsControl
#define KSPROPERTY_TYPE_SET
#define KSPROPERTY_TYPE_SETSUPPORT
struct KSIDENTIFIER * PKSPROPERTY
#define KSPROPERTY_TYPE_GET
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
GLdouble GLdouble GLdouble GLdouble q
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
HRESULT GetProperties([out] ALLOCATOR_PROPERTIES *pProps)
struct ISpecifyPropertyPages::tagCAUUID CAUUID
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define STATIC_KSINTERFACESETID_Standard
#define KSPRIORITY_NORMAL
#define KSMEDIUM_TYPE_ANYINSTANCE
@ KSPROPERTY_CONNECTION_ALLOCATORFRAMING
@ KSPROPERTY_CONNECTION_STATE
#define IOCTL_KS_PROPERTY
struct KSPIN_CONNECT * PKSPIN_CONNECT
#define STATIC_KSMEDIUMSETID_Standard
@ KSPROPERTY_PIN_DATARANGES
@ KSPROPERTY_PIN_INTERFACES
#define KSPROPSETID_Connection
@ KSPIN_COMMUNICATION_BRIDGE
@ KSPIN_COMMUNICATION_NONE
KSIDENTIFIER * PKSPIN_INTERFACE
_In_ PKSPIN_CONNECT Connect
KSIDENTIFIER * PKSPIN_MEDIUM
@ KSINTERFACE_STANDARD_STREAMING
#define IOCTL_KS_ENABLE_EVENT
#define IOCTL_KS_DISABLE_EVENT
KSDDKAPI HRESULT WINAPI KsGetMultiplePinFactoryItems(HANDLE FilterHandle, ULONG PinFactoryId, ULONG PropertyId, PVOID *Items)
KSDDKAPI HRESULT WINAPI KsGetMediaTypeCount(HANDLE FilterHandle, ULONG PinFactoryId, ULONG *MediaTypeCount)
KSDDKAPI HRESULT WINAPI KsGetMediaType(int Position, AM_MEDIA_TYPE *AmMediaType, HANDLE FilterHandle, ULONG PinFactoryId)
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
KSDDKAPI DWORD NTAPI KsCreatePin(HANDLE FilterHandle, PKSPIN_CONNECT Connect, ACCESS_MASK DesiredAccess, PHANDLE ConnectionHandle)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_Check_return_ HRESULT WINAPI StringFromIID(_In_ REFIID rclsid, _Outptr_ LPOLESTR *lplpsz)
const GUID IID_ISpecifyPropertyPages
#define IsEqualGUID(rguid1, rguid2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
WCHAR achName[MAX_PIN_NAME]
KSPIN_INTERFACE Interface
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList
#define VFW_E_ALREADY_CONNECTED
#define VFW_E_NO_ALLOCATOR
#define VFW_E_NOT_CONNECTED
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_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 HKEY_LOCAL_MACHINE
_Must_inspect_result_ _In_ ULONG Flags