2025-11-28 00:35:46 +09:00

481 lines
14 KiB
C++

// CWMPEventDispatch.cpp : Implementation of the event dispatcher
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
#include "CWMPEventDispatch.h"
HRESULT CWMPEventDispatch::Invoke(
DISPID dispIdMember,
REFIID /*riid*/,
LCID /*lcid*/,
WORD /*wFlags*/,
DISPPARAMS FAR* pDispParams,
VARIANT FAR* /*pVarResult*/,
EXCEPINFO FAR* /*pExcepInfo*/,
unsigned int FAR* /*puArgErr*/ )
{
if (!pDispParams)
return E_POINTER;
if (pDispParams->cNamedArgs != 0)
return DISP_E_NONAMEDARGS;
HRESULT hr = DISP_E_MEMBERNOTFOUND;
switch (dispIdMember)
{
case DISPID_WMPCOREEVENT_OPENSTATECHANGE:
OpenStateChange(pDispParams->rgvarg[0].lVal /* NewState */ );
break;
case DISPID_WMPCOREEVENT_PLAYSTATECHANGE:
PlayStateChange(pDispParams->rgvarg[0].lVal /* NewState */);
break;
case DISPID_WMPCOREEVENT_AUDIOLANGUAGECHANGE:
AudioLanguageChange(pDispParams->rgvarg[0].lVal /* LangID */);
break;
case DISPID_WMPCOREEVENT_STATUSCHANGE:
StatusChange();
break;
case DISPID_WMPCOREEVENT_SCRIPTCOMMAND:
ScriptCommand(pDispParams->rgvarg[1].bstrVal /* scType */, pDispParams->rgvarg[0].bstrVal /* Param */ );
break;
case DISPID_WMPCOREEVENT_NEWSTREAM:
NewStream();
break;
case DISPID_WMPCOREEVENT_DISCONNECT:
Disconnect(pDispParams->rgvarg[0].lVal /* Result */ );
break;
case DISPID_WMPCOREEVENT_BUFFERING:
Buffering(pDispParams->rgvarg[0].boolVal /* Start */);
break;
case DISPID_WMPCOREEVENT_ERROR:
Error();
break;
case DISPID_WMPCOREEVENT_WARNING:
Warning(pDispParams->rgvarg[1].lVal /* WarningType */, pDispParams->rgvarg[0].lVal /* Param */, pDispParams->rgvarg[2].bstrVal /* Description */);
break;
case DISPID_WMPCOREEVENT_ENDOFSTREAM:
EndOfStream(pDispParams->rgvarg[0].lVal /* Result */ );
break;
case DISPID_WMPCOREEVENT_POSITIONCHANGE:
PositionChange(pDispParams->rgvarg[1].dblVal /* oldPosition */, pDispParams->rgvarg[0].dblVal /* newPosition */);
break;
case DISPID_WMPCOREEVENT_MARKERHIT:
MarkerHit(pDispParams->rgvarg[0].lVal /* MarkerNum */);
break;
case DISPID_WMPCOREEVENT_DURATIONUNITCHANGE:
DurationUnitChange(pDispParams->rgvarg[0].lVal /* NewDurationUnit */);
break;
case DISPID_WMPCOREEVENT_CDROMMEDIACHANGE:
CdromMediaChange(pDispParams->rgvarg[0].lVal /* CdromNum */);
break;
case DISPID_WMPCOREEVENT_PLAYLISTCHANGE:
PlaylistChange(pDispParams->rgvarg[1].pdispVal /* Playlist */, (WMPPlaylistChangeEventType) pDispParams->rgvarg[0].lVal /* change */);
break;
case DISPID_WMPCOREEVENT_CURRENTPLAYLISTCHANGE:
CurrentPlaylistChange((WMPPlaylistChangeEventType) pDispParams->rgvarg[0].lVal /* change */);
break;
case DISPID_WMPCOREEVENT_CURRENTPLAYLISTITEMAVAILABLE:
CurrentPlaylistItemAvailable(pDispParams->rgvarg[0].bstrVal /* bstrItemName */);
break;
case DISPID_WMPCOREEVENT_MEDIACHANGE:
MediaChange(pDispParams->rgvarg[0].pdispVal /* Item */);
break;
case DISPID_WMPCOREEVENT_CURRENTMEDIAITEMAVAILABLE:
CurrentMediaItemAvailable(pDispParams->rgvarg[0].bstrVal /* bstrItemName */);
break;
case DISPID_WMPCOREEVENT_CURRENTITEMCHANGE:
CurrentItemChange(pDispParams->rgvarg[0].pdispVal /* pdispMedia */);
break;
case DISPID_WMPCOREEVENT_MEDIACOLLECTIONCHANGE:
MediaCollectionChange();
break;
case DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGADDED:
MediaCollectionAttributeStringAdded(pDispParams->rgvarg[1].bstrVal /* bstrAttribName */, pDispParams->rgvarg[0].bstrVal /* bstrAttribVal */ );
break;
case DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED:
MediaCollectionAttributeStringRemoved(pDispParams->rgvarg[1].bstrVal /* bstrAttribName */, pDispParams->rgvarg[0].bstrVal /* bstrAttribVal */ );
break;
case DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED:
MediaCollectionAttributeStringChanged(pDispParams->rgvarg[2].bstrVal /* bstrAttribName */, pDispParams->rgvarg[1].bstrVal /* bstrOldAttribVal */, pDispParams->rgvarg[0].bstrVal /* bstrNewAttribVal */);
break;
case DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONCHANGE:
PlaylistCollectionChange();
break;
case DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTADDED:
PlaylistCollectionPlaylistAdded(pDispParams->rgvarg[0].bstrVal /* bstrPlaylistName */ );
break;
case DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTREMOVED:
PlaylistCollectionPlaylistRemoved(pDispParams->rgvarg[0].bstrVal /* bstrPlaylistName */ );
break;
case DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED:
PlaylistCollectionPlaylistSetAsDeleted(pDispParams->rgvarg[1].bstrVal /* bstrPlaylistName */, pDispParams->rgvarg[0].boolVal /* varfIsDeleted */);
break;
case DISPID_WMPCOREEVENT_MODECHANGE:
ModeChange(pDispParams->rgvarg[1].bstrVal /* ModeName */, pDispParams->rgvarg[0].boolVal /* NewValue */);
break;
case DISPID_WMPCOREEVENT_MEDIAERROR:
MediaError(pDispParams->rgvarg[0].pdispVal /* pMediaObject */);
break;
case DISPID_WMPCOREEVENT_OPENPLAYLISTSWITCH:
OpenPlaylistSwitch(pDispParams->rgvarg[0].pdispVal /* pItem */);
break;
case DISPID_WMPCOREEVENT_DOMAINCHANGE:
DomainChange(pDispParams->rgvarg[0].bstrVal /* bstrDomain */);
break;
case DISPID_WMPOCXEVENT_SWITCHEDTOPLAYERAPPLICATION:
SwitchedToPlayerApplication();
break;
case DISPID_WMPOCXEVENT_SWITCHEDTOCONTROL:
SwitchedToControl();
break;
case DISPID_WMPOCXEVENT_PLAYERDOCKEDSTATECHANGE:
PlayerDockedStateChange();
break;
case DISPID_WMPOCXEVENT_PLAYERRECONNECT:
PlayerReconnect();
break;
case DISPID_WMPOCXEVENT_CLICK:
Click(pDispParams->rgvarg[3].iVal /* nButton */, pDispParams->rgvarg[2].iVal /* nShiftState */, pDispParams->rgvarg[1].lVal /* fX */, pDispParams->rgvarg[0].lVal /* fY */);
break;
case DISPID_WMPOCXEVENT_DOUBLECLICK:
DoubleClick(pDispParams->rgvarg[3].iVal /* nButton */, pDispParams->rgvarg[2].iVal /* nShiftState */, pDispParams->rgvarg[1].lVal /* fX */, pDispParams->rgvarg[0].lVal /* fY */);
break;
case DISPID_WMPOCXEVENT_KEYDOWN:
KeyDown(pDispParams->rgvarg[1].iVal /* nKeyCode */, pDispParams->rgvarg[0].iVal /* nShiftState */);
break;
case DISPID_WMPOCXEVENT_KEYPRESS:
KeyPress(pDispParams->rgvarg[0].iVal /* nKeyAscii */);
break;
case DISPID_WMPOCXEVENT_KEYUP:
KeyUp(pDispParams->rgvarg[1].iVal /* nKeyCode */, pDispParams->rgvarg[0].iVal /* nShiftState */);
break;
case DISPID_WMPOCXEVENT_MOUSEDOWN:
MouseDown(pDispParams->rgvarg[3].iVal /* nButton */, pDispParams->rgvarg[2].iVal /* nShiftState */, pDispParams->rgvarg[1].lVal /* fX */, pDispParams->rgvarg[0].lVal /* fY */);
break;
case DISPID_WMPOCXEVENT_MOUSEMOVE:
MouseMove(pDispParams->rgvarg[3].iVal /* nButton */, pDispParams->rgvarg[2].iVal /* nShiftState */, pDispParams->rgvarg[1].lVal /* fX */, pDispParams->rgvarg[0].lVal /* fY */);
break;
case DISPID_WMPOCXEVENT_MOUSEUP:
MouseUp(pDispParams->rgvarg[3].iVal /* nButton */, pDispParams->rgvarg[2].iVal /* nShiftState */, pDispParams->rgvarg[1].lVal /* fX */, pDispParams->rgvarg[0].lVal /* fY */);
break;
}
return( hr );
}
// Sent when the control changes OpenState
void CWMPEventDispatch::OpenStateChange(long /*NewState*/)
{
return;
}
// Sent when the control changes PlayState
void CWMPEventDispatch::PlayStateChange(long /*NewState*/)
{
return;
}
// Sent when the audio language changes
void CWMPEventDispatch::AudioLanguageChange(long /*LangID*/)
{
return;
}
// Sent when the status string changes
void CWMPEventDispatch::StatusChange()
{
return;
}
// Sent when a synchronized command or URL is received
void CWMPEventDispatch::ScriptCommand(BSTR /*scType*/, BSTR /*Param*/)
{
return;
}
// Sent when a new stream is encountered (obsolete)
void CWMPEventDispatch::NewStream()
{
return;
}
// Sent when the control is disconnected from the server (obsolete)
void CWMPEventDispatch:: Disconnect(long /*Result*/ )
{
return;
}
// Sent when the control begins or ends buffering
void CWMPEventDispatch:: Buffering(VARIANT_BOOL /*Start*/)
{
return;
}
// Sent when the control has an error condition
void CWMPEventDispatch::Error()
{
return;
}
// Sent when the control has an warning condition (obsolete)
void CWMPEventDispatch::Warning(long /*WarningType*/, long /*Param*/, BSTR /*Description*/)
{
return;
}
// Sent when the media has reached end of stream
void CWMPEventDispatch::EndOfStream(long /*Result*/)
{
return;
}
// Indicates that the current position of the movie has changed
void CWMPEventDispatch::PositionChange(double /*oldPosition*/, double /*newPosition*/)
{
return;
}
// Sent when a marker is reached
void CWMPEventDispatch::MarkerHit(long /*MarkerNum*/ )
{
return;
}
// Indicates that the unit used to express duration and position has changed
void CWMPEventDispatch::DurationUnitChange(long /*NewDurationUnit*/)
{
return;
}
// Indicates that the CD ROM media has changed
void CWMPEventDispatch::CdromMediaChange(long /*CdromNum*/)
{
return;
}
// Sent when a playlist changes
void CWMPEventDispatch::PlaylistChange(IDispatch * /*Playlist*/, WMPPlaylistChangeEventType /*change*/)
{
return;
}
// Sent when the current playlist changes
void CWMPEventDispatch::CurrentPlaylistChange(WMPPlaylistChangeEventType /*change*/ )
{
return;
}
// Sent when a current playlist item becomes available
void CWMPEventDispatch::CurrentPlaylistItemAvailable(BSTR /*bstrItemName*/)
{
return;
}
// Sent when a media object changes
void CWMPEventDispatch::MediaChange(IDispatch * /*Item*/)
{
return;
}
// Sent when a current media item becomes available
void CWMPEventDispatch::CurrentMediaItemAvailable(BSTR /*bstrItemName*/)
{
return;
}
// Sent when the item selection on the current playlist changes
void CWMPEventDispatch::CurrentItemChange(IDispatch * /*pdispMedia*/)
{
return;
}
// Sent when the media collection needs to be requeried
void CWMPEventDispatch::MediaCollectionChange()
{
return;
}
// Sent when an attribute string is added in the media collection
void CWMPEventDispatch::MediaCollectionAttributeStringAdded(BSTR /*bstrAttribName*/, BSTR /*bstrAttribVal*/)
{
return;
}
// Sent when an attribute string is removed from the media collection
void CWMPEventDispatch::MediaCollectionAttributeStringRemoved(BSTR /*bstrAttribName*/, BSTR /*bstrAttribVal*/)
{
return;
}
// Sent when an attribute string is changed in the media collection
void CWMPEventDispatch::MediaCollectionAttributeStringChanged(BSTR /*bstrAttribName*/, BSTR /*bstrOldAttribVal*/, BSTR /*bstrNewAttribVal*/)
{
return;
}
// Sent when playlist collection needs to be requeried
void CWMPEventDispatch::PlaylistCollectionChange()
{
return;
}
// Sent when a playlist is added to the playlist collection
void CWMPEventDispatch::PlaylistCollectionPlaylistAdded(BSTR /*bstrPlaylistName*/)
{
return;
}
// Sent when a playlist is removed from the playlist collection
void CWMPEventDispatch::PlaylistCollectionPlaylistRemoved(BSTR /*bstrPlaylistName*/)
{
return;
}
// Sent when a playlist has been set or reset as deleted
void CWMPEventDispatch::PlaylistCollectionPlaylistSetAsDeleted(BSTR /*bstrPlaylistName*/, VARIANT_BOOL /*varfIsDeleted*/)
{
return;
}
// Playlist playback mode has changed
void CWMPEventDispatch::ModeChange(BSTR /*ModeName*/, VARIANT_BOOL /*NewValue*/)
{
return;
}
// Sent when the media object has an error condition
void CWMPEventDispatch::MediaError(IDispatch * /*pMediaObject*/)
{
return;
}
// Current playlist switch with no open state change
void CWMPEventDispatch::OpenPlaylistSwitch(IDispatch * /*pItem*/)
{
return;
}
// Sent when the current DVD domain changes
void CWMPEventDispatch::DomainChange(BSTR /*bstrDomain*/)
{
return;
}
// Sent when display switches to player application
void CWMPEventDispatch::SwitchedToPlayerApplication()
{
return;
}
// Sent when display switches to control
void CWMPEventDispatch::SwitchedToControl()
{
return;
}
// Sent when the player docks or undocks
void CWMPEventDispatch::PlayerDockedStateChange()
{
return;
}
// Sent when the OCX reconnects to the player
void CWMPEventDispatch::PlayerReconnect()
{
return;
}
// Occurs when a user clicks the mouse
void CWMPEventDispatch::Click( short /*nButton*/, short /*nShiftState*/, long /*fX*/, long /*fY*/ )
{
return;
}
// Occurs when a user double-clicks the mouse
void CWMPEventDispatch::DoubleClick( short /*nButton*/, short /*nShiftState*/, long /*fX*/, long /*fY*/ )
{
return;
}
// Occurs when a key is pressed
void CWMPEventDispatch::KeyDown( short /*nKeyCode*/, short /*nShiftState*/ )
{
return;
}
// Occurs when a key is pressed and released
void CWMPEventDispatch::KeyPress( short /*nKeyAscii*/ )
{
return;
}
// Occurs when a key is released
void CWMPEventDispatch::KeyUp( short /*nKeyCode*/, short /*nShiftState*/ )
{
return;
}
// Occurs when a mouse button is pressed
void CWMPEventDispatch::MouseDown( short /*nButton*/, short /*nShiftState*/, long /*fX*/, long /*fY*/ )
{
return;
}
// Occurs when a mouse pointer is moved
void CWMPEventDispatch::MouseMove( short /*nButton*/, short /*nShiftState*/, long /*fX*/, long /*fY*/ )
{
return;
}
// Occurs when a mouse button is released
void CWMPEventDispatch::MouseUp( short /*nButton*/, short /*nShiftState*/, long /*fX*/, long /*fY*/ )
{
return;
}