OLEDBDirConsumerView.cpp
上传用户:benben_wyd
上传日期:2010-02-26
资源大小:1229k
文件大小:3k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // OLEDBDirConsumerView.cpp : implementation of the COLEDBDirConsumerView class
  2. //
  3. #include "stdafx.h"
  4. #include "OLEDBDirConsumer.h"
  5. #include "OLEDBDirConsumerSet.h"
  6. #include "OLEDBDirConsumerDoc.h"
  7. #include "OLEDBDirConsumerView.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // COLEDBDirConsumerView
  15. IMPLEMENT_DYNCREATE(COLEDBDirConsumerView, COleDBRecordView)
  16. BEGIN_MESSAGE_MAP(COLEDBDirConsumerView, COleDBRecordView)
  17. //{{AFX_MSG_MAP(COLEDBDirConsumerView)
  18. ON_EN_KILLFOCUS(IDC_DIRECTORY, OnKillfocusDirectory)
  19. //}}AFX_MSG_MAP
  20. END_MESSAGE_MAP()
  21. /////////////////////////////////////////////////////////////////////////////
  22. // COLEDBDirConsumerView construction/destruction
  23. COLEDBDirConsumerView::COLEDBDirConsumerView()
  24. : COleDBRecordView(COLEDBDirConsumerView::IDD)
  25. {
  26. //{{AFX_DATA_INIT(COLEDBDirConsumerView)
  27. m_pSet = NULL;
  28. m_strDirectory = _T("");
  29. //}}AFX_DATA_INIT
  30. }
  31. COLEDBDirConsumerView::~COLEDBDirConsumerView()
  32. {
  33. }
  34. void COLEDBDirConsumerView::DoDataExchange(CDataExchange* pDX)
  35. {
  36. COleDBRecordView::DoDataExchange(pDX);
  37. //{{AFX_DATA_MAP(COLEDBDirConsumerView)
  38. DDX_Text(pDX, IDC_DIRECTORY, m_strDirectory);
  39. DDV_MaxChars(pDX, m_strDirectory, 260);
  40. //}}AFX_DATA_MAP
  41. //Added by Chuck Wood to link OLE DB Variables to text boxes
  42. DDX_Text(pDX, IDC_FILEATTRIBUTES, m_pSet->m_strFileAttributes, 7);
  43. DDX_Text(pDX, IDC_FILESIZE, m_pSet->m_nFileSize);
  44. DDX_Text(pDX, IDC_FILENAME, m_pSet->m_strFileName, 260);
  45. DDX_Text(pDX, IDC_SHORTFILENAME, m_pSet->m_strShortFileName, 14);
  46. }
  47. BOOL COLEDBDirConsumerView::PreCreateWindow(CREATESTRUCT& cs)
  48. {
  49. return COleDBRecordView::PreCreateWindow(cs);
  50. }
  51. void COLEDBDirConsumerView::OnInitialUpdate()
  52. {
  53. m_pSet = &GetDocument()->m_oLEDBDirConsumerSet;
  54. {
  55. CWaitCursor wait;
  56. HRESULT hr = m_pSet->Open();
  57. if (hr != S_OK)
  58. {
  59. AfxMessageBox(_T("Record set failed to open."), MB_OK);
  60. m_bOnFirstRecord = TRUE;
  61. m_bOnLastRecord = TRUE;
  62. }
  63. }
  64. //Added by Chuck Wood to initialize the directory
  65. m_strDirectory = m_pSet->GetDir();
  66. COleDBRecordView::OnInitialUpdate();
  67. }
  68. /////////////////////////////////////////////////////////////////////////////
  69. // COLEDBDirConsumerView diagnostics
  70. #ifdef _DEBUG
  71. void COLEDBDirConsumerView::AssertValid() const
  72. {
  73. COleDBRecordView::AssertValid();
  74. }
  75. void COLEDBDirConsumerView::Dump(CDumpContext& dc) const
  76. {
  77. COleDBRecordView::Dump(dc);
  78. }
  79. COLEDBDirConsumerDoc* COLEDBDirConsumerView::GetDocument() // non-debug version is inline
  80. {
  81. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COLEDBDirConsumerDoc)));
  82. return (COLEDBDirConsumerDoc*)m_pDocument;
  83. }
  84. #endif //_DEBUG
  85. /////////////////////////////////////////////////////////////////////////////
  86. // COLEDBDirConsumerView database support
  87. CRowset* COLEDBDirConsumerView::OnGetRowset()
  88. {
  89. return m_pSet;
  90. }
  91. void COLEDBDirConsumerView::OnKillfocusDirectory() 
  92. {
  93. UpdateData(TRUE);
  94. m_pSet->SetDir(m_strDirectory);
  95. UpdateData(FALSE);
  96. }