Processing Script Commands During Windows Media Video Playback

This example shows how to handle WMV script commands during video playback.The script command is added to the file using the IltmmWMScript Interface.

 

1.

Set and handle player notifications as follows:

C Source

#define WM_PLAYERNOTIFY (WM_USER + 1000)

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{  
switch (message)
{
   case WM_CREATE:
      IltmmPlay_SetNotifyWindow(g_player, (long)hwnd, WM_PLAYERNOTIFY);
      break;

      case WM_PLAYERNOTIFY:
      switch(wParam)
      {
         case ltmmPlay_Notify_MediaEvent:
         {
            ltmmMediaEvent* event = (ltmmMediaEvent*) lParam;
            switch(event->lEventCode)
            {
               case ltmmEC_OLE_EVENT:
               {
                  // do something with WMScript commands;
                  BSTR bstrCmd = (BSTR)event->lParam1;
                  BSTR bstrCmdText = (BSTR)event->lParam2;
               }
               break;
            }

            }
      }
      break;

   default:
   return DefWindowProc(hwnd, message, wParam, lParam);

   }

   return 0;
}

C++ Source

#define WM_PLAYERNOTIFY (WM_USER + 1000)
 

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

ON_WM_CREATE()

ON_MESSAGE(WM_PLAYERNOTIFY, OnPlayerNotify)

END_MESSAGE_MAP()


int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{
 m_player->SetNotifyWindow((long) m_hWnd, WM_PLAYERNOTIFY);

}

LRESULT CMainFrame::OnPlayerNotify(WPARAM wParam, LPARAM lParam)

{
switch(wParam)
{
  case ltmmPlay_Notify_MediaEvent:
  {
     ltmmMediaEvent* event = (ltmmMediaEvent*) lParam;
     switch(event->lEventCode)
     {
        case ltmmEC_OLE_EVENT:
        {
           // do something with WMScript events;
           BSTR bstrCmd = (BSTR)event->lParam1;
           BSTR bstrCmdText = (BSTR)event->lParam2;
        }
        break;
     }
  }
  break;
}
return 0;
}

 

 

2.

Set the play source as follows:

C Source

IltmmPlay_put_SourceFile(g_play, L"source.wmv");

C++ Source

m_play->put_SourceFile(L"source.wmv");
 

To see how to add script command to the file, refer to Adding Script Commands to Windows Media Video.