- friend class VLCMessages;
- friend class VLCMessageIterator;
-
- VLCLog(VLCPlugin *p_instance) :
- _p_log(NULL),
- _p_instance(p_instance),
- _p_typeinfo(NULL),
- _p_vlcmessages(NULL)
- {
- _p_vlcmessages = new VLCMessages(p_instance, this);
- };
- virtual ~VLCLog();
-
- // IUnknown methods
- STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
- {
- if( NULL == ppv )
- return E_POINTER;
- if( (IID_IUnknown == riid)
- || (IID_IDispatch == riid)
- || (IID_IVLCLog == 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*);
-
- // IVLCLog methods
- STDMETHODIMP get_messages(IVLCMessages**);
- STDMETHODIMP get_verbosity(long *);
- STDMETHODIMP put_verbosity(long);
-
-protected:
- HRESULT loadTypeInfo();
-
- libvlc_log_t *_p_log;
-
-private:
- VLCPlugin* _p_instance;
- ITypeInfo* _p_typeinfo;
-
- VLCMessages* _p_vlcmessages;