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;
|