SC_HANDLE schSCManager = OpenSCManager(
0, // machine (NULL == local)
0, // database (NULL == default)
SC_MANAGER_ALL_ACCESS // access required
);
if( schSCManager ) {
SC_HANDLE schService = CreateService(
schSCManager,
m_lpServiceName,
m_lpDisplayName,
m_dwDesiredAccess,
m_dwServiceType,
m_dwStartType,
m_dwErrorControl,
szPath,
m_pszLoadOrderGroup,
((m_dwServiceType == SERVICE_KERNEL_DRIVER ||
  m_dwServiceType == SERVICE_FILE_SYSTEM_DRIVER) &&
 (m_dwStartType == SERVICE_BOOT_START ||
  m_dwStartType == SERVICE_SYSTEM_START)) ?
&m_dwTagID : 0,
m_pszDependencies,
m_pszStartName,
m_pszPassword
); if( schService ) {
_tprintf(TEXT("%s installed.\n"), m_lpDisplayName );
CloseServiceHandle(schService);
bRet = TRUE;
} else {
TCHAR szErr[256];
_tprintf(TEXT("CreateService failed - %s\n"), GetLastErrorText(szErr, 256));
} CloseServiceHandle(schSCManager);