42 __deref_out ITypeInfo ** pptinfo);
46 __in_ecount(cNames) LPOLESTR * rgszNames,
49 __out_ecount(cNames) DISPID * rgdispid);
69 STDMETHODIMP GetTypeInfoCount(__out UINT * pctinfo);
71 STDMETHODIMP GetTypeInfo(
74 __deref_out ITypeInfo ** pptinfo);
76 STDMETHODIMP GetIDsOfNames(
78 __in_ecount(cNames) LPOLESTR * rgszNames,
81 __out_ecount(cNames) DISPID * rgdispid);
88 __in DISPPARAMS * pdispparams,
89 __out_opt VARIANT * pvarResult,
90 __out_opt EXCEPINFO * pexcepinfo,
91 __out_opt UINT * puArgErr);
111 STDMETHODIMP GetTypeInfoCount(__out UINT * pctinfo);
113 STDMETHODIMP GetTypeInfo(
116 __deref_out ITypeInfo ** pptinfo);
118 STDMETHODIMP GetIDsOfNames(
120 __in_ecount(cNames) LPOLESTR * rgszNames,
123 __out_ecount(cNames) DISPID * rgdispid);
130 __in DISPPARAMS * pdispparams,
131 __out_opt VARIANT * pvarResult,
132 __out_opt EXCEPINFO * pexcepinfo,
133 __out_opt UINT * puArgErr);
138 public IMediaPosition,
147 CMediaPosition(__in_opt LPCTSTR, __in_opt LPUNKNOWN, __inout HRESULT *phr);
155 STDMETHODIMP GetTypeInfoCount(__out UINT * pctinfo);
157 STDMETHODIMP GetTypeInfo(
160 __deref_out ITypeInfo ** pptinfo);
162 STDMETHODIMP GetIDsOfNames(
164 __in_ecount(cNames) LPOLESTR * rgszNames,
167 __out_ecount(cNames) DISPID * rgdispid);
174 __in DISPPARAMS * pdispparams,
175 __out_opt VARIANT * pvarResult,
176 __out_opt EXCEPINFO * pexcepinfo,
177 __out_opt UINT * puArgErr);
203 m_time = (LONGLONG) (d * 10000000);
207 return double(
m_time) / 10000000;
210 operator REFERENCE_TIME() {
215 m_time = (LONGLONG) (rd * 10000000);
303 HRESULT GetPeer(__deref_out IMediaPosition **ppMP);
304 HRESULT GetPeerSeeking(__deref_out IMediaSeeking **ppMS);
308 CPosPassThru(__in_opt LPCTSTR, __in_opt LPUNKNOWN, __inout HRESULT*, IPin *);
316 virtual HRESULT
GetMediaTime(__out LONGLONG *pStartTime, __out_opt LONGLONG *pEndTime) {
331 __in_opt
const GUID * pTargetFormat,
333 __in_opt
const GUID * pSourceFormat );
334 STDMETHODIMP
SetPositions( __inout_opt LONGLONG * pCurrent, DWORD CurrentFlags
335 , __inout_opt LONGLONG * pStop, DWORD StopFlags );
337 STDMETHODIMP
GetPositions( __out_opt LONGLONG * pCurrent, __out_opt LONGLONG * pStop );
340 STDMETHODIMP
SetRate(
double dRate);
341 STDMETHODIMP
GetRate( __out
double * pdRate);
342 STDMETHODIMP
GetDuration( __out LONGLONG *pDuration);
343 STDMETHODIMP
GetAvailable( __out_opt LONGLONG *pEarliest, __out_opt LONGLONG *pLatest );
344 STDMETHODIMP
GetPreroll( __out LONGLONG *pllPreroll );
353 STDMETHODIMP
get_Rate(__out
double * pdRate);
354 STDMETHODIMP
put_Rate(
double dRate);
360 HRESULT GetSeekingLongLong( HRESULT (__stdcall IMediaSeeking::*pMethod)( LONGLONG * ),
361 __out LONGLONG * pll );
370 LONGLONG m_StartMedia;
381 HRESULT
GetMediaTime(__out LONGLONG *pStartTime,__out_opt LONGLONG *pEndTime);
387 __in_opt LPUNKNOWN pAgg,
390 __deref_out IUnknown **ppPassThru
410 STDMETHODIMP GetTypeInfoCount(__out UINT * pctinfo);
412 STDMETHODIMP GetTypeInfo(
415 __deref_out ITypeInfo ** pptinfo);
417 STDMETHODIMP GetIDsOfNames(
419 __in_ecount(cNames) LPOLESTR * rgszNames,
422 __out_ecount(cNames) DISPID * rgdispid);
429 __in DISPPARAMS * pdispparams,
430 __out_opt VARIANT * pvarResult,
431 __out_opt EXCEPINFO * pexcepinfo,
432 __out_opt UINT * puArgErr);
453 STDMETHODIMP GetTypeInfoCount(__out UINT * pctinfo);
455 STDMETHODIMP GetTypeInfo(
458 __deref_out ITypeInfo ** pptinfo);
460 STDMETHODIMP GetIDsOfNames(
462 __in_ecount(cNames) LPOLESTR * rgszNames,
465 __out_ecount(cNames) DISPID * rgdispid);
472 __in DISPPARAMS * pdispparams,
473 __out_opt VARIANT * pvarResult,
474 __out_opt EXCEPINFO * pexcepinfo,
475 __out_opt UINT * puArgErr);
478 __out
long *plAspectX,
479 __out
long *plAspectY)
503 STDMETHODIMP GetTypeInfoCount(__out UINT * pctinfo);
505 STDMETHODIMP GetTypeInfo(
508 __deref_out ITypeInfo ** pptinfo);
510 STDMETHODIMP GetIDsOfNames(
512 __in_ecount(cNames) LPOLESTR * rgszNames,
515 __out_ecount(cNames) DISPID * rgdispid);
522 __in DISPPARAMS * pdispparams,
523 __out_opt VARIANT * pvarResult,
524 __out_opt EXCEPINFO * pexcepinfo,
525 __out_opt UINT * puArgErr);
541 STDMETHODIMP get_Duration(__out REFTIME * plength);
542 STDMETHODIMP put_CurrentPosition(REFTIME llTime);
543 STDMETHODIMP get_StopTime(__out REFTIME * pllTime);
544 STDMETHODIMP put_StopTime(REFTIME llTime);
545 STDMETHODIMP get_PrerollTime(__out REFTIME * pllTime);
546 STDMETHODIMP put_PrerollTime(REFTIME llTime);
547 STDMETHODIMP get_Rate(__out
double * pdRate);
548 STDMETHODIMP put_Rate(
double dRate);
549 STDMETHODIMP CanSeekForward(__out LONG *pCanSeekForward);
550 STDMETHODIMP CanSeekBackward(__out LONG *pCanSeekBackward);
560 virtual HRESULT ChangeStart() PURE;
561 virtual HRESULT ChangeStop() PURE;
562 virtual HRESULT ChangeRate() PURE;
573 public IMediaSeeking,
584 STDMETHODIMP IsFormatSupported(
const GUID * pFormat);
585 STDMETHODIMP QueryPreferredFormat(__out GUID *pFormat);
586 STDMETHODIMP SetTimeFormat(
const GUID * pFormat);
587 STDMETHODIMP IsUsingTimeFormat(
const GUID * pFormat);
588 STDMETHODIMP GetTimeFormat(__out GUID *pFormat);
589 STDMETHODIMP GetDuration(__out LONGLONG *pDuration);
590 STDMETHODIMP GetStopPosition(__out LONGLONG *pStop);
591 STDMETHODIMP GetCurrentPosition(__out LONGLONG *pCurrent);
592 STDMETHODIMP GetCapabilities( __out DWORD * pCapabilities );
593 STDMETHODIMP CheckCapabilities( __inout DWORD * pCapabilities );
594 STDMETHODIMP ConvertTimeFormat( __out LONGLONG * pTarget,
595 __in_opt
const GUID * pTargetFormat,
597 __in_opt
const GUID * pSourceFormat );
599 STDMETHODIMP SetPositions( __inout_opt LONGLONG * pCurrent, DWORD CurrentFlags
600 , __inout_opt LONGLONG * pStop, DWORD StopFlags );
602 STDMETHODIMP GetPositions( __out_opt LONGLONG * pCurrent, __out_opt LONGLONG * pStop );
604 STDMETHODIMP GetAvailable( __out_opt LONGLONG * pEarliest, __out_opt LONGLONG * pLatest );
605 STDMETHODIMP SetRate(
double dRate);
606 STDMETHODIMP GetRate( __out
double * pdRate);
607 STDMETHODIMP GetPreroll(__out LONGLONG *pPreroll);
616 virtual HRESULT ChangeStart() PURE;
617 virtual HRESULT ChangeStop() PURE;
618 virtual HRESULT ChangeRate() PURE;
623 double m_dRateSeeking;
626 DWORD m_dwSeekingCaps;
657 CDispParams(UINT nArgs, __in_ecount(nArgs) VARIANT* pArgs, __inout_opt HRESULT *phr =
NULL);
670 public IDeferredCommand
676 __in_opt LPUNKNOWN pUnk,
677 __inout HRESULT * phr,
678 __in LPUNKNOWN pUnkExecutor,
684 __in_ecount(cArgs) VARIANT* pDispParams,
685 __out VARIANT* pvarResult,
686 __out
short* puArgErr,
693 STDMETHODIMP NonDelegatingQueryInterface(REFIID
riid, __out
void **ppv);
696 STDMETHODIMP Cancel();
697 STDMETHODIMP Confidence(
698 __out LONG* pConfidence);
699 STDMETHODIMP Postpone(
701 STDMETHODIMP GetHResult(
702 __out HRESULT* phrResult);
724 return m_dispidMethod;
732 return &m_DispParams;
786 __in_ecount(cArgs) VARIANT* pDispParams,
787 __out VARIANT* pvarResult,
788 __out
short* puArgErr,
834 virtual HRESULT SetSyncSource(__in_opt IReferenceClock*);
837 virtual HRESULT Run(REFERENCE_TIME tStreamTimeOffset);
840 virtual HRESULT EndRun();
848 virtual HRESULT GetDueCommand(__out
CDeferredCommand ** ppCmd,
long msTimeout);
864 virtual HRESULT GetCommandDueFor(REFERENCE_TIME tStream, __out
CDeferredCommand**ppCmd);
882 time += m_StreamTimeOffset;
886 m_pClock->GetTime((REFERENCE_TIME*)&Now);
887 return (time <= Now);
905 void SetTimeAdvise(
void);
923 #endif // __CTLUTIL__