windows-nt/Source/XPSP1/NT/inetsrv/query/cisvc/cisvc.cxx
2020-09-26 16:20:57 +08:00

85 lines
2.1 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1998.
//
// File: cisvc.cxx
//
// Contents: CI service
//
// History: 17-Sep-96 dlee Created
//
//--------------------------------------------------------------------------
#include <pch.cxx>
#pragma hdrstop
#include <cievtmsg.h>
#include <cisvcex.hxx>
#include <ciregkey.hxx>
#include <regacc.hxx>
DECLARE_INFOLEVEL(ci)
//+-------------------------------------------------------------------------
//
// Function: main, public
//
// Purpose: Call into CI to start the service
//
// Arguments: [argc] - number of arguments passed
// [argv] - arguments
//
// History: 05-Jan-97 dlee Created
//
//--------------------------------------------------------------------------
extern "C" int __cdecl wmain( int argc, WCHAR *argv[] )
{
#if CIDBG == 1
ciInfoLevel = DEB_ERROR | DEB_WARN | DEB_IWARN | DEB_IERROR;
#endif
static SERVICE_TABLE_ENTRY _aServiceTableEntry[2] =
{
{ wcsCiSvcName, CiSvcMain },
{ NULL, NULL }
};
ciDebugOut( (DEB_ITRACE, "Ci Service: Attempting to start Ci service\n" ));
// Turn off system popups
CNoErrorMode noErrors;
// Translate system exceptions into C++ exceptions
CTranslateSystemExceptions translate;
TRY
{
//
// Inform the service control dispatcher the address of our start
// routine. This routine will not return if it is successful,
// until service shutdown.
//
if ( !StartServiceCtrlDispatcher( _aServiceTableEntry ) )
{
ciDebugOut( (DEB_ITRACE, "Ci Service: Failed to start service, rc=0x%x\n", GetLastError() ));
THROW( CException() );
}
}
CATCH (CException, e)
{
ciDebugOut(( DEB_ERROR,
"Ci Service exception in main(): 0x%x\n",
e.GetErrorCode() ));
}
END_CATCH
ciDebugOut( (DEB_ITRACE, "Ci Service: Leaving CIServiceMain()\n" ));
return 0;
} //main