37 STDMETHODIMP GetTypeInfoCount(UINT * pctinfo);
39 STDMETHODIMP GetTypeInfo(
43 ITypeInfo ** pptinfo);
45 STDMETHODIMP GetIDsOfNames(
67 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
70 STDMETHODIMP GetTypeInfoCount(UINT * pctinfo);
72 STDMETHODIMP GetTypeInfo(
75 ITypeInfo ** pptinfo);
77 STDMETHODIMP GetIDsOfNames(
89 DISPPARAMS * pdispparams,
91 EXCEPINFO * pexcepinfo,
109 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
112 STDMETHODIMP GetTypeInfoCount(UINT * pctinfo);
114 STDMETHODIMP GetTypeInfo(
117 ITypeInfo ** pptinfo);
119 STDMETHODIMP GetIDsOfNames(
121 OLECHAR ** rgszNames,
131 DISPPARAMS * pdispparams,
132 VARIANT * pvarResult,
133 EXCEPINFO * pexcepinfo,
139 public IMediaPosition,
153 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
156 STDMETHODIMP GetTypeInfoCount(UINT * pctinfo);
158 STDMETHODIMP GetTypeInfo(
161 ITypeInfo ** pptinfo);
163 STDMETHODIMP GetIDsOfNames(
165 OLECHAR ** rgszNames,
175 DISPPARAMS * pdispparams,
176 VARIANT * pvarResult,
177 EXCEPINFO * pexcepinfo,
204 m_time = (LONGLONG) (d * 10000000);
208 return double(m_time) / 10000000;
211 operator REFERENCE_TIME() {
216 m_time = (LONGLONG) (rd * 10000000);
220 COARefTime& operator=(
const REFERENCE_TIME& rt) {
227 return m_time == rt.m_time;
232 return m_time != rt.m_time;
237 return m_time < rt.m_time;
242 return m_time > rt.m_time;
245 inline BOOL operator >= (
const COARefTime& rt)
247 return m_time >= rt.m_time;
250 inline BOOL operator <= (
const COARefTime& rt)
252 return m_time <= rt.m_time;
304 HRESULT GetPeer(IMediaPosition **ppMP);
305 HRESULT GetPeerSeeking(IMediaSeeking **ppMS);
309 CPosPassThru(
const TCHAR *, LPUNKNOWN, HRESULT*, IPin *);
312 HRESULT ForceRefresh() {
317 virtual HRESULT GetMediaTime(LONGLONG *pStartTime,LONGLONG *pEndTime) {
321 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
324 STDMETHODIMP GetCapabilities( DWORD * pCapabilities );
325 STDMETHODIMP CheckCapabilities( DWORD * pCapabilities );
326 STDMETHODIMP SetTimeFormat(
const GUID * pFormat);
327 STDMETHODIMP GetTimeFormat(GUID *pFormat);
328 STDMETHODIMP IsUsingTimeFormat(
const GUID * pFormat);
329 STDMETHODIMP IsFormatSupported(
const GUID * pFormat);
330 STDMETHODIMP QueryPreferredFormat( GUID *pFormat);
331 STDMETHODIMP ConvertTimeFormat(LONGLONG * pTarget,
const GUID * pTargetFormat,
332 LONGLONG Source,
const GUID * pSourceFormat );
333 STDMETHODIMP SetPositions( LONGLONG * pCurrent, DWORD CurrentFlags
334 , LONGLONG * pStop, DWORD StopFlags );
336 STDMETHODIMP GetPositions( LONGLONG * pCurrent, LONGLONG * pStop );
337 STDMETHODIMP GetCurrentPosition( LONGLONG * pCurrent );
338 STDMETHODIMP GetStopPosition( LONGLONG * pStop );
339 STDMETHODIMP SetRate(
double dRate);
340 STDMETHODIMP GetRate(
double * pdRate);
341 STDMETHODIMP GetDuration( LONGLONG *pDuration);
342 STDMETHODIMP GetAvailable( LONGLONG *pEarliest, LONGLONG *pLatest );
343 STDMETHODIMP GetPreroll( LONGLONG *pllPreroll );
346 STDMETHODIMP get_Duration(REFTIME * plength);
347 STDMETHODIMP put_CurrentPosition(REFTIME llTime);
348 STDMETHODIMP get_StopTime(REFTIME * pllTime);
349 STDMETHODIMP put_StopTime(REFTIME llTime);
350 STDMETHODIMP get_PrerollTime(REFTIME * pllTime);
351 STDMETHODIMP put_PrerollTime(REFTIME llTime);
352 STDMETHODIMP get_Rate(
double * pdRate);
353 STDMETHODIMP put_Rate(
double dRate);
354 STDMETHODIMP get_CurrentPosition(REFTIME * pllTime);
355 STDMETHODIMP CanSeekForward(LONG *pCanSeekForward);
356 STDMETHODIMP CanSeekBackward(LONG *pCanSeekBackward);
359 HRESULT GetSeekingLongLong( HRESULT (__stdcall IMediaSeeking::*pMethod)( LONGLONG * ),
369 LONGLONG m_StartMedia;
378 HRESULT RegisterMediaTime(IMediaSample *pMediaSample);
379 HRESULT RegisterMediaTime(LONGLONG StartTime,LONGLONG EndTime);
380 HRESULT GetMediaTime(LONGLONG *pStartTime,LONGLONG *pEndTime);
381 HRESULT ResetMediaTime();
385 STDAPI CreatePosPassThru(
389 IUnknown **ppPassThru
406 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
409 STDMETHODIMP GetTypeInfoCount(UINT * pctinfo);
411 STDMETHODIMP GetTypeInfo(
414 ITypeInfo ** pptinfo);
416 STDMETHODIMP GetIDsOfNames(
418 OLECHAR ** rgszNames,
428 DISPPARAMS * pdispparams,
429 VARIANT * pvarResult,
430 EXCEPINFO * pexcepinfo,
449 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
452 STDMETHODIMP GetTypeInfoCount(UINT * pctinfo);
454 STDMETHODIMP GetTypeInfo(
457 ITypeInfo ** pptinfo);
459 STDMETHODIMP GetIDsOfNames(
461 OLECHAR ** rgszNames,
471 DISPPARAMS * pdispparams,
472 VARIANT * pvarResult,
473 EXCEPINFO * pexcepinfo,
476 STDMETHODIMP GetPreferredAspectRatio(
499 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
502 STDMETHODIMP GetTypeInfoCount(UINT * pctinfo);
504 STDMETHODIMP GetTypeInfo(
507 ITypeInfo ** pptinfo);
509 STDMETHODIMP GetIDsOfNames(
511 OLECHAR ** rgszNames,
521 DISPPARAMS * pdispparams,
522 VARIANT * pvarResult,
523 EXCEPINFO * pexcepinfo,
540 STDMETHODIMP get_Duration(REFTIME * plength);
541 STDMETHODIMP put_CurrentPosition(REFTIME llTime);
542 STDMETHODIMP get_StopTime(REFTIME * pllTime);
543 STDMETHODIMP put_StopTime(REFTIME llTime);
544 STDMETHODIMP get_PrerollTime(REFTIME * pllTime);
545 STDMETHODIMP put_PrerollTime(REFTIME llTime);
546 STDMETHODIMP get_Rate(
double * pdRate);
547 STDMETHODIMP put_Rate(
double dRate);
548 STDMETHODIMP CanSeekForward(LONG *pCanSeekForward);
549 STDMETHODIMP CanSeekBackward(LONG *pCanSeekBackward);
552 STDMETHODIMP get_CurrentPosition(REFTIME * pllTime) {
559 virtual HRESULT ChangeStart() PURE;
560 virtual HRESULT ChangeStop() PURE;
561 virtual HRESULT ChangeRate() PURE;
572 public IMediaSeeking,
579 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
583 STDMETHODIMP IsFormatSupported(
const GUID * pFormat);
584 STDMETHODIMP QueryPreferredFormat(GUID *pFormat);
585 STDMETHODIMP SetTimeFormat(
const GUID * pFormat);
586 STDMETHODIMP IsUsingTimeFormat(
const GUID * pFormat);
587 STDMETHODIMP GetTimeFormat(GUID *pFormat);
588 STDMETHODIMP GetDuration(LONGLONG *pDuration);
589 STDMETHODIMP GetStopPosition(LONGLONG *pStop);
590 STDMETHODIMP GetCurrentPosition(LONGLONG *pCurrent);
591 STDMETHODIMP GetCapabilities( DWORD * pCapabilities );
592 STDMETHODIMP CheckCapabilities( DWORD * pCapabilities );
593 STDMETHODIMP ConvertTimeFormat( LONGLONG * pTarget,
const GUID * pTargetFormat,
594 LONGLONG Source,
const GUID * pSourceFormat );
596 STDMETHODIMP SetPositions( LONGLONG * pCurrent, DWORD CurrentFlags
597 , LONGLONG * pStop, DWORD StopFlags );
599 STDMETHODIMP GetPositions( LONGLONG * pCurrent, LONGLONG * pStop );
601 STDMETHODIMP GetAvailable( LONGLONG * pEarliest, LONGLONG * pLatest );
602 STDMETHODIMP SetRate(
double dRate);
603 STDMETHODIMP GetRate(
double * pdRate);
604 STDMETHODIMP GetPreroll(LONGLONG *pPreroll);
613 virtual HRESULT ChangeStart() PURE;
614 virtual HRESULT ChangeStop() PURE;
615 virtual HRESULT ChangeRate() PURE;
620 double m_dRateSeeking;
623 DWORD m_dwSeekingCaps;
654 CDispParams(UINT nArgs, VARIANT* pArgs, HRESULT *phr = NULL);
667 public IDeferredCommand
675 LPUNKNOWN pUnkExecutor,
681 VARIANT* pDispParams,
690 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,
void **ppv);
693 STDMETHODIMP Cancel();
694 STDMETHODIMP Confidence(
696 STDMETHODIMP Postpone(
698 STDMETHODIMP GetHResult(
708 BOOL IsStreamTime() {
721 return m_dispidMethod;
728 DISPPARAMS* GetParams() {
729 return &m_DispParams;
732 VARIANT* GetResult() {
744 REFERENCE_TIME m_time;
748 VARIANT* m_pvarResult;
783 VARIANT* pDispParams,
831 virtual HRESULT SetSyncSource(IReferenceClock*);
834 virtual HRESULT Run(REFERENCE_TIME tStreamTimeOffset);
837 virtual HRESULT EndRun();
850 HANDLE GetDueHandle() {
851 return HANDLE(m_evDue);
861 virtual HRESULT GetCommandDueFor(REFERENCE_TIME tStream,
CDeferredCommand**ppCmd);
864 BOOL CheckTime(
CRefTime time, BOOL bStream) {
879 time += m_StreamTimeOffset;
883 m_pClock->GetTime((REFERENCE_TIME*)&Now);
884 return (time <= Now);
902 void SetTimeAdvise(
void);
905 DWORD_PTR m_dwAdvise;
911 IReferenceClock* m_pClock;
920 #endif // __CTLUTIL__ Definition: ctlutil.h:665
Definition: combase.h:201
Definition: ctlutil.h:395
Definition: ctlutil.h:533
Definition: ctlutil.h:300
Definition: ctlutil.h:651
Definition: ctlutil.h:366
Definition: ctlutil.h:765
Definition: ctlutil.h:571
Definition: ctlutil.h:488
Definition: ctlutil.h:187
Definition: ctlutil.h:438