亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ntservice.cpp

?? 這是.郵件服務(wù)器的代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// NTService.cpp
//
// Implementation of CNTService


#include <stdio.h>
#include "NTService.h"
#include <windows.h>
//#include <afxsock.h>
// static variables
CNTService* CNTService::m_pThis = NULL;

CNTService::CNTService(const char* szServiceName)
{
    // copy the address of the current object so we can access it from
    // the static member callback functions. 
    // WARNING: This limits the application to only one CNTService object. 
    m_pThis = this;
    
    // Set the default service name and version
    strncpy(m_szServiceName, szServiceName, sizeof(m_szServiceName)-1);
    m_iMajorVersion = 1;
    m_iMinorVersion = 0;
    m_hEventSource = NULL;

    // set up the initial service status 
    m_hServiceStatus = NULL;
    m_Status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
    m_Status.dwCurrentState = SERVICE_STOPPED;
    m_Status.dwControlsAccepted = SERVICE_ACCEPT_STOP;
    m_Status.dwWin32ExitCode = 0;
    m_Status.dwServiceSpecificExitCode = 0;
    m_Status.dwCheckPoint = 0;
    m_Status.dwWaitHint = 0;
    m_bIsRunning = FALSE;
}

CNTService::~CNTService()
{
    DebugMsg("CNTService::~CNTService()");
    if (m_hEventSource) {
        ::DeregisterEventSource(m_hEventSource);
    }
}

////////////////////////////////////////////////////////////////////////////////////////
// Default command line argument parsing

// Returns TRUE if it found an arg it recognised, FALSE if not
// Note: processing some arguments causes output to stdout to be generated.
BOOL CNTService::ParseStandardArgs(int argc, char* argv[])
{
			
    // See if we have any command line args we recognise
    if (argc <= 1) return FALSE;

    if (_stricmp(argv[1], "-v") == 0) {

        // Spit out version info
        printf("%s Version %d.%d\n",
               m_szServiceName, m_iMajorVersion, m_iMinorVersion);
        printf("The service is %s installed\n",
               IsInstalled() ? "currently" : "not");
        return TRUE; // say we processed the argument

    } else if (_stricmp(argv[1], "-i") == 0) {

        // Request to install.
        if (IsInstalled()) {
            printf("%s is already installed\n", m_szServiceName);
        } else {
            // Try and install the copy that's running
            if (Install()) {
                printf("%s installed\n", m_szServiceName);
            } else {
                printf("%s failed to install. Error %d\n", m_szServiceName, GetLastError());
            }
        }
        return TRUE; // say we processed the argument

    } else if (_stricmp(argv[1], "-u") == 0) {

        // Request to uninstall.
        if (!IsInstalled()) {
            printf("%s is not installed\n", m_szServiceName);
        } else {
            // Try and remove the copy that's installed
            if (Uninstall()) {
                // Get the executable file path
                char szFilePath[_MAX_PATH];
                ::GetModuleFileName(NULL, szFilePath, sizeof(szFilePath));
                printf("%s removed. (You must delete the file (%s) yourself.)\n",
                       m_szServiceName, szFilePath);
            } else {
                printf("Could not remove %s. Error %d\n", m_szServiceName, GetLastError());
            }
        }
        return TRUE; // say we processed the argument
    
    }
         
    // Don't recognise the args
    return FALSE;
}

////////////////////////////////////////////////////////////////////////////////////////
// Install/uninstall routines

// Test if the service is currently installed
BOOL CNTService::IsInstalled()
{
    BOOL bResult = FALSE;

    // Open the Service Control Manager
    SC_HANDLE hSCM = ::OpenSCManager(NULL, // local machine
                                     NULL, // ServicesActive database
                                     SC_MANAGER_ALL_ACCESS); // full access
    if (hSCM) {

        // Try to open the service
        SC_HANDLE hService = ::OpenService(hSCM,
                                           m_szServiceName,
                                           SERVICE_QUERY_CONFIG);
        if (hService) {
            bResult = TRUE;
            ::CloseServiceHandle(hService);
        }

        ::CloseServiceHandle(hSCM);
    }
    
    return bResult;
}

BOOL CNTService::Install()
{
    // Open the Service Control Manager
    SC_HANDLE hSCM = ::OpenSCManager(NULL, // local machine
                                     NULL, // ServicesActive database
                                     SC_MANAGER_ALL_ACCESS); // full access
    if (!hSCM) return FALSE;

    // Get the executable file path
    char szFilePath[_MAX_PATH];
    ::GetModuleFileName(NULL, szFilePath, sizeof(szFilePath));

    // Create the service
    SC_HANDLE hService = ::CreateService(hSCM,
                                         m_szServiceName,
                                         m_szServiceName,
                                         SERVICE_ALL_ACCESS,
                                         SERVICE_WIN32_OWN_PROCESS,
                                         SERVICE_DEMAND_START,        // start condition
                                         SERVICE_ERROR_NORMAL,
                                         szFilePath,
                                         NULL,
                                         NULL,
                                         NULL,
                                         NULL,
                                         NULL);
    if (!hService) {
        ::CloseServiceHandle(hSCM);
        return FALSE;
    }

    // make registry entries to support logging messages
    // Add the source name as a subkey under the Application
    // key in the EventLog service portion of the registry.
    char szKey[256];
    HKEY hKey = NULL;
    strcpy(szKey, "SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\");
    strcat(szKey, m_szServiceName);
    if (::RegCreateKey(HKEY_LOCAL_MACHINE, szKey, &hKey) != ERROR_SUCCESS) {
        ::CloseServiceHandle(hService);
        ::CloseServiceHandle(hSCM);
        return FALSE;
    }

    // Add the Event ID message-file name to the 'EventMessageFile' subkey.
    ::RegSetValueEx(hKey,
                    "EventMessageFile",
                    0,
                    REG_EXPAND_SZ, 
                    (CONST BYTE*)szFilePath,
                    strlen(szFilePath) + 1);     

    // Set the supported types flags.
    DWORD dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | EVENTLOG_INFORMATION_TYPE;
    ::RegSetValueEx(hKey,
                    "TypesSupported",
                    0,
                    REG_DWORD,
                    (CONST BYTE*)&dwData,
                     sizeof(DWORD));
    ::RegCloseKey(hKey);

//    LogEvent(EVENTLOG_INFORMATION_TYPE, EVMSG_INSTALLED, m_szServiceName);

    // tidy up
    ::CloseServiceHandle(hService);
    ::CloseServiceHandle(hSCM);
    return TRUE;
}

BOOL CNTService::Uninstall()
{
    // Open the Service Control Manager
    SC_HANDLE hSCM = ::OpenSCManager(NULL, // local machine
                                     NULL, // ServicesActive database
                                     SC_MANAGER_ALL_ACCESS); // full access
    if (!hSCM) return FALSE;

    BOOL bResult = FALSE;
    SC_HANDLE hService = ::OpenService(hSCM,
                                       m_szServiceName,
                                       DELETE);
    if (hService) {
        if (::DeleteService(hService)) {
            //LogEvent(EVENTLOG_INFORMATION_TYPE, EVMSG_REMOVED, m_szServiceName);
            bResult = TRUE;
        } else {
//            LogEvent(EVENTLOG_ERROR_TYPE, EVMSG_NOTREMOVED, m_szServiceName);
        }
        ::CloseServiceHandle(hService);
    }
    
    ::CloseServiceHandle(hSCM);
    return bResult;
}

///////////////////////////////////////////////////////////////////////////////////////
// Logging functions

// This function makes an entry into the application event log
void CNTService::LogEvent(WORD wType, DWORD dwID,
                          const char* pszS1,
                          const char* pszS2,
                          const char* pszS3)
{
	return; //For secure
    const char* ps[3];
    ps[0] = pszS1;
    ps[1] = pszS2;
    ps[2] = pszS3;

    int iStr = 0;
    for (int i = 0; i < 3; i++) {
        if (ps[i] != NULL) iStr++;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色软件下载| 亚洲国产精品久久久男人的天堂| 亚洲欧美国产三级| 久久精品99国产精品| 91看片淫黄大片一级在线观看| 日韩欧美一级二级三级久久久| 国产精品美女久久久久久久网站| 麻豆专区一区二区三区四区五区| 色噜噜狠狠色综合欧洲selulu| 久久久国际精品| 蜜臀av在线播放一区二区三区| 在线观看av一区二区| 欧美韩国日本一区| 韩国中文字幕2020精品| 欧美日韩国产bt| 一区二区三区精品在线| 暴力调教一区二区三区| 亚洲国产精品成人久久综合一区| 五月天久久比比资源色| 欧美无砖专区一中文字| 亚洲啪啪综合av一区二区三区| 国产suv精品一区二区三区| 久久久久九九视频| 久久99精品国产麻豆婷婷洗澡| 欧美高清你懂得| 一区二区三区四区高清精品免费观看 | 国产精品五月天| 久久狠狠亚洲综合| 日韩精品一区国产麻豆| 久久se精品一区二区| 精品久久久久av影院| 麻豆国产欧美日韩综合精品二区| 91网站视频在线观看| 国产无一区二区| 成人av网址在线观看| 国产亚洲一区字幕| 国产福利一区在线观看| 国产欧美日韩精品一区| 成人av片在线观看| 中文字幕一区二区在线观看| 99国产精品久久久久| 亚洲日本乱码在线观看| 91成人免费电影| 肉色丝袜一区二区| 精品国产一区二区在线观看| 国产91在线看| 国产精品久久久久三级| 99re这里只有精品视频首页| 全部av―极品视觉盛宴亚洲| 欧美一区二区三区四区久久| 国内久久婷婷综合| 国产精品无圣光一区二区| 色猫猫国产区一区二在线视频| 亚洲欧美综合网| 欧美疯狂性受xxxxx喷水图片| 精品亚洲免费视频| 国产精品国产自产拍在线| 欧美性猛交一区二区三区精品 | 色综合久久88色综合天天免费| 1024国产精品| 欧美一区2区视频在线观看| 韩国精品主播一区二区在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品国产三级国产aⅴ原创 | 亚洲国产美女搞黄色| 欧美一区二区三区公司| 国产成人av资源| 亚洲综合一二区| 久久精品视频在线免费观看 | 99re这里都是精品| 日韩va亚洲va欧美va久久| 久久久精品免费观看| 精品视频色一区| 高清成人在线观看| 男男gaygay亚洲| 亚洲色图一区二区三区| 欧美大白屁股肥臀xxxxxx| 91热门视频在线观看| 美女视频黄频大全不卡视频在线播放| 国产精品国产三级国产三级人妇| 91精品在线免费观看| 91免费国产视频网站| 国产一区二区日韩精品| 五月婷婷激情综合网| 国产精品电影一区二区| 精品av久久707| 欧美精品一二三区| 一道本成人在线| 成人精品视频网站| 韩国av一区二区三区四区| 亚洲va欧美va天堂v国产综合| 中文字幕一区二区三区在线不卡| 精品精品欲导航| 欧美美女激情18p| 色播五月激情综合网| 床上的激情91.| 久久99热国产| 人人狠狠综合久久亚洲| 亚洲chinese男男1069| 亚洲自拍偷拍图区| 亚洲欧美区自拍先锋| 国产精品成人午夜| 国产精品久久久久久亚洲毛片| 久久久青草青青国产亚洲免观| 欧美成人一区二区三区在线观看| 欧美精选午夜久久久乱码6080| 欧美中文字幕不卡| 在线视频你懂得一区| 色婷婷综合视频在线观看| 国产91精品免费| 狠狠色综合播放一区二区| 激情伊人五月天久久综合| 久久精品国产亚洲一区二区三区| 青青草国产精品亚洲专区无| 肉丝袜脚交视频一区二区| 日日骚欧美日韩| 日本系列欧美系列| 蜜臀av一区二区三区| 韩国女主播一区二区三区| 国产在线不卡一区| 国产剧情一区在线| 国产成人福利片| 99视频精品在线| 91理论电影在线观看| 欧美伊人久久大香线蕉综合69 | 欧美性视频一区二区三区| 在线观看日韩电影| 欧美精品视频www在线观看| 4438成人网| 久久先锋资源网| 中文字幕亚洲一区二区av在线 | 亚洲日穴在线视频| 一区二区三区在线视频免费| 一区二区三区日韩欧美| 日韩精品电影在线| 九色|91porny| 不卡一二三区首页| 欧美日韩免费电影| 久久一区二区三区四区| 亚洲欧洲精品一区二区三区| 亚洲国产日韩在线一区模特| 日韩av不卡一区二区| 国产69精品久久久久777| 一本久久a久久免费精品不卡| 精品1区2区3区| 久久天天做天天爱综合色| 亚洲人亚洲人成电影网站色| 性做久久久久久免费观看| 国产一区二区三区精品欧美日韩一区二区三区 | 国产成人在线视频免费播放| 成人一区二区三区| 在线日韩国产精品| 日韩免费性生活视频播放| 国产精品免费av| 婷婷开心久久网| 成熟亚洲日本毛茸茸凸凹| 欧美日韩国产高清一区二区| 亚洲国产岛国毛片在线| 婷婷国产v国产偷v亚洲高清| 丰满少妇久久久久久久| 欧美美女一区二区| 国产精品乱码妇女bbbb| 美腿丝袜亚洲综合| 91麻豆成人久久精品二区三区| 欧美成人猛片aaaaaaa| 亚洲午夜电影在线| 99在线精品免费| 欧美精品一区二区精品网| 午夜一区二区三区视频| www.久久久久久久久| 欧美va在线播放| 亚洲成人激情综合网| 一本到三区不卡视频| 久久久精品日韩欧美| 久久精品国产色蜜蜜麻豆| 欧美三级欧美一级| 亚洲图片你懂的| 国产伦精品一区二区三区免费迷| 欧美日韩精品久久久| 国产精品乱码一区二区三区软件| 久久精品国产在热久久| 欧美日韩国产精品成人| 亚洲色图第一区| 国产不卡一区视频| 99国产精品99久久久久久| 久久精品亚洲麻豆av一区二区| 日韩专区一卡二卡| 韩国av一区二区三区四区| 在线观看91av| 一区二区三区美女视频| 91视频在线观看免费| 国产精品女同一区二区三区| 国产精品白丝av| 久久亚洲二区三区| 国产自产视频一区二区三区| 欧美一区二区三区视频免费 | 亚洲成人免费影院| 欧美日韩一级二级三级| 亚洲一区二区精品久久av| 欧美视频日韩视频|