#ifndef _VIEW_MB_H_ #define _VIEW_MB_H_ #include "main.h" #include "contnr.h" #include "evntsink.h" #include "childwnd.h" #include "resource.h" #include "..\winamp\wa_dlg.h" #include #include "mbutil.h" #include "config.h" extern void gracenoteCancelRequest(); // --------------------------------------------------------------- // class viewMBHandler is a singleton class - // All public members are static, including // viewMBHandler :: DialogProc. // CTOR and DTOR are public (and not static) // the only instance of viewMBHandler is private, // theVmb; // --------------------------------------------------------- // --------------------------------------------------------- // this class has the basic responsibiliity of creating (and // handling the messages for) an IEControl window. // It is a prototype for the Advertising window, // which will be a similar class, but without the extraneous // stuff. ie There are currently navigation buttons for which // messages must be handled. These should disappear // in the final class, along with the gracenote stuff. // // Ben Pontius // --------------------------------------------------------------- class viewMBHandler { public: // --------------------------------------------------------------- friend BOOL view_mbDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); private: // --------------------------------------------------------------- // CTOR // --------------------------------------------------------------- viewMBHandler () : m_hwnd (0), m_pweb (0), m_contnr (0), m_event (0), m_eventCookie (0), m_defurl (1), m_tmpurl (0), loc_oldWndProc (0) { } // --------------------------------------------------------------- // DTOR - public (because the compiler demanded it.) // --------------------------------------------------------------- ~viewMBHandler () { // --------------------------------------------------------------- gracenoteCancelRequest (); // --------------------------------------------------------------- if (m_contnr != 0) { destroyIEControl (); } if (m_tmpurl) { free (m_tmpurl); m_tmpurl = 0; } m_hwnd = 0; } public: // --------------------------------------------------------------- static void Refresh (int defurl); // --------------------------------------------------------------- static void SetDesc (char *desc); // --------------------------------------------------------------- static void Navigate (char *s); // --------------------------------------------------------------- static void navigateGracenoteTuid (); // --------------------------------------------------------------- // the central (CALLBACK) function // --------------------------------------------------------------- static BOOL CALLBACK DialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); // --------------------------------------------------------------- static BOOL CALLBACK newWndProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); // --------------------------------------------------------------- static void ContextMenu (HWND parent); // --------------------------------------------------------------- static viewMBHandler &getInstance () { if (0 == pVmb) { pVmb = new viewMBHandler; } return *pVmb; } protected: // --------------------------------------------------------------- IConnectionPoint *GetConnectionPoint(REFIID riid); // --------------------------------------------------------------- void ConnectEvents (); // --------------------------------------------------------------- // bp IEControl creation: // --------------------------------------------------------------- void createIEControl (); // --------------------------------------------------------------- // BP - IEControl destruction // --------------------------------------------------------------- void destroyIEControl (); // --------------------------------------------------------------- void NavigateToName (LPCTSTR pszUrl); private: IWebBrowser2 *m_pweb; HWND m_hwnd; CContainer *m_contnr; CEventSink *m_event; DWORD m_eventCookie; int m_defurl; char *m_tmpurl; WNDPROC loc_oldWndProc; static viewMBHandler *pVmb; }; #endif // _VIEW_MB_H_