Класс функция CAtlServiceModuleTCAtlServiceModuleT Class

Этот класс реализует службу.This class implements a service.

Важно!

Этот класс и его члены не могут использоваться в приложениях, выполняемых в среда выполнения Windows.This class and its members cannot be used in applications that execute in the Windows Runtime.

СинтаксисSyntax

template <class T, UINT nServiceNameID>
class ATL_NO_VTABLE CAtlServiceModuleT : public CAtlExeModuleT<T>

ПараметрыParameters

TT
Класс, производный от CAtlServiceModuleT .Your class derived from CAtlServiceModuleT.

нсервиценамеидnServiceNameID
Идентификатор ресурса службы.The resource identifier of the service.

ЭлементыMembers

Открытые конструкторыPublic Constructors

nameName ОписаниеDescription
Функция CAtlServiceModuleT:: функция CAtlServiceModuleTCAtlServiceModuleT::CAtlServiceModuleT Конструктор.The constructor.

Открытые методыPublic Methods

nameName ОписаниеDescription
Функция CAtlServiceModuleT:: HandlerCAtlServiceModuleT::Handler Подпрограммы обработчика для службы.The handler routine for the service.
Функция CAtlServiceModuleT:: ИнитиализесекуритиCAtlServiceModuleT::InitializeSecurity Предоставляет параметры безопасности по умолчанию для службы.Provides the default security settings for the service.
Функция CAtlServiceModuleT:: installCAtlServiceModuleT::Install Устанавливает и создает службу.Installs and creates the service.
Функция CAtlServiceModuleT:: устанавливаютсяCAtlServiceModuleT::IsInstalled Подтверждает, что служба установлена.Confirms that the service has been installed.
Функция CAtlServiceModuleT:: LogEventCAtlServiceModuleT::LogEvent Выполняет запись в журнал событий.Writes to the event log.
Функция CAtlServiceModuleT:: OnContinueCAtlServiceModuleT::OnContinue Переопределите этот метод, чтобы продолжить работу службы.Override this method to continue the service.
Функция CAtlServiceModuleT:: oninterrogatCAtlServiceModuleT::OnInterrogate Переопределите этот метод для опроса службы.Override this method to interrogate the service.
Функция CAtlServiceModuleT:: OnPauseCAtlServiceModuleT::OnPause Переопределите этот метод, чтобы приостановить работу службы.Override this method to pause the service.
Функция CAtlServiceModuleT:: OnShutdownCAtlServiceModuleT::OnShutdown Переопределите этот метод, чтобы завершить работу службыOverride this method to shut down the service
Функция CAtlServiceModuleT:: OnStopCAtlServiceModuleT::OnStop Переопределите этот метод, чтобы отключить службуOverride this method to stop the service
Функция CAtlServiceModuleT:: ОнункновнрекуестCAtlServiceModuleT::OnUnknownRequest Переопределите этот метод для обработки неизвестных запросов к службеOverride this method to handle unknown requests to the service
Функция CAtlServiceModuleT::P АрсекоммандлинеCAtlServiceModuleT::ParseCommandLine Анализирует командную строку и при необходимости выполняет регистрацию.Parses the command line and performs registration if necessary.
Функция CAtlServiceModuleT::P РемессажелупCAtlServiceModuleT::PreMessageLoop Этот метод вызывается непосредственно перед входом в цикл обработки сообщений.This method is called immediately before entering the message loop.
Функция CAtlServiceModuleT:: РегистераппидCAtlServiceModuleT::RegisterAppId Регистрирует службу в реестре.Registers the service in the registry.
Функция CAtlServiceModuleT:: RunCAtlServiceModuleT::Run Запускает службу.Runs the service.
Функция CAtlServiceModuleT:: ServiceMainCAtlServiceModuleT::ServiceMain Метод, вызываемый диспетчером управления службами.The method called by the Service Control Manager.
Функция CAtlServiceModuleT:: сбой SetServiceStatusCAtlServiceModuleT::SetServiceStatus Обновляет состояние службы.Updates the service status.
Функция CAtlServiceModuleT:: StartCAtlServiceModuleT::Start Вызывается CAtlServiceModuleT::WinMain при запуске службы.Called by CAtlServiceModuleT::WinMain when the service starts.
Функция CAtlServiceModuleT:: UninstallCAtlServiceModuleT::Uninstall Останавливает и удаляет службу.Stops and removes the service.
Функция CAtlServiceModuleT:: UnlockCAtlServiceModuleT::Unlock Уменьшает счетчик блокировок службы.Decrements the service's lock count.
Функция CAtlServiceModuleT:: УнрегистераппидCAtlServiceModuleT::UnregisterAppId Удаляет службу из реестра.Removes the service from the registry.
Функция CAtlServiceModuleT:: WinMainCAtlServiceModuleT::WinMain Этот метод реализует код, необходимый для запуска службы.This method implements the code required to run the service.

Открытые члены данныхPublic Data Members

ИмяName ОписаниеDescription
Функция CAtlServiceModuleT:: m_bServiceCAtlServiceModuleT::m_bService Флаг, указывающий, что программа запущена как служба.Flag indicating the program is running as a service.
Функция CAtlServiceModuleT:: m_dwThreadIDCAtlServiceModuleT::m_dwThreadID Переменная члена, в которой хранится идентификатор потока.Member variable storing the thread identifier.
Функция CAtlServiceModuleT:: m_hServiceStatusCAtlServiceModuleT::m_hServiceStatus Переменная-член хранит маркер в структуре сведений о состоянии для текущей службы.Member variable storing a handle to the status information structure for the current service.
Функция CAtlServiceModuleT:: m_statusCAtlServiceModuleT::m_status Переменная члена, в которой хранится структура сведений о состоянии для текущей службы.Member variable storing the status information structure for the current service.
Функция CAtlServiceModuleT:: m_szServiceNameCAtlServiceModuleT::m_szServiceName Имя регистрируемой службы.The name of the service being registered.

КомментарииRemarks

CAtlServiceModuleT, производный от CAtlExeModuleT, реализует модуль службы ATL.CAtlServiceModuleT, derived from CAtlExeModuleT, implements a ATL Service module. CAtlServiceModuleT предоставляет методы для обработки, установки, регистрации и удаления из командной строки.CAtlServiceModuleT provides methods for command-line processing, installation, registering, and removal. Если требуются дополнительные функциональные возможности, эти и другие методы можно переопределить.If extra functionality is required, these and other methods can be overridden.

Этот класс заменяет устаревший класс CComModule , используемый в более ранних версиях ATL.This class replaces the obsolete CComModule Class used in earlier versions of ATL. Дополнительные сведения см. в разделе Классы модулей ATL .See ATL Module Classes for more details.

Иерархия наследованияInheritance Hierarchy

_ATL_MODULE_ATL_MODULE

катлмодулеCAtlModule

катлмодулетCAtlModuleT

CAtlExeModuleTCAtlExeModuleT

CAtlServiceModuleT

ТребованияRequirements

Заголовок: atlbase. hHeader: atlbase.h

Функция CAtlServiceModuleT:: функция CAtlServiceModuleTCAtlServiceModuleT::CAtlServiceModuleT

Конструктор.The constructor.

CAtlServiceModuleT() throw();

КомментарииRemarks

Инициализирует элементы данных и задает начальное состояние службы.Initializes the data members and sets the initial service status.

Функция CAtlServiceModuleT:: HandlerCAtlServiceModuleT::Handler

Подпрограммы обработчика для службы.The handler routine for the service.

void Handler(DWORD dwOpcode) throw();

ПараметрыParameters

двопкодеdwOpcode
Параметр, определяющий операцию обработчика.A switch that defines the handler operation. Дополнительные сведения см. в разделе Примечания.For details, see the Remarks.

КомментарииRemarks

Это код, который вызывает диспетчер управления службами (SCM) для получения состояния службы и выполнения инструкций, таких как остановка или приостановка.This is the code that the Service Control Manager (SCM) calls to retrieve the status of the service and issue instructions such as stop or pause. SCM передает код операции, показанный ниже, чтобы Handler указать, что должна делать служба.The SCM passes an operation code, shown below, to Handler to indicate what the service should do.

Код операцииOperation code ЗначениеMeaning
SERVICE_CONTROL_STOPSERVICE_CONTROL_STOP останавливает службу.Stops the service. Переопределите метод функция CAtlServiceModuleT:: OnStop в ATLBASE. h, чтобы изменить поведение.Override the method CAtlServiceModuleT::OnStop in atlbase.h to change the behavior.
SERVICE_CONTROL_PAUSESERVICE_CONTROL_PAUSE Реализовано пользователем.User implemented. Переопределите пустой метод функция CAtlServiceModuleT:: OnPause в ATLBASE. h, чтобы приостановить работу службы.Override the empty method CAtlServiceModuleT::OnPause in atlbase.h to pause the service.
SERVICE_CONTROL_CONTINUESERVICE_CONTROL_CONTINUE Реализовано пользователем.User implemented. Переопределите пустой метод функция CAtlServiceModuleT:: OnContinue в ATLBASE. h, чтобы продолжить работу службы.Override the empty method CAtlServiceModuleT::OnContinue in atlbase.h to continue the service.
SERVICE_CONTROL_INTERROGATESERVICE_CONTROL_INTERROGATE Реализовано пользователем.User implemented. Переопределите пустой метод функция CAtlServiceModuleT:: oninterrogat в ATLBASE. h для опроса службы.Override the empty method CAtlServiceModuleT::OnInterrogate in atlbase.h to interrogate the service.
SERVICE_CONTROL_SHUTDOWNSERVICE_CONTROL_SHUTDOWN Реализовано пользователем.User implemented. Переопределите пустой метод функция CAtlServiceModuleT:: OnShutdown в ATLBASE. h, чтобы завершить работу службы.Override the empty method CAtlServiceModuleT::OnShutdown in atlbase.h to shutdown the service.

Если код операции не распознан, вызывается метод функция CAtlServiceModuleT:: онункновнрекуест .If the operation code isn't recognized, the method CAtlServiceModuleT::OnUnknownRequest is called.

Служба, создаваемая библиотекой ATL по умолчанию, обрабатывает только инструкцию по ошибке.A default ATL-generated service only handles the stop instruction. Если SCM передает инструкцию по остановке, служба сообщает SCM о том, что программа собирается остановиться.If the SCM passes the stop instruction, the service tells the SCM that the program is about to stop. Затем служба вызывает метод PostThreadMessage , чтобы отправить сообщение о выходе на себя.The service then calls PostThreadMessage to post a quit message to itself. Это завершает цикл обработки сообщений, и служба в конечном итоге будет закрыта.This terminates the message loop and the service will ultimately close.

Функция CAtlServiceModuleT:: ИнитиализесекуритиCAtlServiceModuleT::InitializeSecurity

Предоставляет параметры безопасности по умолчанию для службы.Provides the default security settings for the service.

HRESULT InitializeSecurity() throw();

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

Любой класс, производный от, CAtlServiceModuleT должен реализовывать этот метод в производном классе.Any class that derives from CAtlServiceModuleT must implement this method in the derived class.

Используйте проверку подлинности на уровне МАРКЕРа, уровень олицетворения RPC_C_IMP_LEVEL_IDENTIFY и соответствующий дескриптор безопасности, отличный от NULL, в вызове CoInitializeSecurity .Use PKT-level authentication, impersonation level of RPC_C_IMP_LEVEL_IDENTIFY and an appropriate non-null security descriptor in the call to CoInitializeSecurity.

Для созданных мастером проектов служб, не имеющих атрибута, это будетFor wizard-generated nonattributed service projects, this would be in

class CNonAttribServiceModule : public CAtlServiceModuleT< CNonAttribServiceModule, IDS_SERVICENAME >
{
public :
   DECLARE_LIBID(LIBID_NonAttribServiceLib)
   DECLARE_REGISTRY_APPID_RESOURCEID(IDR_NONATTRIBSERVICE, "{29160736-339F-4A1C-ABEF-C320CE103E12}")
   HRESULT InitializeSecurity() throw()
   {
      // TODO : Call CoInitializeSecurity and provide the appropriate security settings for 
      // your service
      // Suggested - PKT Level Authentication, 
      // Impersonation Level of RPC_C_IMP_LEVEL_IDENTIFY 
      // and an appropriate Non NULL Security Descriptor.

      return S_OK;
   }
};

Для проектов служб с атрибутами это будет вFor attributed service projects, this would be in

[ module(SERVICE, uuid = "{D3103322-7B70-4581-8E59-12769BD9A62B}", 
   name = "AttribService", 
   helpstring = "AttribService 1.0 Type Library", 
   resource_name="IDS_SERVICENAME") ]
class CAttribServiceModule
{
public:
   HRESULT InitializeSecurity() throw()
   {
      // TODO : Call CoInitializeSecurity and provide the appropriate security settings for 
      // your service
      // Suggested - PKT Level Authentication, 
      // Impersonation Level of RPC_C_IMP_LEVEL_IDENTIFY 
      // and an appropriate Non NULL Security Descriptor.

      return S_OK;
   }
};

Функция CAtlServiceModuleT:: installCAtlServiceModuleT::Install

Устанавливает и создает службу.Installs and creates the service.

BOOL Install() throw();

Возвращаемое значениеReturn Value

Возвращает TRUE при успешном выполнении, FALSE в случае сбоя.Returns TRUE on success, FALSE on failure.

КомментарииRemarks

Устанавливает службу в базу данных диспетчера управления службами (SCM), а затем создает объект службы.Installs the service into the Service Control Manager (SCM) database and then creates the service object. Если службу не удалось создать, отображается окно сообщения, а метод возвращает значение FALSE.If the service could not be created, a message box is displayed and the method returns FALSE.

Функция CAtlServiceModuleT:: устанавливаютсяCAtlServiceModuleT::IsInstalled

Подтверждает, что служба установлена.Confirms that the service has been installed.

BOOL IsInstalled() throw();

Возвращаемое значениеReturn Value

Возвращает значение TRUE, если служба установлена, и FALSE в противном случае.Returns TRUE if the service is installed, FALSE otherwise.

Функция CAtlServiceModuleT:: LogEventCAtlServiceModuleT::LogEvent

Выполняет запись в журнал событий.Writes to the event log.

void __cdecl LogEvent(LPCTSTR pszFormat, ...) throw();

ПараметрыParameters

псзформатpszFormat
Строка для записи в журнал событий.The string to write to the event log.

......
Необязательные дополнительные строки для записи в журнал событий.Optional extra strings to be written to the event log.

КомментарииRemarks

Этот метод записывает сведения в журнал событий с помощью функции репортевент.This method writes details out to an event log, using the function ReportEvent. Если служба не запущена, строка отправляется в консоль.If no service is running, the string is sent to the console.

Функция CAtlServiceModuleT:: m_bServiceCAtlServiceModuleT::m_bService

Флаг, указывающий, что программа запущена как служба.Flag indicating the program is running as a service.

BOOL m_bService;

КомментарииRemarks

Используется для различения EXE-файла службы от исполняемого файла приложения.Used to distinguish a Service EXE from an Application EXE.

Функция CAtlServiceModuleT:: m_dwThreadIDCAtlServiceModuleT::m_dwThreadID

Переменная члена, в которой хранится идентификатор потока службы.Member variable storing the thread identifier of the Service.

DWORD m_dwThreadID;

КомментарииRemarks

Эта переменная хранит идентификатор потока текущего потока.This variable stores the thread identifier of the current thread.

Функция CAtlServiceModuleT:: m_hServiceStatusCAtlServiceModuleT::m_hServiceStatus

Переменная-член хранит маркер в структуре сведений о состоянии для текущей службы.Member variable storing a handle to the status information structure for the current service.

SERVICE_STATUS_HANDLE m_hServiceStatus;

КомментарииRemarks

Структура SERVICE_STATUS содержит сведения о службе.The SERVICE_STATUS structure contains information about a service.

Функция CAtlServiceModuleT:: m_statusCAtlServiceModuleT::m_status

Переменная члена, в которой хранится структура сведений о состоянии для текущей службы.Member variable storing the status information structure for the current service.

SERVICE_STATUS m_status;

КомментарииRemarks

Структура SERVICE_STATUS содержит сведения о службе.The SERVICE_STATUS structure contains information about a service.

Функция CAtlServiceModuleT:: m_szServiceNameCAtlServiceModuleT::m_szServiceName

Имя регистрируемой службы.The name of the service being registered.

TCHAR [256] m_szServiceName;

КомментарииRemarks

Строка, завершающаяся нулем, в которой хранится имя службы.A null-terminated string which stores the name of the service.

Функция CAtlServiceModuleT:: OnContinueCAtlServiceModuleT::OnContinue

Переопределите этот метод, чтобы продолжить работу службы.Override this method to continue the service.

void OnContinue() throw();

Функция CAtlServiceModuleT:: oninterrogatCAtlServiceModuleT::OnInterrogate

Переопределите этот метод для опроса службы.Override this method to interrogate the service.

void OnInterrogate() throw();

Функция CAtlServiceModuleT:: OnPauseCAtlServiceModuleT::OnPause

Переопределите этот метод, чтобы приостановить работу службы.Override this method to pause the service.

void OnPause() throw();

Функция CAtlServiceModuleT:: OnShutdownCAtlServiceModuleT::OnShutdown

Переопределите этот метод, чтобы завершить работу службы.Override this method to shut down the service.

void OnShutdown() throw();

Функция CAtlServiceModuleT:: OnStopCAtlServiceModuleT::OnStop

Переопределите этот метод, чтобы отключить службу.Override this method to stop the service.

void OnStop() throw();

Функция CAtlServiceModuleT:: ОнункновнрекуестCAtlServiceModuleT::OnUnknownRequest

Переопределите этот метод для обработки неизвестных запросов к службе.Override this method to handle unknown requests to the service.

void OnUnknownRequest(DWORD /* dwOpcode*/) throw();

ПараметрыParameters

двопкодеdwOpcode
Зарезервировано.Reserved.

Функция CAtlServiceModuleT::P АрсекоммандлинеCAtlServiceModuleT::ParseCommandLine

Анализирует командную строку и при необходимости выполняет регистрацию.Parses the command line and performs registration if necessary.

bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();

ПараметрыParameters

лпкмдлинеlpCmdLine
Командная строка.The command line.

пнреткодеpnRetCode
Значение HRESULT, соответствующее регистрации (если оно было принято).The HRESULT corresponding to the registration (if it took place).

Возвращаемое значениеReturn Value

Возвращает значение true при успешном выполнении или значение false, если не удалось зарегистрировать RGS файл, указанный в командной строке.Returns true on success, or false if the RGS file supplied in the command line could not be registered.

КомментарииRemarks

Анализирует командную строку и регистрирует или отменяет регистрацию в заданном RGSм файле, если это необходимо.Parses the command line and registers or unregisters the supplied RGS file if necessary. Этот метод вызывает CAtlExeModuleT::P арсекоммандлине для проверки /regserver и /UnregServer.This method calls CAtlExeModuleT::ParseCommandLine to check for /RegServer and /UnregServer. При добавлении аргумента -свойством/Service будет зарегистрирована служба.Adding the argument -/Service will register the service.

Функция CAtlServiceModuleT::P РемессажелупCAtlServiceModuleT::PreMessageLoop

Этот метод вызывается непосредственно перед входом в цикл обработки сообщений.This method is called immediately before entering the message loop.

HRESULT PreMessageLoop(int nShowCmd) throw();

ПараметрыParameters

ншовкмдnShowCmd
Этот параметр передается в CAtlExeModuleT::P ремессажелуп.This parameter is passed to CAtlExeModuleT::PreMessageLoop.

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

Переопределите этот метод, чтобы добавить пользовательский код инициализации для службы.Override this method to add custom initialization code for the Service.

Функция CAtlServiceModuleT:: РегистераппидCAtlServiceModuleT::RegisterAppId

Регистрирует службу в реестре.Registers the service in the registry.

inline HRESULT RegisterAppId(bool bService = false) throw();

ПараметрыParameters

бсервицеbService
Для регистрации в качестве службы должно быть задано значение true.Must be true to register as a service.

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

Функция CAtlServiceModuleT:: RunCAtlServiceModuleT::Run

Запускает службу.Runs the service.

HRESULT Run(int nShowCmd = SW_HIDE) throw();

ПараметрыParameters

ншовкмдnShowCmd
Указывает способ отображения окна.Specifies how the window is to be shown. Этот параметр может принимать одно из значений, описанных в разделе WinMain .This parameter can be one of the values discussed in the WinMain section. Значение по умолчанию — SW_HIDE.The default value is SW_HIDE.

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

После вызова Run вызывается метод функция catlservicemodulet::P ремессажелуп, CAtlExeModuleT:: рунмессажелупи CAtlExeModuleT::P остмессажелуп.After being called, Run calls CAtlServiceModuleT::PreMessageLoop, CAtlExeModuleT::RunMessageLoop, and CAtlExeModuleT::PostMessageLoop.

Функция CAtlServiceModuleT:: ServiceMainCAtlServiceModuleT::ServiceMain

Этот метод вызывается диспетчером управления службами.This method is called by the Service Control Manager.

void ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv) throw();

ПараметрыParameters

дваргкdwArgc
Аргумент argc.The argc argument.

лпсзаргвlpszArgv
Аргумент argv.The argv argument.

КомментарииRemarks

Диспетчер управления службами вызывается ServiceMain при открытии приложения службы на панели управления, выборе службы и нажатии кнопки запустить.The Service Control Manager (SCM) calls ServiceMain when you open the Services application in the Control Panel, select the service, and click Start.

После вызова SCM ServiceMain служба должна предоставить SCM функцию обработчика.After the SCM calls ServiceMain, a service must give the SCM a handler function. Эта функция позволяет SCM получать состояние службы и передавать конкретные инструкции (такие как приостановка или остановка).This function lets the SCM obtain the service's status and pass specific instructions (such as pausing or stopping). Впоследствии метод функция CAtlServiceModuleT:: Run вызывается для выполнения основной работы службы.Subsequently, CAtlServiceModuleT::Run is called to perform the main work of the service. Run будет выполняться до тех пор, пока служба не будет остановлена.Run continues to execute until the service is stopped.

Функция CAtlServiceModuleT:: сбой SetServiceStatusCAtlServiceModuleT::SetServiceStatus

Этот метод обновляет состояние службы.This method updates the service status.

void SetServiceStatus(DWORD dwState) throw();

ПараметрыParameters

двстатеdwState
Новое состояние.The new status. Возможные значения см. в разделе сбой SetServiceStatus .See SetServiceStatus for possible values.

КомментарииRemarks

Обновляет сведения о состоянии диспетчера управления службами для службы.Updates the Service Control Manager's status information for the service. Он вызывается методом функция CAtlServiceModuleT:: Run, функция CAtlServiceModuleT:: ServiceMain и другими методами обработчика.It is called by CAtlServiceModuleT::Run, CAtlServiceModuleT::ServiceMain and other handler methods. Состояние также хранится в переменной-члене функция CAtlServiceModuleT:: M_STATUS.The status is also stored in the member variable CAtlServiceModuleT::m_status.

Функция CAtlServiceModuleT:: StartCAtlServiceModuleT::Start

Вызывается CAtlServiceModuleT::WinMain при запуске службы.Called by CAtlServiceModuleT::WinMain when the service starts.

HRESULT Start(int nShowCmd) throw();

ПараметрыParameters

ншовкмдnShowCmd
Указывает способ отображения окна.Specifies how the window is to be shown. Этот параметр может принимать одно из значений, описанных в разделе WinMain .This parameter can be one of the values discussed in the WinMain section.

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

Метод функция CAtlServiceModuleT:: WinMain обрабатывает регистрацию и установку, а также задачи, связанные с удалением записей реестра и удаления модуля.The CAtlServiceModuleT::WinMain method handles both registration and installation, as well as tasks involved in removing registry entries and uninstalling the module. При запуске службы WinMain вызывает метод Start .When the service is run, WinMain calls Start.

Функция CAtlServiceModuleT:: UninstallCAtlServiceModuleT::Uninstall

Останавливает и удаляет службу.Stops and removes the service.

BOOL Uninstall() throw();

Возвращаемое значениеReturn Value

Возвращает TRUE при успешном выполнении, FALSE в случае сбоя.Returns TRUE on success, FALSE on failure.

КомментарииRemarks

Останавливает работу службы и удаляет ее из базы данных диспетчера управления службами.Stops the service from running and removes it from the Service Control Manager database.

Функция CAtlServiceModuleT:: UnlockCAtlServiceModuleT::Unlock

Уменьшает счетчик блокировок службы.Decrements the service's lock count.

LONG Unlock() throw();

Возвращаемое значениеReturn Value

Возвращает счетчик блокировок, который может быть полезен для диагностики и отладки.Returns the lock count, which may be useful for diagnostics and debugging.

Функция CAtlServiceModuleT:: УнрегистераппидCAtlServiceModuleT::UnregisterAppId

Удаляет службу из реестра.Removes the service from the registry.

HRESULT UnregisterAppId() throw();

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

Функция CAtlServiceModuleT:: WinMainCAtlServiceModuleT::WinMain

Этот метод реализует код, необходимый для запуска службы.This method implements the code required to start the service.

int WinMain(int nShowCmd) throw();

ПараметрыParameters

ншовкмдnShowCmd
Указывает способ отображения окна.Specifies how the window is to be shown. Этот параметр может принимать одно из значений, описанных в разделе WinMain .This parameter can be one of the values discussed in the WinMain section.

Возвращаемое значениеReturn Value

Возвращает возвращаемое значение службы.Returns the service's return value.

КомментарииRemarks

Этот метод обрабатывает командную строку (WITH функция CAtlServiceModuleT::P арсекоммандлине), а затем запускает службу (с помощью функция CAtlServiceModuleT:: Start).This method processes the command line (with CAtlServiceModuleT::ParseCommandLine) and then starts the service (using CAtlServiceModuleT::Start).

См. также разделSee also

Класс CAtlExeModuleTCAtlExeModuleT Class
Общие сведения о классахClass Overview