/*************************************************************************** $name: APPT.CPP $version: 1.0 $date_modified: 121498 $description: Create and destroy application session. This is also where we create our Novell GroupWare Session. $owner: GroupWise SDK Team Lead Copyright (c) 1998 Novell, Inc. All Rights Reserved. THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND TREATIES. USE AND REDISTRIBUTION OF THIS WORK IS SUBJECT TO THE LICENSE AGREEMENT ACCOMPANYING THE SOFTWARE DEVELOPMENT KIT (SDK) THAT CONTAINS THIS WORK. PURSUANT TO THE SDK LICENSE AGREEMENT, NOVELL HEREBY GRANTS TO DEVELOPER A ROYALTY-FREE, NON-EXCLUSIVE LICENSE TO INCLUDE NOVELL'S SAMPLE CODE IN ITS PRODUCT. NOVELL GRANTS DEVELOPER WORLDWIDE DISTRIBUTION RIGHTS TO MARKET, DISTRIBUTE, OR SELL NOVELL'S SAMPLE CODE AS A COMPONENT OF DEVELOPER'S PRODUCTS. NOVELL SHALL HAVE NO OBLIGATIONS TO DEVELOPER OR DEVELOPER'S CUSTOMERS WITH RESPECT TO THIS CODE. ****************************************************************************/ #include "stdafx.h" #include "appt.h" #include "bsdlg.h" #include "apptDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif BEGIN_MESSAGE_MAP(CApptApp, CWinApp) //{{AFX_MSG_MAP(CApptApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() /*--------------------------------------- CApptApp NOTE: Constructor for CApptApp object ---------------------------------------*/ CApptApp::CApptApp() { } CApptApp theApp; /*---------------------------------------------- InitInstance NOTE: This is where we create and initialize the instance of the application. ----------------------------------------------*/ BOOL CApptApp::InitInstance() { // Initialize OLE libraries if(!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif // Parse the command line to see if launched as OLE server if(RunEmbedded() || RunAutomated()) { // Register all OLE server (factories) as running. This enables the // OLE libraries to create objects from other applications. COleTemplateServer::RegisterAll(); // Application was run with /Embedding or /Automation. Don't show the // main window in this case. return TRUE; } // When a server application is launched stand-alone, it is a good idea // to update the system registry in case it has been damaged. COleObjectFactory::UpdateRegistryAll(); CApptDlg dlg; m_pMainWnd = &dlg; InitGWSession(); dlg.InitAccount(); dlg.DoModal(); // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; } /*---------------------------------------------- ExitInstance NOTE: Exit application instance -----------------------------------------------*/ int CApptApp::ExitInstance() { if(m_pIGWSession) m_pIGWSession->Release(); CoUninitialize(); return 0; } /*------------------------------------------------------------------------ InitGWSession NOTE: Initialize a new Novell GroupWare Session -------------------------------------------------------------------------*/ BOOL CApptApp::InitGWSession() { CoInitialize(NULL); // Create the Session Object if(FAILED(CoCreateInstance(CLSID_GroupWare, NULL, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER, IID_IGWSession, (void**)&m_pIGWSession))) { AfxMessageBox("Could not create session object"); return FALSE; } return TRUE; }