PPageFileInfoClip.cpp
上传用户:tangyu_668
上传日期:2014-02-27
资源大小:678k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2006 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  */
  21. // PPageFileInfoClip.cpp : implementation file
  22. //
  23. #include "stdafx.h"
  24. #include "mplayerc.h"
  25. #include "PPageFileInfoClip.h"
  26. #include <atlbase.h>
  27. #include <qnetwork.h>
  28. #include "....DSUtilDSUtil.h"
  29. // CPPageFileInfoClip dialog
  30. IMPLEMENT_DYNAMIC(CPPageFileInfoClip, CPropertyPage)
  31. CPPageFileInfoClip::CPPageFileInfoClip(CString fn, IFilterGraph* pFG)
  32. : CPropertyPage(CPPageFileInfoClip::IDD, CPPageFileInfoClip::IDD)
  33. , m_fn(fn)
  34. , m_pFG(pFG)
  35. , m_clip(_T("None"))
  36. , m_author(_T("None"))
  37. , m_copyright(_T("None"))
  38. , m_rating(_T("None"))
  39. , m_location(_T("None"))
  40. , m_hIcon(NULL)
  41. {
  42. }
  43. CPPageFileInfoClip::~CPPageFileInfoClip()
  44. {
  45. if(m_hIcon) DestroyIcon(m_hIcon);
  46. }
  47. void CPPageFileInfoClip::DoDataExchange(CDataExchange* pDX)
  48. {
  49. __super::DoDataExchange(pDX);
  50. DDX_Control(pDX, IDC_DEFAULTICON, m_icon);
  51. DDX_Text(pDX, IDC_EDIT1, m_fn);
  52. DDX_Text(pDX, IDC_EDIT4, m_clip);
  53. DDX_Text(pDX, IDC_EDIT3, m_author);
  54. DDX_Text(pDX, IDC_EDIT2, m_copyright);
  55. DDX_Text(pDX, IDC_EDIT5, m_rating);
  56. DDX_Text(pDX, IDC_EDIT6, m_location);
  57. DDX_Control(pDX, IDC_EDIT7, m_desc);
  58. }
  59. BEGIN_MESSAGE_MAP(CPPageFileInfoClip, CPropertyPage)
  60. END_MESSAGE_MAP()
  61. // CPPageFileInfoClip message handlers
  62. BOOL CPPageFileInfoClip::OnInitDialog()
  63. {
  64. __super::OnInitDialog();
  65. if(m_hIcon = LoadIcon(m_fn, false))
  66. m_icon.SetIcon(m_hIcon);
  67. m_fn.TrimRight('/');
  68. int i = max(m_fn.ReverseFind('\'), m_fn.ReverseFind('/'));
  69. if(i >= 0 && i < m_fn.GetLength()-1)
  70. {
  71. m_location = m_fn.Left(i);
  72. m_fn = m_fn.Mid(i+1);
  73. if(m_location.GetLength() == 2 && m_location[1] == ':')
  74. m_location += '\';
  75. }
  76. bool fEmpty = true;
  77. BeginEnumFilters(m_pFG, pEF, pBF)
  78. {
  79. if(CComQIPtr<IAMMediaContent, &IID_IAMMediaContent> pAMMC = pBF)
  80. {
  81. CComBSTR bstr;
  82. if(SUCCEEDED(pAMMC->get_Title(&bstr)) && wcslen(bstr.m_str) > 0) {m_clip = bstr.m_str; fEmpty = false;}
  83. if(SUCCEEDED(pAMMC->get_AuthorName(&bstr)) && wcslen(bstr.m_str) > 0) {m_author = bstr.m_str; fEmpty = false;}
  84. if(SUCCEEDED(pAMMC->get_Copyright(&bstr)) && wcslen(bstr.m_str) > 0) {m_copyright = bstr.m_str; fEmpty = false;}
  85. if(SUCCEEDED(pAMMC->get_Rating(&bstr)) && wcslen(bstr.m_str) > 0) {m_rating = bstr.m_str; fEmpty = false;}
  86. if(SUCCEEDED(pAMMC->get_Description(&bstr)) && wcslen(bstr.m_str) > 0) {m_desc.SetWindowText(CString(bstr.m_str)); fEmpty = false;}
  87. if(!fEmpty) break;
  88. }
  89. }
  90. EndEnumFilters
  91. UpdateData(FALSE);
  92. return TRUE;  // return TRUE unless you set the focus to a control
  93. // EXCEPTION: OCX Property Pages should return FALSE
  94. }