home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 January / pcwk_01_1999.iso / Wtestowe / Vistdstd / Install / Data.Z / MFC4_vsl.AWX / TEMPLATE / DLLROOT.CPP < prev    next >
C/C++ Source or Header  |  1997-03-07  |  3KB  |  123 lines

  1. // $$root$$.cpp : Defines the initialization routines for the DLL.
  2. //
  3.  
  4. #include "stdafx.h"
  5. $$IF(EXTDLL)
  6. #include <afxdllx.h>
  7. $$ELSE // !EXTDLL
  8. #include "$$root$$.h"
  9. $$ENDIF //!EXTDLL
  10.  
  11. #ifdef _DEBUG
  12. #define new DEBUG_NEW
  13. #undef THIS_FILE
  14. static char THIS_FILE[] = __FILE__;
  15. #endif
  16.  
  17. $$IF(EXTDLL)
  18. static AFX_EXTENSION_MODULE $$safe_root$$DLL = { NULL, NULL };
  19.  
  20. extern "C" int APIENTRY
  21. DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
  22. {
  23.     if (dwReason == DLL_PROCESS_ATTACH)
  24.     {
  25.         TRACE0("$$ROOT$$.DLL Initializing!\n");
  26.         
  27. $$IF(VERBOSE)
  28.         // Extension DLL one-time initialization
  29. $$ENDIF
  30.         AfxInitExtensionModule($$safe_root$$DLL, hInstance);
  31.  
  32. $$IF(VERBOSE)
  33.         // Insert this DLL into the resource chain
  34. $$ENDIF
  35.         new CDynLinkLibrary($$safe_root$$DLL);
  36.     }
  37.     else if (dwReason == DLL_PROCESS_DETACH)
  38.     {
  39.         TRACE0("$$ROOT$$.DLL Terminating!\n");
  40.     }
  41. $$IF(VERBOSE)
  42.     return 1;   // ok
  43. $$ELSE
  44.     return 1;
  45. $$ENDIF
  46. }
  47. $$ELSE //!EXTDLL
  48. /////////////////////////////////////////////////////////////////////////////
  49. // $$APP_CLASS$$
  50.  
  51. BEGIN_MESSAGE_MAP($$APP_CLASS$$, $$APP_BASE_CLASS$$)
  52.     //{{AFX_MSG_MAP($$APP_CLASS$$)
  53.         // NOTE - the ClassWizard will add and remove mapping macros here.
  54.         //    DO NOT EDIT what you see in these blocks of generated code!
  55.     //}}AFX_MSG_MAP
  56. END_MESSAGE_MAP()
  57.  
  58. /////////////////////////////////////////////////////////////////////////////
  59. // $$APP_CLASS$$ construction
  60.  
  61. $$APP_CLASS$$::$$APP_CLASS$$()
  62. {
  63. $$IF(VERBOSE)
  64.     // TODO: add construction code here,
  65.     // Place all significant initialization in InitInstance
  66. $$ENDIF
  67. }
  68.  
  69. /////////////////////////////////////////////////////////////////////////////
  70. // The one and only $$APP_CLASS$$ object
  71.  
  72. $$APP_CLASS$$ theApp;
  73. $$IF(AUTOMATION || SOCKETS)
  74.  
  75. /////////////////////////////////////////////////////////////////////////////
  76. // $$APP_CLASS$$ initialization
  77.  
  78. BOOL $$APP_CLASS$$::InitInstance()
  79. {
  80. $$IF(SOCKETS)
  81.     if (!AfxSocketInit())
  82.     {
  83.         AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
  84.         return FALSE;
  85.     }
  86.  
  87. $$ENDIF //SOCKETS
  88. $$IF(AUTOMATION)
  89.     // Register all OLE server (factories) as running.  This enables the
  90.     //  OLE libraries to create objects from other applications.
  91.     COleObjectFactory::RegisterAll();
  92.  
  93. $$ENDIF //AUTOMATION
  94.     return TRUE;
  95. }
  96. $$ENDIF //AUTOMATION || SOCKETS
  97. $$IF(AUTOMATION)
  98.  
  99. /////////////////////////////////////////////////////////////////////////////
  100. // Special entry points required for inproc servers
  101.  
  102. STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
  103. {
  104.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  105.     return AfxDllGetClassObject(rclsid, riid, ppv);
  106. }
  107.  
  108. STDAPI DllCanUnloadNow(void)
  109. {
  110.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  111.     return AfxDllCanUnloadNow();
  112. }
  113.  
  114. // by exporting DllRegisterServer, you can use regsvr.exe
  115. STDAPI DllRegisterServer(void)
  116. {
  117.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  118.     COleObjectFactory::UpdateRegistryAll();
  119.     return S_OK;
  120. }
  121. $$ENDIF //AUTOMATION
  122. $$ENDIF //EXTDLL
  123.