win32_get_last_control_message

win32_get_last_control_message — Returns the last control message that was sent to this service

Description

intwin32_get_last_control_message
( void
)

Returns the control code that was last sent to this service process.
When running as a service you should periodically check this to determine if
your service needs to stop running.

Caution

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI
this function is disabled.

Return Values

Returns a control constant which will be one of the
Win32Service Service Control Message Constants:
WIN32_SERVICE_CONTROL_CONTINUE,
WIN32_SERVICE_CONTROL_INTERROGATE,
WIN32_SERVICE_CONTROL_PAUSE,
WIN32_SERVICE_CONTROL_PRESHUTDOWN,
WIN32_SERVICE_CONTROL_SHUTDOWN,
WIN32_SERVICE_CONTROL_STOP.

User Contributed Notes 1 note

The definitions of some of these control codes can be found here (URL broken due to comment system, sorry about that!): http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/handler.asp

However, for your convenience (and mine):SERVICE_CONTROL_STOP, 0x00000001Notifies a service that it should stop.

If a service accepts this control code, it must stop upon receipt. After the SCM sends this control code, it does not send other control codes.

Windows XP/2000: If the service returns NO_ERROR and continues to run, it continues to receive control codes. This behavior changed starting with Windows Server 2003 and Windows XP SP2.

SERVICE_CONTROL_PAUSE, 0x00000002Notifies a service that it should pause.(Although I guess that there is no requirement that you must.)

SERVICE_CONTROL_CONTINUE, 0x00000003Notifies a paused service that it should resume.

SERVICE_CONTROL_INTERROGATE, 0x00000004Notifies a service that it should report its current status information to the service control manager.(I'm guessing that a call to win32_set_service_status() would satisfy interrogation?)

SERVICE_CONTROL_SHUTDOWN, 0x00000005Notifies a service that the system is shutting down so the service can perform cleanup tasks.