#define _FORCENAMELESSUNION
#define BUILDING_KS
#define _KSDDK_
+//#define KSPROXY_TRACE
#include <dshow.h>
//#include <streams.h>
#include <ks.h>
#include <setupapi.h>
#include <stdio.h>
#include <vector>
+#include <stack>
+#include <list>
+#include <assert.h>
+#include <ksmedia.h>
//#include <debug.h>
+
+interface DECLSPEC_UUID("877E4351-6FEA-11D0-B863-00AA00A216A1") IKsClock;
+
+#undef INTERFACE
+#define INTERFACE IKsClock
+
+DECLARE_INTERFACE_(IKsClock, IUnknown)
+{
+ STDMETHOD_(HANDLE, KsGetClockHandle)(
+ THIS
+ ) PURE;
+};
+
+
typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject);
typedef struct {
LPCWSTR PinName,
HANDLE hFilter,
ULONG PinId,
+ KSPIN_COMMUNICATION Communication,
REFIID riid,
LPVOID * ppv);
COutputPin_Constructor(
IBaseFilter * ParentFilter,
LPCWSTR PinName,
+ ULONG PinId,
+ KSPIN_COMMUNICATION Communication,
REFIID riid,
LPVOID * ppv);
+HRESULT
+STDMETHODCALLTYPE
+COutputPin_SetState(
+ IPin * Pin,
+ KSSTATE State);
+
/* enumpins.cpp */
HRESULT
WINAPI
REFIID riid,
LPVOID * ppv);
+/* node.cpp */
+HRESULT
+WINAPI
+CKsNode_Constructor(
+ IUnknown * pUnkOuter,
+ HANDLE ParentHandle,
+ ULONG NodeId,
+ ACCESS_MASK DesiredAccess,
+ REFIID riid,
+ LPVOID * ppv);
+
+/* allocator.cpp */
+HRESULT
+WINAPI
+CKsAllocator_Constructor(
+ IUnknown * pUnkOuter,
+ REFIID riid,
+ LPVOID * ppv);
+
+/* mediasample.cpp */
+HRESULT
+WINAPI
+CMediaSample_Constructor(
+ IMemAllocator* Allocator,
+ BYTE* pBuffer,
+ ULONG BufferSize,
+ REFIID riid,
+ LPVOID * ppv);
+
+extern const GUID IID_IKsObject;
+extern const GUID IID_IKsPinEx;
+extern const GUID IID_IKsAggregateControl;
+extern const GUID IID_IKsPinPipe;
+extern const GUID IID_IKsPinFactory;
+extern const GUID IID_IKsAllocatorEx;
+extern KSPIN_INTERFACE StandardPinInterface;
+extern KSPIN_MEDIUM StandardPinMedium;