You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
4.9 KiB
102 lines
4.9 KiB
//========= 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; |