summaryrefslogtreecommitdiff
path: root/utils/smp/CWMPEventDispatch.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/smp/CWMPEventDispatch.h')
-rw-r--r--utils/smp/CWMPEventDispatch.h102
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