qtmobility/plugins/multimedia/directshow/player/directshowglobal.h
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 11 06b8e2af4411
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
    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