⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 medialibrarydlg.h

📁 WINCE 下的Media Player 播放器控制源代码
💻 H
字号:
// MediaLibraryDlg.h : Declaration of the CMediaLibraryDlg
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//

#ifndef __MEDIALIBRARYDLG_H_
#define __MEDIALIBRARYDLG_H_

#include "resource.h"       // main symbols
#include <atlhost.h>
#include "wmp.h"
#include "wmpids.h"

enum NODENAME
{
    TREE_PARENT = -1,
    TREE_ALL,
    TREE_NOWPLAYING,
    TREE_MUSIC,
    TREE_MUSIC_ARTIST,
    TREE_MUSIC_ARTISTITEM,
    TREE_MUSIC_ARTISTUNKNOWN,
    TREE_MUSIC_GENRE,
    TREE_MUSIC_GENREITEM,
    TREE_MUSIC_GENREUNKNOWN,
    TREE_MUSIC_ALBUM,
    TREE_MUSIC_ALBUMITEM,
    TREE_MUSIC_ALBUMUNKNOWN,
    TREE_VIDEO,
    TREE_VIDEO_ACTOR,
    TREE_VIDEO_ACTORITEM,
    TREE_VIDEO_ACTORUNKNOWN,
    TREE_VIDEO_GENRE,
    TREE_VIDEO_GENREITEM,
    TREE_VIDEO_GENREUNKNOWN,
    TREE_OTHER,
    TREE_MYPLAYLIST,
    TREE_MYPLAYLISTITEM,
    TREE_AUTOPLAYLIST,
    TREE_AUTOPLAYLISTITEM
};

/////////////////////////////////////////////////////////////////////////////
// CMainDlg
class CMediaLibraryDlg : 
    public CAxDialogImpl<CMediaLibraryDlg>
{
public:
    CMediaLibraryDlg(IWMPPlayer* pPlayer);
    ~CMediaLibraryDlg();

    enum { IDD = IDD_MEDIALIBRARYDLG };

BEGIN_MSG_MAP(CMediaLibraryDlg)
    MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
    MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
    COMMAND_ID_HANDLER(IDOK, OnOK)
    COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
    COMMAND_ID_HANDLER(ID_PLAYLISTS_REMOVE, OnRemovePlaylist)
    COMMAND_ID_HANDLER(ID_MEDIA_ADDURLOR, OnAddURL)
    COMMAND_ID_HANDLER(ID_MEDIA_REMOVE, OnRemoveMedia)
    NOTIFY_HANDLER(IDC_TREE, TVN_SELCHANGED, OnClickTree)
    COMMAND_HANDLER(IDC_LIST, LBN_DBLCLK, OnDbClickMediaList)
    COMMAND_HANDLER(IDC_LIST, LBN_SELCHANGE, OnSelectMedia)
END_MSG_MAP()

    LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
    LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
    LRESULT OnOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
    LRESULT OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
    LRESULT OnNewPlaylist(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
    LRESULT OnImportPlaylist(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
    LRESULT OnRemovePlaylist(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
    LRESULT OnAddURL(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
    LRESULT OnRemoveMedia(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
    LRESULT OnClickTree(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
    LRESULT OnDbClickMediaList(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
    LRESULT OnSelectMedia(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);

    // Utility functions
    void        ShowMainTree();
    HTREEITEM   AddNode(TCHAR* szName, NODENAME iPara, HTREEITEM hParent = TVI_ROOT);
    HRESULT     ShowNowPlaying();
    HRESULT     ShowAllMedia();
    HRESULT     ShowAllMusic();
    HRESULT     ShowAllMusicTree();
    HRESULT     ShowAllVideo();
    HRESULT     ShowAllVideoTree();
    HRESULT     ShowPlaylistsTree();
    HRESULT     ShowOthers();
    HRESULT     ShowStringCollection(HTREEITEM hParent, NODENAME enumNode, TCHAR *szAttr, TCHAR *szMediaType);
    HRESULT     ShowPlaylist(IWMPPlaylist* pPlaylist, TCHAR *szMediaType = NULL);
    HRESULT     ShowPlaylist(TCHAR *szPlaylistName);
    HRESULT     ShowGetByAttr(TCHAR *szAttrName, TCHAR *szAttrVal, TCHAR *szMediaType);
    void        ShowChildNodes(HTREEITEM hParent);

private:
    /************* Embedded WMP objects ********************/
    CComPtr<IWMPPlayer>             m_spPlayer;             // Player
    CComPtr<IWMPMediaCollection>    m_spMC;                 // MediaCollection object
    CComPtr<IWMPPlaylistCollection> m_spPC;                 // PlaylistCollection object
    CComPtr<IWMPPlaylist>           m_spSavedPlaylist;      // Saved playlist object for media list
    
    /************* Saved handlers for fast access ********************/
    HWND                            m_hTree;                // Tree view
    HWND                            m_hList;                // Media list
    HWND                            m_hMetadata;            // Metadata list
    HTREEITEM                       m_hAllMusicNode;        // All music node
    HTREEITEM                       m_hAllVideoNode;        // All video node
    HTREEITEM                       m_hMyPlaylistsNode;     // My playlists
    HTREEITEM                       m_hAutoPlaylistwNode;   // Auto playlist

    NODENAME                        m_iSelectedNode;        // The node that is selected    
    BOOL                            m_bIsShowingMedia;      // Whether items in media list is real media names or just list of nodes
};

#endif //__MEDIALIBRARYDLG_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -