ConvertResDlg.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. // ConvertResDlg.cpp : implementation file
  22. //
  23. #include "stdafx.h"
  24. #include "mplayerc.h"
  25. #include "ConvertResDlg.h"
  26. // CConvertResDlg dialog
  27. CConvertResDlg::CConvertResDlg(CWnd* pParent /*=NULL*/)
  28. : CResizableDialog(CConvertResDlg::IDD, pParent)
  29. , m_name(_T(""))
  30. , m_desc(_T(""))
  31. {
  32. }
  33. CConvertResDlg::~CConvertResDlg()
  34. {
  35. }
  36. void CConvertResDlg::DoDataExchange(CDataExchange* pDX)
  37. {
  38. __super::DoDataExchange(pDX);
  39. DDX_Text(pDX, IDC_EDIT3, m_name);
  40. DDX_Text(pDX, IDC_COMBO1, m_mime);
  41. DDX_Control(pDX, IDC_COMBO1, m_mimectrl);
  42. DDX_Text(pDX, IDC_EDIT2, m_desc);
  43. }
  44. BOOL CConvertResDlg::OnInitDialog()
  45. {
  46. __super::OnInitDialog();
  47. AddAnchor(IDC_EDIT3, TOP_LEFT, TOP_RIGHT);
  48. AddAnchor(IDC_COMBO1, TOP_LEFT, TOP_RIGHT);
  49. AddAnchor(IDC_EDIT2, TOP_LEFT, BOTTOM_RIGHT);
  50. AddAnchor(IDOK, BOTTOM_CENTER);
  51. AddAnchor(IDCANCEL, BOTTOM_CENTER);
  52. CRegKey key;
  53. CString str(_T("MIME\Database\Content Type"));
  54. if(ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, str, KEY_READ))
  55. {
  56. CAtlStringMap<bool> mimes;
  57. TCHAR buff[256];
  58. DWORD len = countof(buff);
  59. for(int i = 0; ERROR_SUCCESS == key.EnumKey(i, buff, &len); i++, len = countof(buff))
  60. {
  61. CRegKey mime;
  62. TCHAR ext[64];
  63. ULONG len = countof(ext);
  64. if(ERROR_SUCCESS == mime.Open(HKEY_CLASSES_ROOT, str + _T("\") + buff, KEY_READ)
  65. && ERROR_SUCCESS == mime.QueryStringValue(_T("Extension"), ext, &len))
  66. {
  67. CString mime = CString(buff).MakeLower();
  68. mimes[mime] = true;
  69. m_mimectrl.AddString(mime);
  70. }
  71. }
  72. static TCHAR* moremimes[] = 
  73. {
  74. _T("application/octet-stream"),
  75. _T("application/zip"),
  76. _T("application/rar"),
  77. _T("application/x-truetype-font"),
  78. };
  79. for(int i = 0; i < countof(moremimes); i++)
  80.             if(!mimes.Lookup(moremimes[i]))
  81. m_mimectrl.AddString(moremimes[i]);
  82. }
  83. m_desc.Replace(_T("n"), _T("rn"));
  84. UpdateData(FALSE);
  85. return TRUE;  // return TRUE unless you set the focus to a control
  86. // EXCEPTION: OCX Property Pages should return FALSE
  87. }
  88. void CConvertResDlg::OnOK()
  89. {
  90. UpdateData();
  91. m_name.Trim();
  92. m_mime.Trim();
  93. m_desc.Replace(_T("rn"), _T("r"));
  94. m_desc.Trim();
  95. __super::OnOK();
  96. }
  97. BEGIN_MESSAGE_MAP(CConvertResDlg, CResizableDialog)
  98. ON_UPDATE_COMMAND_UI(IDOK, OnUpdateOK)
  99. END_MESSAGE_MAP()
  100. // CConvertResDlg message handlers
  101. void CConvertResDlg::OnUpdateOK(CCmdUI* pCmdUI)
  102. {
  103. pCmdUI->Enable(GetDlgItem(IDC_EDIT3)->GetWindowTextLength() > 0 && GetDlgItem(IDC_COMBO1)->GetWindowTextLength() > 0);
  104. }