DATAOBJ.CPP
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // dataobj.cpp : implementation file
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. #include "stdafx.h"
  13. #include "iviewers.h"
  14. #include "iview.h"
  15. #include "dataobj.h"
  16. #include "util.h"
  17. #include "idataobj.h"
  18. #ifdef _DEBUG
  19. #undef THIS_FILE
  20. static char BASED_CODE THIS_FILE[] = __FILE__;
  21. #endif
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CDataObjectViewer
  24. IMPLEMENT_DYNCREATE(CDataObjectViewer, CInterfaceViewer)
  25. CDataObjectViewer::CDataObjectViewer()
  26. {
  27. }
  28. CDataObjectViewer::~CDataObjectViewer()
  29. {
  30. }
  31. BEGIN_MESSAGE_MAP(CDataObjectViewer, CInterfaceViewer)
  32. //{{AFX_MSG_MAP(CDataObjectViewer)
  33. // NOTE - the ClassWizard will add and remove mapping macros here.
  34. //}}AFX_MSG_MAP
  35. END_MESSAGE_MAP()
  36. IMPLEMENT_OLECREATE(CDataObjectViewer, "Ole2View.IDataObject.1", 0x28d8aba0, 0x4b78, 0x11ce, 0xb2, 0x7d, 0x0, 0xaa, 0x0, 0x1f, 0x73, 0xc1)
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CDataObjectViewer View imp.
  39. HRESULT CDataObjectViewer::OnView(HWND hwndParent, REFIID riid, LPUNKNOWN punk)
  40. {
  41. SCODE sc = NOERROR ;
  42. ASSERT(hwndParent);
  43. ASSERT(punk);
  44. if (riid != IID_IDataObject)
  45. {
  46. AfxMessageBox( _T("IDataObject interface viewer only supports IID_IDataObject") ) ;
  47. return E_INVALIDARG ;
  48. }
  49. IDataObject* pdataobj = NULL ;
  50. sc = punk->QueryInterface( riid, (void**)&pdataobj ) ;
  51. if (FAILED(sc))
  52. {
  53. AfxMessageBox( _T("Object does not support IDataObject") ) ;
  54. return E_UNEXPECTED ;
  55. }
  56. CIDataObjectDlg* pdlg ;
  57. pdlg = new CIDataObjectDlg( hwndParent, pdataobj, riid, _T("") ) ;
  58. if (pdlg)
  59. {
  60. pdlg->DoModal() ;
  61. delete pdlg ;
  62. }
  63. pdataobj->Release() ;
  64. return sc ;
  65. }
  66. /////////////////////////////////////////////////////////////////////////////
  67. // CDataObjectDlg dialog
  68. CDataObjectDlg::CDataObjectDlg(CWnd* pParent /*=NULL*/)
  69. : CDialog(CDataObjectDlg::IDD, pParent)
  70. {
  71. //{{AFX_DATA_INIT(CDataObjectDlg)
  72. // NOTE: the ClassWizard will add member initialization here
  73. //}}AFX_DATA_INIT
  74. }
  75. void CDataObjectDlg::DoDataExchange(CDataExchange* pDX)
  76. {
  77. CDialog::DoDataExchange(pDX);
  78. //{{AFX_DATA_MAP(CDataObjectDlg)
  79. // NOTE: the ClassWizard will add DDX and DDV calls here
  80. //}}AFX_DATA_MAP
  81. }
  82. BEGIN_MESSAGE_MAP(CDataObjectDlg, CDialog)
  83. //{{AFX_MSG_MAP(CDataObjectDlg)
  84. // NOTE: the ClassWizard will add message map macros here
  85. //}}AFX_MSG_MAP
  86. END_MESSAGE_MAP()
  87. /////////////////////////////////////////////////////////////////////////////
  88. // CDataObjectDlg message handlers