//========= Copyright Valve Corporation, All rights reserved. ============// // CWMPHost.h : Declaration of the CWMPHost // #include "resource.h" // main symbols #include // if this file isn'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 "wmp.h" #include "CWMPEventDispatch.h" ///////////////////////////////////////////////////////////////////////////// // CWMPHost class CWMPHost : public CWindowImpl< CWMPHost, CWindow, CWinTraits< WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_APPWINDOW | WS_EX_WINDOWEDGE > > { public: DECLARE_WND_CLASS_EX(NULL, 0, 0) BEGIN_MSG_MAP(CWMPHost) MESSAGE_HANDLER(WM_CREATE, OnCreate) MESSAGE_HANDLER(WM_DESTROY, OnDestroy) MESSAGE_HANDLER(WM_CLOSE, OnClose) MESSAGE_HANDLER(WM_SIZE, OnSize) MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu) MESSAGE_HANDLER(WM_LBUTTONDOWN, OnClick) MESSAGE_HANDLER(WM_MBUTTONDOWN, OnClick) MESSAGE_HANDLER(WM_RBUTTONDOWN, OnClick) MESSAGE_HANDLER(WM_LBUTTONDBLCLK, OnLeftDoubleClick) MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown) MESSAGE_HANDLER(WM_SYSKEYDOWN, OnSysKeyDown) MESSAGE_HANDLER(WM_ERASEBKGND, OnErase) MESSAGE_HANDLER(WM_NCACTIVATE, OnNCActivate) COMMAND_ID_HANDLER(ID_HALF_SIZE, OnVideoScale) COMMAND_ID_HANDLER(ID_FULL_SIZE, OnVideoScale) COMMAND_ID_HANDLER(ID_DOUBLE_SIZE, OnVideoScale) COMMAND_ID_HANDLER(ID_STRETCH_TO_FIT, OnVideoScale) END_MSG_MAP() LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnErase(UINT /* uMsg */, WPARAM /* wParam */, LPARAM /* lParam */, BOOL& bHandled); LRESULT OnSize(UINT /* uMsg */, WPARAM /* wParam */, LPARAM /* lParam */, BOOL& /* lResult */); LRESULT OnContextMenu(UINT /* uMsg */, WPARAM /* wParam */, LPARAM /* lParam */, BOOL& /* lResult */); LRESULT OnClick(UINT /* uMsg */, WPARAM /* wParam */, LPARAM /* lParam */, BOOL& /* lResult */); LRESULT OnLeftDoubleClick(UINT /* uMsg */, WPARAM /* wParam */, LPARAM /* lParam */, BOOL& /* lResult */); LRESULT OnSysKeyDown(UINT /* uMsg */, WPARAM wParam, LPARAM /* lParam */, BOOL& /* lResult */); LRESULT OnKeyDown(UINT /* uMsg */, WPARAM wParam, LPARAM /* lParam */, BOOL& /* lResult */); LRESULT OnNCActivate(UINT /* uMsg */, WPARAM wParam, LPARAM /* lParam */, BOOL& /* lResult */); LRESULT OnVideoScale(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); CAxWindow m_wndView; CComPtr m_spConnectionPoint; DWORD m_dwAdviseCookie; HMENU m_hPopupMenu; }; ///////////////////////////////////////////////////////////////////////////// // event logging - this should really be in its own smp.h or something... enum EventType_t { ET_APPLAUNCH, ET_APPEXIT, ET_CLOSE, ET_FADEOUT, ET_MEDIABEGIN, ET_MEDIAEND, ET_JUMPHOME, ET_JUMPEND, ET_PLAY, ET_PAUSE, ET_STOP, ET_SCRUBFROM, ET_SCRUBTO, ET_STEPFWD, ET_STEPBCK, ET_JUMPFWD, ET_JUMPBCK, ET_REPEAT, ET_MAXIMIZE, ET_MINIMIZE, ET_RESTORE, };