UPDATES
=======

June 22/1999: (KD) added a default case to error conversion for when
              NT returns an unknown or undocumented error value


Service.dll
===========

The service.dll provides InstallShield developers with Windows NT Service
Support. Almost all of the Win32 service functionality has been exported 
through the DLL, providing a fairly powerful and flexible tool for IS 
developers.



C Code
======

Building service.dll requires the following C files:
	service.h
	servdef.h
	service.c



InstallShield Script
====================

Include the following script files in your InstallShield project
	servdef.h
	servdef2.h



Functionality
=============

The following Win32 functions are exported through Service.dll:

Win32 function					Service.dll export
--------------                  ------------------
  
ChangeServiceConfig             InstallChangeServiceConfig
CloseServiceHandle              InstallCloseServiceHandle 
ControlService                  InstallControlService
CreateService                   InstallCreateService
DeleteService                   InstallDeleteService
EnumDependentServices           InstallEnumDependentServices
EnumServicesStatus              InstallEnumServicesStatus
GetServiceDisplayName           InstallGetServiceDisplayName
GetServiceKeyName               InstallGetServiceKeyName
Handler                         NOT SUPPORTED
LockServiceDatabase             InstallLockServiceDatabase 
NotifyBootConfigStatus          NOT SUPPORTED
OpenSCManager                   InstallOpenSCManager
OpenService                     InstallOpenService
QueryServiceConfig              InstallQueryServiceConfig
QueryServiceLockStatus          InstallQueryServiceLockStatus
QueryServiceObjectSecurity      InstallQueryServiceObjectSecurity
QueryServiceStatus              InstallQueryServiceStatus
RegisterServiceCtrlHandler      NOT SUPPORTED
ServiceMain                     NOT SUPPORTED
SetServiceBits                  NOT SUPPORTED
SetServiceObjectSecurity        InstallSetServiceObjectSecurity
SetServiceStatus                InstallSetServiceStatus
StartService                    InstallStartService
StartServiceCtrlDispatcher      NOT SUPPORTED
UnlockServiceDatabase           InstallUnlockServiceDatabase
 
NOTE: Those functions that are currently unsupported could easily be exported 
in the same manner as those that are exported. However, the designer saw little
practical install-time use in these functions. 


Using Service.dll
=================

Argument lists for all the Service.dll functions are the same as their
Win32 counterparts with a return value added as the last parameter for 
functions that return a non-Boolean value.

The functions return 0 if successful or a predefined error value defined in
servdef.h.

The user is responsible for loading and unloading the Service.dll. No 
InstallShield code is provided for this purpose. (Use the 'UseDLL' and
'UnUseDLL' IS built-in functions.)

Note: No actions (creations/deletions/modifications to services) are logged
for uninstallation. It is the responsibility the developer to provide logging
information for uninstallation.
