You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
3.0 KiB
96 lines
3.0 KiB
#pragma once
|
|
//#include "wmpresource.h"
|
|
#include "resource.h"
|
|
//#include "wmpcore.h"
|
|
#include <commctrl.h>
|
|
#include <wininet.h>
|
|
|
|
class ATL_NO_VTABLE CFavoritesPropertyPage:
|
|
public CComObjectRootEx<CComSingleThreadModel>,
|
|
public CComCoClass<CFavoritesPropertyPage, &__uuidof(FavoritesPropPage)>,
|
|
public CDialogImpl<CFavoritesPropertyPage>,
|
|
public IPropertyPageImpl<CFavoritesPropertyPage>
|
|
{
|
|
public:
|
|
CFavoritesPropertyPage();
|
|
virtual ~CFavoritesPropertyPage();
|
|
|
|
enum { IDD = IDD_CE_PROPPAGE_FAVORITES_FAVORITES };
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_CEWMDM_REG)
|
|
|
|
BEGIN_COM_MAP(CFavoritesPropertyPage)
|
|
COM_INTERFACE_ENTRY(IPropertyPage)
|
|
END_COM_MAP()
|
|
|
|
BEGIN_MSG_MAP(CFavoritesPropertyPage)
|
|
NOTIFY_CODE_HANDLER(LVN_ITEMCHANGED, OnItemChanged)
|
|
NOTIFY_CODE_HANDLER(LVN_ENDLABELEDIT, OnEndLabelEdit)
|
|
NOTIFY_CODE_HANDLER(LVN_KEYDOWN, OnKeyDown)
|
|
COMMAND_ID_HANDLER(IDC_CE_PROPPAGE_FAVORITES_ADD, OnAdd)
|
|
COMMAND_ID_HANDLER(IDC_CE_PROPPAGE_FAVORITES_DELETE, OnDelete)
|
|
CHAIN_MSG_MAP(IPropertyPageImpl<CFavoritesPropertyPage>)
|
|
END_MSG_MAP()
|
|
|
|
//
|
|
// Message Handlers
|
|
//
|
|
|
|
LRESULT OnItemChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
LRESULT OnEndLabelEdit(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
LRESULT OnKeyDown(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
|
|
LRESULT OnAdd(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
LRESULT OnDelete(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
|
|
//
|
|
// IPropertyPage
|
|
//
|
|
|
|
STDMETHOD(Activate)(HWND hWndParent, LPCRECT pRect, BOOL bModal);
|
|
STDMETHOD(Apply)();
|
|
|
|
protected:
|
|
HRESULT InitList();
|
|
HRESULT EnableControls();
|
|
HRESULT ManageFavorites( int iItem, BOOL fRemove );
|
|
HRESULT ManageFavorites( LPWSTR pszURL, LPWSTR pszName, BOOL fRemove );
|
|
HRESULT AddFavorite( LPWSTR pszURL, LPWSTR pszName, BOOL fDirty );
|
|
|
|
void ShowError(HRESULT hrError);
|
|
|
|
HWND m_hwndList;
|
|
HANDLE m_hDb;
|
|
BOOL m_fLeaveDBOpen;
|
|
HCURSOR m_hCursorWait;
|
|
};
|
|
|
|
class CAddDialog:
|
|
public CDialogImpl<CAddDialog>
|
|
{
|
|
public:
|
|
CAddDialog();
|
|
enum { IDD = IDD_CE_PROPPAGE_FAVORITES_ADD_FAVORITE};
|
|
|
|
|
|
BEGIN_MSG_MAP(CAddDialog)
|
|
COMMAND_ID_HANDLER(IDOK, OnOK)
|
|
COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
|
|
COMMAND_HANDLER(IDC_CE_PROPPAGE_FAVORITES_URL, EN_CHANGE, OnURLChange)
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
|
END_MSG_MAP()
|
|
|
|
//
|
|
// Message Handlers
|
|
//
|
|
|
|
LRESULT OnURLChange(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
LRESULT OnOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
LRESULT OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
WCHAR m_wszURL[INTERNET_MAX_URL_LENGTH];
|
|
WCHAR m_wszName[MAX_PATH];
|
|
|
|
protected:
|
|
void EnableControls();
|
|
};
|