11 const GUID IID_IKsPinPipe = {0xe539cd90, 0xa8b4, 0x11d1, {0x81, 0x89, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}};
12 const GUID IID_IKsPinEx = {0x7bb38260
L, 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();
238 reinterpret_cast<IUnknown*>(*Output)->AddRef();
251 reinterpret_cast<IMemInputPin*>(*Output)->AddRef();
256 *
Output = (IKsObject*)(
this);
257 reinterpret_cast<IKsObject*>(*Output)->AddRef();
270 reinterpret_cast<IKsPropertySet*>(*Output)->AddRef();
276 reinterpret_cast<IKsControl*>(*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();
302 reinterpret_cast<IStreamBuilder*>(*Output)->AddRef();
308 *
Output = (IKsAggregateControl*)(
this);
309 reinterpret_cast<IKsAggregateControl*>(*Output)->AddRef();
315 reinterpret_cast<IQualityControl*>(*Output)->AddRef();
321 reinterpret_cast<ISpecifyPropertyPages*>(*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)
515 KsAllocator->AddRef();
658 pProps->
cbBuffer = Framing.FrameSize;
659 pProps->
cbAlign = Framing.FileAlignment;
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)
1088 #ifdef KSPROXY_TRACE 1141 #ifdef KSPROXY_TRACE 1172 #ifdef KSPROXY_TRACE 1227 IKsObject * KsObjectParent;
1234 hFilter = KsObjectParent->KsGetObjectHandle();
1277 #ifdef KSPROXY_TRACE 1286 #ifdef KSPROXY_TRACE 1295 #ifdef KSPROXY_TRACE 1304 #ifdef KSPROXY_TRACE 1313 #ifdef KSPROXY_TRACE 1329 IKsObject * KsObjectParent;
1339 hFilter = KsObjectParent->KsGetObjectHandle();
1360 #ifdef KSPROXY_TRACE 1381 IKsInterfaceHandler * InterfaceHandler;
1398 if (MediumList->
Count)
1429 #ifdef KSPROXY_TRACE 1439 hr = InterfaceHandler->KsSetPin((IKsPin*)
this);
1443 #ifdef KSPROXY_TRACE 1444 OutputDebugStringW(
L"CInputPin::CreatePin failed to initialize InterfaceHandlerPlugin\n");
1466 #ifdef KSPROXY_TRACE 1492 IKsObject * KsObjectParent;
1502 hFilter = KsObjectParent->KsGetObjectHandle();
1566 #ifdef KSPROXY_TRACE 1573 swprintf(
Buffer,
L"CInputPin::CreatePinHandle Major %s SubType %s Format %s pbFormat %p cbFormat %u\n", pMajor, pSub, pFormat, pmt->pbFormat, pmt->cbFormat);
1600 #ifdef KSPROXY_TRACE 1610 #ifdef KSPROXY_TRACE 1639 ULONG NumProperty = 0;
1641 ULONG NumEvents = 0;
1666 NumProperty /=
sizeof(
GUID);
1668 NumEvents /=
sizeof(
GUID);
1670 #ifdef KSPROXY_TRACE 1672 swprintf(
Buffer,
L"CInputPin::GetSupportedSets NumProperty %lu NumMethods %lu NumEvents %lu\n", NumProperty,
NumMethods, NumEvents);
1710 *NumGuids = NumProperty+NumEvents+
NumMethods;
#define IOCTL_KS_PROPERTY
KSPIN_INTERFACE Interface
#define IOCTL_KS_DISABLE_EVENT
_In_ ULONG _In_ ULONG _In_ ULONG Length
VOID WINAPI CoTaskMemFree(LPVOID ptr)
KSDDKAPI DWORD NTAPI KsCreatePin(HANDLE FilterHandle, PKSPIN_CONNECT Connect, ACCESS_MASK DesiredAccess, PHANDLE ConnectionHandle)
const GUID IID_IKsControl
#define KSPRIORITY_NORMAL
#define KSPROPERTY_TYPE_SETSUPPORT
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList
_In_ ULONG _In_ ULONG State
#define STATIC_KSMEDIUMSETID_Standard
#define INVALID_HANDLE_VALUE
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
const GUID IID_ISpecifyPropertyPages
KSIDENTIFIER * PKSPIN_INTERFACE
#define KSPROPERTY_TYPE_GET
#define KSPROPSETID_Connection
struct ISpecifyPropertyPages::tagCAUUID CAUUID
_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 VFW_E_ALREADY_CONNECTED
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
LONG WINAPI RegCloseKey(HKEY hKey)
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
#define VFW_E_NOT_CONNECTED
_Check_return_ HRESULT WINAPI StringFromIID(_In_ REFIID rclsid, _Outptr_ LPOLESTR *lplpsz)
const GUID IID_IKsAggregateControl
KSDDKAPI HRESULT WINAPI KsGetMediaTypeCount(HANDLE FilterHandle, ULONG PinFactoryId, ULONG *MediaTypeCount)
_Must_inspect_result_ _In_ ULONG Flags
KSDDKAPI HRESULT WINAPI KsGetMultiplePinFactoryItems(HANDLE FilterHandle, ULONG PinFactoryId, ULONG PropertyId, PVOID *Items)
_In_ WDFCOLLECTION _In_ ULONG Index
HRESULT GetProperties([out] ALLOCATOR_PROPERTIES *pProps)
#define STDMETHODCALLTYPE
GLdouble GLdouble GLdouble GLdouble q
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)
#define InterlockedDecrement
#define IOCTL_KS_ENABLE_EVENT
#define VFW_E_NO_ALLOCATOR
const GUID IID_IKsPinFactory
KSIDENTIFIER * PKSPIN_MEDIUM
const GUID IID_IKsPropertySet
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
#define InterlockedIncrement
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
#define KSMEDIUM_TYPE_ANYINSTANCE
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
#define STATIC_KSINTERFACESETID_Standard
enum _PinDirection PIN_DIRECTION
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
_In_ FLT_SET_CONTEXT_OPERATION Operation
WCHAR achName[MAX_PIN_NAME]
struct KSIDENTIFIER * PKSPROPERTY
UINT(* handler)(MSIPACKAGE *)
#define KSPROPERTY_TYPE_SET
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
KSDATAFORMAT * PKSDATAFORMAT
#define HKEY_LOCAL_MACHINE
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)