mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.1 KiB
84 lines
2.1 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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
|
|
|