VSRipFileDlg.cpp
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2005 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. // VSRipFileDlg.cpp : implementation file
  22. //
  23. #include "stdafx.h"
  24. #include "VSRip.h"
  25. #include <atlcoll.h>
  26. #include "......includewinddkdevioctl.h"
  27. #include "......includewinddkntddcdrm.h"
  28. #include "VSRipFileDlg.h"
  29. // CVSRipFileDlg dialog
  30. IMPLEMENT_DYNAMIC(CVSRipFileDlg, CVSRipPage)
  31. CVSRipFileDlg::CVSRipFileDlg(IVSFRipper* pVSFRipper, CWnd* pParent /*=NULL*/)
  32. : CVSRipPage(pVSFRipper, CVSRipFileDlg::IDD, pParent)
  33. {
  34. }
  35. CVSRipFileDlg::~CVSRipFileDlg()
  36. {
  37. }
  38. void CVSRipFileDlg::DoDataExchange(CDataExchange* pDX)
  39. {
  40. CVSRipPage::DoDataExchange(pDX);
  41. DDX_Text(pDX, IDC_EDIT1, m_infn);
  42. DDX_Text(pDX, IDC_EDIT2, m_outfn);
  43. DDX_Control(pDX, IDC_EDIT3, m_log);
  44. }
  45. BEGIN_MESSAGE_MAP(CVSRipFileDlg, CVSRipPage)
  46. ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
  47. ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
  48. END_MESSAGE_MAP()
  49. STDMETHODIMP CVSRipFileDlg::OnMessage(LPCTSTR msg)
  50. {
  51. if(CEdit* pLog = (CEdit*)CEdit::FromHandle(m_log.m_hWnd))
  52. {
  53. CString str = msg;
  54. str += _T("rn");
  55. int len = pLog->GetWindowTextLength();
  56. pLog->SetSel(len, len);
  57. pLog->ReplaceSel(str);
  58. }
  59. return S_OK;
  60. }
  61. // CVSRipFileDlg message handlers
  62. void CVSRipFileDlg::OnBnClickedButton1()
  63. {
  64. CFileDialog fd(TRUE, NULL, NULL, 
  65. OFN_EXPLORER|OFN_ENABLESIZING|OFN_PATHMUSTEXIST, 
  66. _T("Video Title Set IFO file (*.ifo)|*.ifo|"), this, 0);
  67. if(fd.DoModal() == IDOK)
  68. {
  69. m_log.SetWindowText(_T(""));
  70. m_log.SetMargins(0, 0);
  71. CString fn = fd.GetPathName();
  72. if(FAILED(m_pVSFRipper->SetInput(fn))) fn.Empty();
  73. m_infn = fn;
  74. UpdateData(FALSE);
  75. }
  76. }
  77. void CVSRipFileDlg::OnBnClickedButton2()
  78. {
  79. CString fn = m_infn.Mid(m_infn.ReverseFind('\')+1);
  80. int i = fn.ReverseFind('.');
  81. if(i > 0) fn = fn.Left(i);
  82. CFileDialog fd(FALSE, NULL, fn, 
  83. OFN_EXPLORER|OFN_ENABLESIZING|OFN_OVERWRITEPROMPT|OFN_PATHMUSTEXIST, 
  84. _T("VobSub index file (*.idx)|*.idx|"), this, 0);
  85. if(fd.DoModal() == IDOK)
  86. {
  87. CString fn = fd.GetPathName();
  88. if(FAILED(m_pVSFRipper->SetOutput(fn))) fn.Empty();
  89. m_outfn = fn;
  90. UpdateData(FALSE);
  91. }
  92. }