-public:
-
- VLCInput(VLCPlugin *p_instance) :
- _p_instance(p_instance), _p_typeinfo(NULL) {};
- virtual ~VLCInput();
-
- // IUnknown methods
- STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
- {
- if( NULL == ppv )
- return E_POINTER;
- if( (IID_IUnknown == riid)
- || (IID_IDispatch == riid)
- || (IID_IVLCInput == riid) )
- {
- AddRef();
- *ppv = reinterpret_cast<LPVOID>(this);
- return NOERROR;
- }
- // behaves as a standalone object
- return E_NOINTERFACE;
- };
-
- STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
- STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
- // IDispatch methods
- STDMETHODIMP GetTypeInfoCount(UINT*);
- STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
- STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
- STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
-
- // IVLCInput methods
- STDMETHODIMP get_length(double*);
- STDMETHODIMP get_position(double*);
- STDMETHODIMP put_position(double);
- STDMETHODIMP get_time(double*);
- STDMETHODIMP put_time(double);
- STDMETHODIMP get_state(long*);
- STDMETHODIMP get_rate(double*);
- STDMETHODIMP put_rate(double);
- STDMETHODIMP get_fps(double*);
- STDMETHODIMP get_hasVout(VARIANT_BOOL*);
-
-protected:
- HRESULT loadTypeInfo();
- HRESULT exception_bridge(libvlc_exception_t *ex);
-