PropPageMFCCtl.cpp
上传用户:lc8096
上传日期:2007-01-02
资源大小:40k
文件大小:6k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. // PropPageMFCCtl.cpp : Implementation of the CPropPageMFCCtrl ActiveX Control class.
  2. #include "stdafx.h"
  3. #include "PropPageMFC.h"
  4. #include "PropPageMFCCtl.h"
  5. #include "PropPageMFCPpg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. IMPLEMENT_DYNCREATE(CPropPageMFCCtrl, COleControl)
  12. /////////////////////////////////////////////////////////////////////////////
  13. // Message map
  14. BEGIN_MESSAGE_MAP(CPropPageMFCCtrl, COleControl)
  15. //{{AFX_MSG_MAP(CPropPageMFCCtrl)
  16. // NOTE - ClassWizard will add and remove message map entries
  17. //    DO NOT EDIT what you see in these blocks of generated code !
  18. //}}AFX_MSG_MAP
  19. ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
  20. END_MESSAGE_MAP()
  21. /////////////////////////////////////////////////////////////////////////////
  22. // Dispatch map
  23. BEGIN_DISPATCH_MAP(CPropPageMFCCtrl, COleControl)
  24. //{{AFX_DISPATCH_MAP(CPropPageMFCCtrl)
  25. DISP_FUNCTION(CPropPageMFCCtrl, "Execute", Execute, VT_EMPTY, VTS_NONE)
  26. //}}AFX_DISPATCH_MAP
  27. END_DISPATCH_MAP()
  28. /////////////////////////////////////////////////////////////////////////////
  29. // Event map
  30. BEGIN_EVENT_MAP(CPropPageMFCCtrl, COleControl)
  31. //{{AFX_EVENT_MAP(CPropPageMFCCtrl)
  32. EVENT_CUSTOM("ObjectFound", FireObjectFound, VTS_BSTR)
  33. //}}AFX_EVENT_MAP
  34. END_EVENT_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // Property pages
  37. // TODO: Add more property pages as needed.  Remember to increase the count!
  38. BEGIN_PROPPAGEIDS(CPropPageMFCCtrl, 1)
  39. PROPPAGEID(CPropPageMFCPropPage::guid)
  40. END_PROPPAGEIDS(CPropPageMFCCtrl)
  41. /////////////////////////////////////////////////////////////////////////////
  42. // Initialize class factory and guid
  43. IMPLEMENT_OLECREATE_EX(CPropPageMFCCtrl, "PROPPAGEMFC.PropPageMFCCtrl.1",
  44. 0xa56a23d3, 0x79af, 0x11d2, 0x8d, 0xc4, 0xc3, 0x6d, 0x15, 0x2e, 0x46, 0xfe)
  45. /////////////////////////////////////////////////////////////////////////////
  46. // Type library ID and version
  47. IMPLEMENT_OLETYPELIB(CPropPageMFCCtrl, _tlid, _wVerMajor, _wVerMinor)
  48. /////////////////////////////////////////////////////////////////////////////
  49. // Interface IDs
  50. const IID BASED_CODE IID_DPropPageMFC =
  51. { 0xa56a23d1, 0x79af, 0x11d2, { 0x8d, 0xc4, 0xc3, 0x6d, 0x15, 0x2e, 0x46, 0xfe } };
  52. const IID BASED_CODE IID_DPropPageMFCEvents =
  53. { 0xa56a23d2, 0x79af, 0x11d2, { 0x8d, 0xc4, 0xc3, 0x6d, 0x15, 0x2e, 0x46, 0xfe } };
  54. /////////////////////////////////////////////////////////////////////////////
  55. // Control type information
  56. static const DWORD BASED_CODE _dwPropPageMFCOleMisc =
  57. OLEMISC_INVISIBLEATRUNTIME |
  58. OLEMISC_SETCLIENTSITEFIRST |
  59. OLEMISC_INSIDEOUT |
  60. OLEMISC_CANTLINKINSIDE |
  61. OLEMISC_RECOMPOSEONRESIZE;
  62. IMPLEMENT_OLECTLTYPE(CPropPageMFCCtrl, IDS_PROPPAGEMFC, _dwPropPageMFCOleMisc)
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CPropPageMFCCtrl::CPropPageMFCCtrlFactory::UpdateRegistry -
  65. // Adds or removes system registry entries for CPropPageMFCCtrl
  66. BOOL CPropPageMFCCtrl::CPropPageMFCCtrlFactory::UpdateRegistry(BOOL bRegister)
  67. {
  68. // TODO: Verify that your control follows apartment-model threading rules.
  69. // Refer to MFC TechNote 64 for more information.
  70. // If your control does not conform to the apartment-model rules, then
  71. // you must modify the code below, changing the 6th parameter from
  72. // afxRegApartmentThreading to 0.
  73. if (bRegister)
  74. return AfxOleRegisterControlClass(
  75. AfxGetInstanceHandle(),
  76. m_clsid,
  77. m_lpszProgID,
  78. IDS_PROPPAGEMFC,
  79. IDB_PROPPAGEMFC,
  80. afxRegApartmentThreading,
  81. _dwPropPageMFCOleMisc,
  82. _tlid,
  83. _wVerMajor,
  84. _wVerMinor);
  85. else
  86. return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
  87. }
  88. /////////////////////////////////////////////////////////////////////////////
  89. // CPropPageMFCCtrl::CPropPageMFCCtrl - Constructor
  90. CPropPageMFCCtrl::CPropPageMFCCtrl()
  91. {
  92. InitializeIIDs(&IID_DPropPageMFC, &IID_DPropPageMFCEvents);
  93. // TODO: Initialize your control's instance data here.
  94. }
  95. /////////////////////////////////////////////////////////////////////////////
  96. // CPropPageMFCCtrl::~CPropPageMFCCtrl - Destructor
  97. CPropPageMFCCtrl::~CPropPageMFCCtrl()
  98. {
  99. // TODO: Cleanup your control's instance data here.
  100. }
  101. /////////////////////////////////////////////////////////////////////////////
  102. // CPropPageMFCCtrl::OnDraw - Drawing function
  103. void CPropPageMFCCtrl::OnDraw(
  104. CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
  105. {
  106. // TODO: Replace the following code with your own drawing code.
  107. pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
  108. pdc->Ellipse(rcBounds);
  109. }
  110. /////////////////////////////////////////////////////////////////////////////
  111. // CPropPageMFCCtrl::DoPropExchange - Persistence support
  112. void CPropPageMFCCtrl::DoPropExchange(CPropExchange* pPX)
  113. {
  114. ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
  115. COleControl::DoPropExchange(pPX);
  116. // TODO: Call PX_ functions for each persistent custom property.
  117. }
  118. /////////////////////////////////////////////////////////////////////////////
  119. // CPropPageMFCCtrl::OnResetState - Reset control to default state
  120. void CPropPageMFCCtrl::OnResetState()
  121. {
  122. COleControl::OnResetState();  // Resets defaults found in DoPropExchange
  123. // TODO: Reset any other control state here.
  124. }
  125. /////////////////////////////////////////////////////////////////////////////
  126. // CPropPageMFCCtrl message handlers
  127. void CPropPageMFCCtrl::Execute() 
  128. {
  129. // TODO: Add your dispatch handler code here
  130. FireObjectFound( "MFC_OBJECT_ID1" );
  131. FireObjectFound( "MFC_OBJECT_ID2" );
  132. FireObjectFound( "MFC_OBJECT_ID3" );
  133. FireObjectFound( "MFC_OBJECT_ID4" );
  134. FireObjectFound( "MFC_OBJECT_ID5" );
  135. FireObjectFound( "MFC_OBJECT_ID6" );
  136. FireObjectFound( "MFC_OBJECT_ID7" );
  137. FireObjectFound( "MFC_OBJECT_ID8" );
  138. FireObjectFound( "MFC_OBJECT_ID9" );
  139. FireObjectFound( "MFC_OBJECT_ID0" );
  140. }