Commit df9f30c2 authored by JP Dinger's avatar JP Dinger

And do the same exception packing for the old activex interface.

parent 6610397f
This diff is collapsed.
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with this program; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/ *****************************************************************************/
#ifndef _VLCCONTROL_H_ #ifndef _VLCCONTROL_H_
...@@ -29,7 +29,8 @@ class VLCControl : public IVLCControl ...@@ -29,7 +29,8 @@ class VLCControl : public IVLCControl
{ {
public: public:
VLCControl(VLCPlugin *p_instance) : _p_instance(p_instance), _p_typeinfo(NULL) {}; VLCControl(VLCPlugin *p_instance):
_p_instance(p_instance), _p_typeinfo(NULL) { }
virtual ~VLCControl(); virtual ~VLCControl();
// IUnknown methods // IUnknown methods
...@@ -46,10 +47,12 @@ public: ...@@ -46,10 +47,12 @@ public:
return NOERROR; return NOERROR;
} }
return _p_instance->pUnkOuter->QueryInterface(riid, ppv); return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
}; }
STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); }; STDMETHODIMP_(ULONG) AddRef(void)
STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); }; { return _p_instance->pUnkOuter->AddRef(); }
STDMETHODIMP_(ULONG) Release(void)
{ return _p_instance->pUnkOuter->Release(); }
// IDispatch methods // IDispatch methods
STDMETHODIMP GetTypeInfoCount(UINT*); STDMETHODIMP GetTypeInfoCount(UINT*);
...@@ -98,6 +101,15 @@ public: ...@@ -98,6 +101,15 @@ public:
private: private:
HRESULT getTypeInfo(); HRESULT getTypeInfo();
HRESULT exception_bridge(libvlc_exception_t *ex)
{
if( ! libvlc_exception_raised(ex) )
return NOERROR;
_p_instance->setErrorInfo(IID_IVLCControl,
libvlc_exception_get_message(ex));
libvlc_exception_clear(ex);
return E_FAIL;
}
VLCPlugin *_p_instance; VLCPlugin *_p_instance;
ITypeInfo *_p_typeinfo; ITypeInfo *_p_typeinfo;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment