text: // JobAllocCOMDLL.cpp : Defines the initialization routines for the DLL.
  //
  
  #include "stdafx.h"
  #include "JobAllocCOMDLL.h"
  
  #ifdef _DEBUG
  #define new DEBUG_NEW
  #undef THIS_FILE
  static char THIS_FILE[] = __FILE__;
  #endif
  
  //
  //	Note!
  //
  //		If this DLL is dynamically linked against the MFC
  //		DLLs, any functions exported from this DLL which
  //		call into MFC must have the AFX_MANAGE_STATE macro
  //		added at the very beginning of the function.
  //
  //		For example:
  //
  //		extern "C" BOOL PASCAL EXPORT ExportedFunction()
  //		{
  //			AFX_MANAGE_STATE(AfxGetStaticModuleState());
  //			// normal function body here
  //		}
  //
  //		It is very important that this macro appear in each
  //		function, prior to any calls into MFC.  This means that
  //		it must appear as the first statement within the 
  //		function, even before any object variable declarations
  //		as their constructors may generate calls into the MFC
  //		DLL.
  //
  //		Please see MFC Technical Notes 33 and 58 for additional
  //		details.
  //
  
  /////////////////////////////////////////////////////////////////////////////
  // CJobAllocCOMDLLApp
  
  BEGIN_MESSAGE_MAP(CJobAllocCOMDLLApp, CWinApp)
  	//{{AFX_MSG_MAP(CJobAllocCOMDLLApp)
  		// NOTE - the ClassWizard will add and remove mapping macros here.
  		//    DO NOT EDIT what you see in these blocks of generated code!
  	//}}AFX_MSG_MAP
  END_MESSAGE_MAP()
  
  /////////////////////////////////////////////////////////////////////////////
  // CJobAllocCOMDLLApp construction
  
  CJobAllocCOMDLLApp::CJobAllocCOMDLLApp()
  {  
  	// TODO: add construction code here,
  	// Place all significant initialization in InitInstance
  
  	TRACE("CJobAllocCOMDLLApp::CJobAllocCOMDLLApp()\n");
  }
  
  /////////////////////////////////////////////////////////////////////////////
  // The one and only CJobAllocCOMDLLApp object
  
  CJobAllocCOMDLLApp theApp;
  
  /////////////////////////////////////////////////////////////////////////////
  // CJobAllocCOMDLLApp initialization
  
  BOOL CJobAllocCOMDLLApp::InitInstance()
  {
  	// Register all OLE server (factories) as running.  This enables the
  	//  OLE libraries to create objects from other applications.
  	
  	COleObjectFactory::RegisterAll();
  
  	TRACE("CJobAllocCOMDLLApp::InitInstance()\n");
  
  	return TRUE;
  }
  
  /////////////////////////////////////////////////////////////////////////////
  // Special entry points required for inproc servers
  
  UINT g_uObjCount = 0;
  
  STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
  {
  	TRACE("DllGetClassObject\n");
  	
  	AFX_MANAGE_STATE(AfxGetStaticModuleState());
  	return AfxDllGetClassObject(rclsid, riid, ppv);
  }
  
  STDAPI DllCanUnloadNow(void)
  {
  	TRACE("DllCanUnloadNow uObjCount = %d\n", g_uObjCount);
  
  	if(g_uObjCount > 0)
  		return S_FALSE;
  	
  	AFX_MANAGE_STATE(AfxGetStaticModuleState());
  	return AfxDllCanUnloadNow();
  }
  
  // by exporting DllRegisterServer, you can use regsvr.exe
  STDAPI DllRegisterServer(void)
  {
  	TRACE("DllRegisterServer\n");
  
  	AFX_MANAGE_STATE(AfxGetStaticModuleState());
  	COleObjectFactory::UpdateRegistryAll();
  	return S_OK;
  }
  