40 ****************************************************************************/ |
40 ****************************************************************************/ |
41 |
41 |
42 #ifndef DIRECTSHOWGLOBAL_H |
42 #ifndef DIRECTSHOWGLOBAL_H |
43 #define DIRECTSHOWGLOBAL_H |
43 #define DIRECTSHOWGLOBAL_H |
44 |
44 |
|
45 #include <QtCore/qglobal.h> |
|
46 |
45 #include <dshow.h> |
47 #include <dshow.h> |
46 |
48 |
47 template <typename T> T *com_cast(IUnknown *unknown) |
49 template <typename T> T *com_cast(IUnknown *unknown, const IID &iid) |
48 { |
50 { |
49 T *iface = 0; |
51 T *iface = 0; |
50 return unknown && unknown->QueryInterface( |
52 return unknown && unknown->QueryInterface(iid, reinterpret_cast<void **>(&iface)) == S_OK |
51 __uuidof(T), reinterpret_cast<void **>(&iface)) == S_OK |
|
52 ? iface |
53 ? iface |
53 : 0; |
54 : 0; |
54 } |
55 } |
55 |
56 |
56 template <typename T> T *com_new(const IID &clsid) |
57 template <typename T> T *com_new(const IID &clsid, const IID &iid) |
57 { |
58 { |
58 T *object = 0; |
59 T *object = 0; |
59 return CoCreateInstance( |
60 return CoCreateInstance( |
60 clsid, |
61 clsid, |
61 NULL, |
62 NULL, |
62 CLSCTX_INPROC_SERVER, |
63 CLSCTX_INPROC_SERVER, |
63 __uuidof(T), |
64 iid, |
64 reinterpret_cast<void **>(&object)) == S_OK |
65 reinterpret_cast<void **>(&object)) == S_OK |
65 ? object |
66 ? object |
66 : 0; |
67 : 0; |
67 } |
68 } |
68 |
69 |
|
70 #ifndef __IFilterGraph2_INTERFACE_DEFINED__ |
|
71 #define __IFilterGraph2_INTERFACE_DEFINED__ |
|
72 #define INTERFACE IFilterGraph2 |
|
73 DECLARE_INTERFACE_(IFilterGraph2 ,IGraphBuilder) |
|
74 { |
|
75 STDMETHOD(AddSourceFilterForMoniker)(THIS_ IMoniker *, IBindCtx *, LPCWSTR,IBaseFilter **) PURE; |
|
76 STDMETHOD(ReconnectEx)(THIS_ IPin *, const AM_MEDIA_TYPE *) PURE; |
|
77 STDMETHOD(RenderEx)(IPin *, DWORD, DWORD *) PURE; |
|
78 }; |
|
79 #undef INTERFACE |
69 #endif |
80 #endif |
|
81 |
|
82 #ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__ |
|
83 #define __IAMFilterMiscFlags_INTERFACE_DEFINED__ |
|
84 #define INTERFACE IAMFilterMiscFlags |
|
85 DECLARE_INTERFACE_(IAMFilterMiscFlags ,IUnknown) |
|
86 { |
|
87 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
|
88 STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
|
89 STDMETHOD_(ULONG,Release)(THIS) PURE; |
|
90 STDMETHOD_(ULONG,GetMiscFlags)(THIS) PURE; |
|
91 }; |
|
92 #undef INTERFACE |
|
93 #endif |
|
94 |
|
95 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__ |
|
96 #define __IFileSourceFilter_INTERFACE_DEFINED__ |
|
97 #define INTERFACE IFileSourceFilter |
|
98 DECLARE_INTERFACE_(IFileSourceFilter ,IUnknown) |
|
99 { |
|
100 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
|
101 STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
|
102 STDMETHOD_(ULONG,Release)(THIS) PURE; |
|
103 STDMETHOD(Load)(THIS_ LPCOLESTR, const AM_MEDIA_TYPE *) PURE; |
|
104 STDMETHOD(GetCurFile)(THIS_ LPOLESTR *ppszFileName, AM_MEDIA_TYPE *) PURE; |
|
105 }; |
|
106 #undef INTERFACE |
|
107 #endif |
|
108 |
|
109 #ifndef __IAMOpenProgress_INTERFACE_DEFINED__ |
|
110 #define __IAMOpenProgress_INTERFACE_DEFINED__ |
|
111 #define INTERFACE IAMOpenProgress |
|
112 DECLARE_INTERFACE_(IAMOpenProgress ,IUnknown) |
|
113 { |
|
114 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
|
115 STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
|
116 STDMETHOD_(ULONG,Release)(THIS) PURE; |
|
117 STDMETHOD(QueryProgress)(THIS_ LONGLONG *, LONGLONG *) PURE; |
|
118 STDMETHOD(AbortOperation)(THIS) PURE; |
|
119 }; |
|
120 #undef INTERFACE |
|
121 #endif |
|
122 |
|
123 #ifndef __IFilterChain_INTERFACE_DEFINED__ |
|
124 #define __IFilterChain_INTERFACE_DEFINED__ |
|
125 #define INTERFACE IFilterChain |
|
126 DECLARE_INTERFACE_(IFilterChain ,IUnknown) |
|
127 { |
|
128 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; |
|
129 STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
|
130 STDMETHOD_(ULONG,Release)(THIS) PURE; |
|
131 STDMETHOD(StartChain)(IBaseFilter *, IBaseFilter *) PURE; |
|
132 STDMETHOD(PauseChain)(IBaseFilter *, IBaseFilter *) PURE; |
|
133 STDMETHOD(StopChain)(IBaseFilter *, IBaseFilter *) PURE; |
|
134 STDMETHOD(RemoveChain)(IBaseFilter *, IBaseFilter *) PURE; |
|
135 }; |
|
136 #undef INTERFACE |
|
137 #endif |
|
138 |
|
139 #endif |