00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #pragma once
00023
00024 interface IPinC;
00025
00026 typedef struct IPinCVtbl
00027 {
00028 BEGIN_INTERFACE
00029 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPinC * This, REFIID riid, void **ppvObject );
00030 ULONG ( STDMETHODCALLTYPE *AddRef )( IPinC * This );
00031 ULONG ( STDMETHODCALLTYPE *Release )( IPinC * This );
00032 HRESULT ( STDMETHODCALLTYPE *Connect )( IPinC * This, IPinC *pReceivePin, const AM_MEDIA_TYPE *pmt );
00033 HRESULT ( STDMETHODCALLTYPE *ReceiveConnection )( IPinC * This, IPinC *pConnector, const AM_MEDIA_TYPE *pmt );
00034 HRESULT ( STDMETHODCALLTYPE *Disconnect )( IPinC * This );
00035 HRESULT ( STDMETHODCALLTYPE *ConnectedTo )( IPinC * This, IPinC **pPin );
00036 HRESULT ( STDMETHODCALLTYPE *ConnectionMediaType )( IPinC * This, AM_MEDIA_TYPE *pmt );
00037 HRESULT ( STDMETHODCALLTYPE *QueryPinInfo )( IPinC * This, PIN_INFO *pInfo );
00038 HRESULT ( STDMETHODCALLTYPE *QueryDirection )( IPinC * This, PIN_DIRECTION *pPinDir );
00039 HRESULT ( STDMETHODCALLTYPE *QueryId )( IPinC * This, LPWSTR *Id );
00040 HRESULT ( STDMETHODCALLTYPE *QueryAccept )( IPinC * This, const AM_MEDIA_TYPE *pmt );
00041 HRESULT ( STDMETHODCALLTYPE *EnumMediaTypes )( IPinC * This, IEnumMediaTypes **ppEnum );
00042 HRESULT ( STDMETHODCALLTYPE *QueryInternalConnections )( IPinC * This, IPinC **apPin, ULONG *nPin );
00043 HRESULT ( STDMETHODCALLTYPE *EndOfStream )( IPinC * This );
00044 HRESULT ( STDMETHODCALLTYPE *BeginFlush )( IPinC * This );
00045 HRESULT ( STDMETHODCALLTYPE *EndFlush )( IPinC * This );
00046 HRESULT ( STDMETHODCALLTYPE *NewSegment )( IPinC * This, REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate );
00047 END_INTERFACE
00048 } IPinCVtbl;
00049
00050 interface IPinC
00051 {
00052 CONST_VTBL struct IPinCVtbl *lpVtbl;
00053 };
00054
00055 extern void HookNewSegment(IPinC* pPinC);
00056 extern REFERENCE_TIME g_tSegmentStart;