diff options
Diffstat (limited to 'utils/smp/CWMPEventDispatch.h')
| -rw-r--r-- | utils/smp/CWMPEventDispatch.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/utils/smp/CWMPEventDispatch.h b/utils/smp/CWMPEventDispatch.h new file mode 100644 index 0000000..7ceecff --- /dev/null +++ b/utils/smp/CWMPEventDispatch.h @@ -0,0 +1,102 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// CWMPEventDispatch.h : Declaration of the event dispatcher +// + +#pragma once + +#include "stdafx.h" + +// if these files aren't found, set your path to include the wmp sdk include directory +// download the sdk from http://www.microsoft.com/windows/windowsmedia/mp10/sdk.aspx +#include "wmpids.h" +#include "wmp.h" + +class CWMPEventDispatch: + public CComObjectRootEx<CComSingleThreadModel>, + public IWMPEvents, + public _WMPOCXEvents + { +public: + + BEGIN_COM_MAP(CWMPEventDispatch) + COM_INTERFACE_ENTRY(_WMPOCXEvents) + COM_INTERFACE_ENTRY(IWMPEvents) + COM_INTERFACE_ENTRY(IDispatch) + END_COM_MAP() + + // IDispatch methods + STDMETHOD(GetIDsOfNames)( REFIID riid, + OLECHAR FAR *FAR *rgszNames, + unsigned int cNames, + LCID lcid, + DISPID FAR *rgDispId ) + { return( E_NOTIMPL ); } + + STDMETHOD(GetTypeInfo)( unsigned int iTInfo, + LCID lcid, + ITypeInfo FAR *FAR *ppTInfo ) + { return( E_NOTIMPL ); } + + STDMETHOD(GetTypeInfoCount)( unsigned int FAR *pctinfo ) + { + return( E_NOTIMPL ); + } + + STDMETHOD(Invoke)( DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pDispParams, + VARIANT FAR* pVarResult, + EXCEPINFO FAR* pExcepInfo, + unsigned int FAR* puArgErr ); + + // IWMPEvents methods + void STDMETHODCALLTYPE OpenStateChange( long NewState ); + void STDMETHODCALLTYPE PlayStateChange( long NewState ); + void STDMETHODCALLTYPE AudioLanguageChange( long LangID ); + void STDMETHODCALLTYPE StatusChange(); + void STDMETHODCALLTYPE ScriptCommand( BSTR scType, BSTR Param ); + void STDMETHODCALLTYPE NewStream(); + void STDMETHODCALLTYPE Disconnect( long Result ); + void STDMETHODCALLTYPE Buffering( VARIANT_BOOL Start ); + void STDMETHODCALLTYPE Error(); + void STDMETHODCALLTYPE Warning( long WarningType, long Param, BSTR Description ); + void STDMETHODCALLTYPE EndOfStream( long Result ); + void STDMETHODCALLTYPE PositionChange( double oldPosition, double newPosition); + void STDMETHODCALLTYPE MarkerHit( long MarkerNum ); + void STDMETHODCALLTYPE DurationUnitChange( long NewDurationUnit ); + void STDMETHODCALLTYPE CdromMediaChange( long CdromNum ); + void STDMETHODCALLTYPE PlaylistChange( IDispatch * Playlist, WMPPlaylistChangeEventType change ); + void STDMETHODCALLTYPE CurrentPlaylistChange( WMPPlaylistChangeEventType change ); + void STDMETHODCALLTYPE CurrentPlaylistItemAvailable( BSTR bstrItemName ); + void STDMETHODCALLTYPE MediaChange( IDispatch * Item ); + void STDMETHODCALLTYPE CurrentMediaItemAvailable( BSTR bstrItemName ); + void STDMETHODCALLTYPE CurrentItemChange( IDispatch *pdispMedia); + void STDMETHODCALLTYPE MediaCollectionChange(); + void STDMETHODCALLTYPE MediaCollectionAttributeStringAdded( BSTR bstrAttribName, BSTR bstrAttribVal ); + void STDMETHODCALLTYPE MediaCollectionAttributeStringRemoved( BSTR bstrAttribName, BSTR bstrAttribVal ); + void STDMETHODCALLTYPE MediaCollectionAttributeStringChanged( BSTR bstrAttribName, BSTR bstrOldAttribVal, BSTR bstrNewAttribVal); + void STDMETHODCALLTYPE PlaylistCollectionChange(); + void STDMETHODCALLTYPE PlaylistCollectionPlaylistAdded( BSTR bstrPlaylistName); + void STDMETHODCALLTYPE PlaylistCollectionPlaylistRemoved( BSTR bstrPlaylistName); + void STDMETHODCALLTYPE PlaylistCollectionPlaylistSetAsDeleted( BSTR bstrPlaylistName, VARIANT_BOOL varfIsDeleted); + void STDMETHODCALLTYPE ModeChange( BSTR ModeName, VARIANT_BOOL NewValue); + void STDMETHODCALLTYPE MediaError( IDispatch * pMediaObject); + void STDMETHODCALLTYPE OpenPlaylistSwitch( IDispatch *pItem ); + void STDMETHODCALLTYPE DomainChange( BSTR strDomain); + void STDMETHODCALLTYPE SwitchedToPlayerApplication(); + void STDMETHODCALLTYPE SwitchedToControl(); + void STDMETHODCALLTYPE PlayerDockedStateChange(); + void STDMETHODCALLTYPE PlayerReconnect(); + void STDMETHODCALLTYPE Click( short nButton, short nShiftState, long fX, long fY ); + void STDMETHODCALLTYPE DoubleClick( short nButton, short nShiftState, long fX, long fY ); + void STDMETHODCALLTYPE KeyDown( short nKeyCode, short nShiftState ); + void STDMETHODCALLTYPE KeyPress( short nKeyAscii ); + void STDMETHODCALLTYPE KeyUp( short nKeyCode, short nShiftState ); + void STDMETHODCALLTYPE MouseDown( short nButton, short nShiftState, long fX, long fY ); + void STDMETHODCALLTYPE MouseMove( short nButton, short nShiftState, long fX, long fY ); + void STDMETHODCALLTYPE MouseUp( short nButton, short nShiftState, long fX, long fY ); +}; + +typedef CComObject<CWMPEventDispatch> CComWMPEventDispatch;
\ No newline at end of file |