home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 October / Chip_2002-10_cd1.bin / zkuste / vbasic / Data / Utils / WMP71SDK.exe / CWMPEventDispatch.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-07-31  |  5.8 KB  |  212 lines

  1. // CWMPEventDispatch.cpp : Implementation of the event dispatcher
  2. //
  3. // Copyright (C) 2000-2001 Microsoft Corporation
  4. // All rights reserved.
  5. //
  6.  
  7. #include "CWMPEventDispatch.h"
  8.  
  9. HRESULT CWMPEventDispatch::Invoke(
  10.                             DISPID  dispIdMember,      
  11.                             REFIID  riid,              
  12.                             LCID  lcid,                
  13.                             WORD  wFlags,              
  14.                             DISPPARAMS FAR*  pDispParams,  
  15.                             VARIANT FAR*  pVarResult,  
  16.                             EXCEPINFO FAR*  pExcepInfo,  
  17.                             unsigned int FAR*  puArgErr )
  18. {
  19.     if (!pDispParams)
  20.         return E_POINTER;
  21.  
  22.     if (pDispParams->cNamedArgs != 0)
  23.         return DISP_E_NONAMEDARGS;
  24.  
  25.     HRESULT hr = DISP_E_MEMBERNOTFOUND;
  26.  
  27.     switch (dispIdMember)
  28.     {
  29.         case DISPID_WMPCOREEVENT_OPENSTATECHANGE:
  30.             OpenStateChange(pDispParams->rgvarg[0].lVal /* NewState */ );
  31.             break;
  32.  
  33.         case DISPID_WMPCOREEVENT_STATUSCHANGE:
  34.             StatusChange();
  35.             break;
  36.  
  37.         case DISPID_WMPCOREEVENT_PLAYSTATECHANGE:
  38.             PlayStateChange(pDispParams->rgvarg[0].lVal /* NewState */);
  39.             break;
  40.  
  41.         case DISPID_WMPCOREEVENT_SCRIPTCOMMAND:
  42.             ScriptCommand(pDispParams->rgvarg[1].bstrVal /* scType */, pDispParams->rgvarg[0].bstrVal /* Param */ );
  43.             break;
  44.  
  45.         case DISPID_WMPCOREEVENT_DISCONNECT:
  46.             Disconnect(pDispParams->rgvarg[0].lVal /* Result */ );
  47.             break;
  48.  
  49.         case DISPID_WMPCOREEVENT_BUFFERING:
  50.             Buffering(pDispParams->rgvarg[0].boolVal /* Start */);
  51.             break;
  52.  
  53.         case DISPID_WMPCOREEVENT_ERROR:
  54.             Error();
  55.             break;
  56.  
  57.         case DISPID_WMPCOREEVENT_MEDIAERROR:
  58.             MediaError(pDispParams->rgvarg[0].pdispVal /* pMediaObject */);
  59.             break;
  60.  
  61.         case DISPID_WMPCOREEVENT_POSITIONCHANGE:
  62.             PositionChange(pDispParams->rgvarg[1].dblVal /* oldPosition */, pDispParams->rgvarg[0].dblVal /* newPosition */);
  63.             break;
  64.  
  65.         case DISPID_WMPCOREEVENT_MARKERHIT:
  66.             MarkerHit(pDispParams->rgvarg[0].lVal /* MarkerNum */);
  67.             break;
  68.  
  69.         case DISPID_WMPCOREEVENT_DURATIONUNITCHANGE:
  70.             DurationUnitChange(pDispParams->rgvarg[0].lVal /* NewDurationUnit */);
  71.             break;
  72.  
  73.         case DISPID_WMPCOREEVENT_CDROMMEDIACHANGE:
  74.             CdromMediaChange(pDispParams->rgvarg[0].lVal /* CdromNum */);
  75.             break;
  76.  
  77.         case DISPID_WMPCOREEVENT_PLAYLISTCHANGE:
  78.             PlaylistChange(pDispParams->rgvarg[1].pdispVal /* Playlist */, (WMPPlaylistChangeEventType) pDispParams->rgvarg[0].lVal /* change */);
  79.             break;
  80.             
  81.         case DISPID_WMPCOREEVENT_CURRENTPLAYLISTCHANGE:
  82.             CurrentPlaylistChange((WMPPlaylistChangeEventType) pDispParams->rgvarg[0].lVal /* change */);
  83.             break;
  84.  
  85.         case DISPID_WMPCOREEVENT_CURRENTPLAYLISTITEMAVAILABLE:
  86.             CurrentPlaylistItemAvailable(pDispParams->rgvarg[0].bstrVal /*  bstrItemName */);
  87.             break;
  88.  
  89.         case DISPID_WMPCOREEVENT_MEDIACHANGE:
  90.             MediaChange(pDispParams->rgvarg[0].pdispVal /* Item */);
  91.             break;
  92.  
  93.         case DISPID_WMPCOREEVENT_CURRENTMEDIAITEMAVAILABLE:
  94.             CurrentMediaItemAvailable(pDispParams->rgvarg[0].bstrVal /* bstrItemName */);
  95.             break;
  96.  
  97.         case DISPID_WMPCOREEVENT_CURRENTITEMCHANGE:
  98.             CurrentItemChange(pDispParams->rgvarg[0].pdispVal /* pdispMedia */);
  99.             break;
  100.     }
  101.  
  102.     return( hr );
  103. }
  104.  
  105. // Sent when the control changes OpenState
  106. void CWMPEventDispatch:: OpenStateChange(long NewState)
  107. {
  108.     return;
  109. }
  110.  
  111. // Sent when the status string changes
  112. void CWMPEventDispatch:: StatusChange()
  113. {
  114.     return;
  115. }
  116.  
  117. // Sent when the control changes PlayState
  118. void CWMPEventDispatch:: PlayStateChange(long NewState)
  119. {
  120.     return;
  121. }
  122.  
  123. // Sent when a synchronized command or URL is received
  124. void CWMPEventDispatch:: ScriptCommand(BSTR scType,BSTR Param)
  125. {
  126.     return;
  127. }
  128.  
  129. // Sent when the control is disconnected from the server
  130. void CWMPEventDispatch:: Disconnect(long Result )
  131. {
  132.     return;
  133. }
  134.  
  135. // Sent when the control begins or ends buffering
  136. void CWMPEventDispatch:: Buffering(VARIANT_BOOL Start)
  137. {
  138.     return;
  139. }
  140.  
  141. // Sent when the control has an error condition
  142. void CWMPEventDispatch:: Error()
  143. {
  144.     return;
  145. }
  146.  
  147. // Sent when the media object has an error condition
  148. void CWMPEventDispatch:: MediaError(IDispatch * pMediaObject)
  149. {
  150.     return;
  151. }
  152.  
  153. // Indicates that the current position of the movie has changed
  154. void CWMPEventDispatch:: PositionChange(double oldPosition,double newPosition)
  155. {
  156.     return;
  157. }
  158.  
  159. // Sent when a marker is reached
  160. void CWMPEventDispatch:: MarkerHit(long MarkerNum )
  161. {
  162.     return;
  163. }
  164.  
  165. // Indicates that the unit used to express duration and position has changed
  166. void CWMPEventDispatch:: DurationUnitChange(long NewDurationUnit)
  167. {
  168.     return;
  169. }
  170.  
  171. // Indicates that the CD ROM media has changed
  172. void CWMPEventDispatch:: CdromMediaChange(long CdromNum)
  173. {
  174.     return;
  175. }
  176.  
  177. // Sent when a playlist changes
  178. void CWMPEventDispatch:: PlaylistChange(IDispatch * Playlist,WMPPlaylistChangeEventType change)
  179. {
  180.     return;
  181. }
  182.  
  183. // Sent when the current playlist changes
  184. void CWMPEventDispatch:: CurrentPlaylistChange(WMPPlaylistChangeEventType change )
  185. {
  186.     return;
  187. }
  188.  
  189. // Sent when a current playlist item becomes available
  190. void CWMPEventDispatch:: CurrentPlaylistItemAvailable(BSTR bstrItemName)
  191. {
  192.     return;
  193. }
  194.  
  195. // Sent when a media object changes
  196. void CWMPEventDispatch:: MediaChange(IDispatch * Item)
  197. {
  198.     return;
  199. }
  200.  
  201. // Sent when a current media item becomes available
  202. void CWMPEventDispatch:: CurrentMediaItemAvailable(BSTR bstrItemName)
  203. {
  204.     return;
  205. }
  206.  
  207. // Sent when the item selection on the current playlist changes
  208. void CWMPEventDispatch:: CurrentItemChange(IDispatch *pdispMedia)
  209. {
  210.     return;
  211. }
  212.