dlgproxy.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // [!output DIALOG_AUTO_PROXY_IMPL] : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "[!output APP_HEADER]"
  5. #include "[!output DIALOG_AUTO_PROXY_HEADER]"
  6. #include "[!output DIALOG_HEADER]"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #endif
  10. // [!output DIALOG_AUTO_PROXY_CLASS]
  11. IMPLEMENT_DYNCREATE([!output DIALOG_AUTO_PROXY_CLASS], [!output DIALOG_AUTO_PROXY_BASE_CLASS])
  12. [!output DIALOG_AUTO_PROXY_CLASS]::[!output DIALOG_AUTO_PROXY_CLASS]()
  13. {
  14. EnableAutomation();
  15. // To keep the application running as long as an automation
  16. //  object is active, the constructor calls AfxOleLockApp.
  17. AfxOleLockApp();
  18. // Get access to the dialog through the application's
  19. //  main window pointer.  Set the proxy's internal pointer
  20. //  to point to the dialog, and set the dialog's back pointer to
  21. //  this proxy.
  22. ASSERT (AfxGetApp()->m_pMainWnd != NULL);
  23. ASSERT_VALID (AfxGetApp()->m_pMainWnd);
  24. ASSERT_KINDOF([!output DIALOG_CLASS], AfxGetApp()->m_pMainWnd);
  25. m_pDialog = reinterpret_cast<[!output DIALOG_CLASS]*>(AfxGetApp()->m_pMainWnd);
  26. m_pDialog->m_pAutoProxy = this;
  27. }
  28. [!output DIALOG_AUTO_PROXY_CLASS]::~[!output DIALOG_AUTO_PROXY_CLASS]()
  29. {
  30. // To terminate the application when all objects created with
  31. //  with automation, the destructor calls AfxOleUnlockApp.
  32. //  Among other things, this will destroy the main dialog
  33. if (m_pDialog != NULL)
  34. m_pDialog->m_pAutoProxy = NULL;
  35. AfxOleUnlockApp();
  36. }
  37. void [!output DIALOG_AUTO_PROXY_CLASS]::OnFinalRelease()
  38. {
  39. // When the last reference for an automation object is released
  40. // OnFinalRelease is called.  The base class will automatically
  41. // deletes the object.  Add additional cleanup required for your
  42. // object before calling the base class.
  43. [!output DIALOG_AUTO_PROXY_BASE_CLASS]::OnFinalRelease();
  44. }
  45. BEGIN_MESSAGE_MAP([!output DIALOG_AUTO_PROXY_CLASS], [!output DIALOG_AUTO_PROXY_BASE_CLASS])
  46. END_MESSAGE_MAP()
  47. BEGIN_DISPATCH_MAP([!output DIALOG_AUTO_PROXY_CLASS], [!output DIALOG_AUTO_PROXY_BASE_CLASS])
  48. END_DISPATCH_MAP()
  49. // Note: we add support for IID_I[!output SAFE_PROJECT_NAME] to support typesafe binding
  50. //  from VBA.  This IID must match the GUID that is attached to the
  51. //  dispinterface in the .IDL file.
  52. // {[!output DISPIID_REGISTRY_FORMAT]}
  53. static const IID IID_I[!output SAFE_PROJECT_NAME] =
  54. [!output DISPIID_STATIC_CONST_GUID_FORMAT];
  55. BEGIN_INTERFACE_MAP([!output DIALOG_AUTO_PROXY_CLASS], [!output DIALOG_AUTO_PROXY_BASE_CLASS])
  56. INTERFACE_PART([!output DIALOG_AUTO_PROXY_CLASS], IID_I[!output SAFE_PROJECT_NAME], Dispatch)
  57. END_INTERFACE_MAP()
  58. // The IMPLEMENT_OLECREATE2 macro is defined in StdAfx.h of this project
  59. // {[!output APP_CLSID_REGISTRY_FORMAT]}
  60. IMPLEMENT_OLECREATE2([!output DIALOG_AUTO_PROXY_CLASS], "[!output SAFE_PROJECT_NAME].Application", [!output APP_CLSID_IMPLEMENT_OLECREATE_FORMAT])
  61. // [!output DIALOG_AUTO_PROXY_CLASS] message handlers