• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ OpenEvent函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中OpenEvent函数的典型用法代码示例。如果您正苦于以下问题:C++ OpenEvent函数的具体用法?C++ OpenEvent怎么用?C++ OpenEvent使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了OpenEvent函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: KillPdump

/*****************************************************************************
 FUNCTION	: KillPdump

 PURPOSE	:

 PARAMETERS	:

 RETURNS	:
*****************************************************************************/
static void KillPdump(void)
{
	HANDLE	hEvent;
	HANDLE	hExitDoneEvent;

	/*
		Get a handle on the pdump finished event
	*/
	if ((hExitDoneEvent=OpenEvent(EVENT_MODIFY_STATE, IMG_FALSE, PDUMP_EXITDONE_EVENT_NAME)) == NULL)
	{
		printf("Failed to open pdump exit done event, are you sure pdump is running?\n");
		return;
	}
	/*
		Gen a kill pdump event
	*/
	if ((hEvent=OpenEvent(EVENT_MODIFY_STATE, IMG_FALSE, PDUMP_EXIT_EVENT_NAME)) == NULL)
	{
		printf("Failed to open pdump exit event, are you sure pdump is running?\n");
		return;
	}
	
	if (SetEvent(hEvent) == IMG_FALSE)
	{
		printf("Failed to set pdump exit event!\n");
		return;
	}
	
	printf("Waiting for pdump to exit.....\n");
	WaitForSingleObject(hExitDoneEvent, INFINITE);

	CloseHandle(hEvent);
	CloseHandle(hExitDoneEvent);
	return;
}
开发者ID:aosp,项目名称:gfx_linux_ddk,代码行数:44,代码来源:common.c


示例2: StopIPCD

void
StopIPCD()
{
	HANDLE	hServerStopEvent=NULL;
#ifdef	TERMINAL_SERVICE
	char	*evtname;
#endif	/* TERMINAL_SERVICE */

#ifdef	TERMINAL_SERVICE
	if( osvi.dwMajorVersion >= 5 )	/* Windows 2000 */
		evtname = "Global\\IPCDSTOP";
	else
		evtname = "IPCDSTOP";
#endif	/* TERMINAL_SERVICE */

#ifdef	TERMINAL_SERVICE
	hServerStopEvent=OpenEvent( EVENT_ALL_ACCESS, FALSE, evtname );
#else
	hServerStopEvent=OpenEvent( EVENT_ALL_ACCESS, FALSE, "IPCDSTOP" );
#endif	/* TERMINAL_SERVICE */ksh
	if (hServerStopEvent == NULL)
	{
		sprintf(tbuf, "IPC DAEMON is inactive ...\n");
		MessageBox(NULL, tbuf, "IPC DAEMON", MB_OK);
		return;
	}
	SetEvent(hServerStopEvent);
	CloseHandle(hServerStopEvent);
}
开发者ID:nawhizz,项目名称:KAIT,代码行数:29,代码来源:ipcd.c


示例3: InitFernel

BOOL InitFernel (void)
{
  // The fernel32 dll for the File I/O Profiler creates private data that
  // can't be seen by ohter processec (eg. apf32dmp). Hence, the two
  // processes need to communicate through shared memory (so that apf32dmp
  // can pass the name of the file to keep the dumped data to the fernel32
  // dll) and events (so that apf32dmp can signal the fernel32 dll that a
  // dump or a clear of the collected data should take place
  // Here we create the shared memory section and open the handles to
  // the Dump and Clear data events.
  //
  // Note: A Dump/Clear will make all processes profiled with the
  //       fernel32 dll dump/clear their data
  
  hDumpFileMapping = OpenFileMapping ( FILE_MAP_WRITE, FALSE,
				       L"FileProfDumpFileName" );
  wszDumpFile = (LPWSTR) MapViewOfFile ( hDumpFileMapping, FILE_MAP_WRITE,
					 0, 0, MAXFILENAMELEN );
  hDumpEvent = OpenEvent ( EVENT_MODIFY_STATE, FALSE,
			   L"FileProfDumpEvent" );
  hClearEvent = OpenEvent ( EVENT_MODIFY_STATE, FALSE,
			    L"FileProfClearEvent" );
  return ( (hDumpFileMapping!=(HANDLE) NULL) && (wszDumpFile!=(LPWSTR) NULL) &&
	   (hDumpEvent!=(HANDLE) NULL) && (hClearEvent!=(HANDLE) NULL) );
}
开发者ID:mingpen,项目名称:OpenNT,代码行数:25,代码来源:fernldmp.c


示例4: CSerialPort

CScheduler::CScheduler(int pno)
	: CSerialPort(pno)
{
	char name[32];
	spac_shm * shm = (spac_shm *)&ports[m_iPortNo-1];	

	SECURITY_DESCRIPTOR	sd, *pSD;
	SECURITY_ATTRIBUTES sa,*_sa;
	
	this->m_iPortNo = m_iPortNo;
	pSD = &sd;
	
	if (pSD == NULL){
		utils_error("Error creating security descriptor.\n");
		return;
	}
	
	if (!InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION)){
		utils_error("Error initializing security descriptor.\n");
		return;
	}
	
	// Add a NULL DACL to the security descriptor..
	// see MSDN Knowledge base Q106387 for detail
	
	if (!SetSecurityDescriptorDacl(pSD, TRUE, (PACL) NULL, FALSE)){
		utils_error("Error setting security descriptor.\n");
		return;
	}
	
	sa.nLength = sizeof(sa);
	sa.lpSecurityDescriptor = pSD;
	sa.bInheritHandle = TRUE;
	
	_sa=&sa;
	
	sprintf(name,"rtkm_spac_event_0_%d",m_iPortNo);
	m_hEvents[0]=CreateEvent(_sa, 0, 0, name);
	if(!m_hEvents[0]){
		m_hEvents[0]=OpenEvent(EVENT_ALL_ACCESS,0,name);
	}
	sprintf(name,"rtkm_spac_event_1_%d",m_iPortNo);
	m_hEvents[1]=CreateEvent(_sa, 0, 0, name);
	if(!m_hEvents[1]){
		m_hEvents[1]=OpenEvent(EVENT_ALL_ACCESS,0,name);
	}
	shm->is_open=false;
	if(!m_hEvents[0] || !m_hEvents[1]){
		utils_error(
			">> COM%d, Error creating event, code %d.\n",
			m_iPortNo,
			GetLastError()
			);
		m_hEvents[0]? CloseHandle(m_hEvents[0]) : 0;
		m_hEvents[1]? CloseHandle(m_hEvents[1]) : 0;
		return;
	}
	ports[m_iPortNo-1].port_no=m_iPortNo;	 
}
开发者ID:eseawind,项目名称:CNCS_PMC-Conductor,代码行数:59,代码来源:spacd.cpp


示例5: CreateWow64Events

BOOL CreateWow64Events(DWORD pid, HANDLE *hParent, HANDLE *hChild, 
		BOOL bOpenExisting) {

	SECURITY_ATTRIBUTES sa;
	char parentname[256],childname[256];

	*hParent = *hChild = NULL;

	// make darn sure they're not inherited
	sa.nLength = sizeof(sa);
	sa.lpSecurityDescriptor =0;
	sa.bInheritHandle = FALSE;
	//

#pragma warning(disable:4995)

	// This event tells the child to hold for gForkData to be copied
	wsprintfA(parentname, "Local\\%d-%s",pid, TCSH_WOW64_PARENT_EVENT_NAME);

	wsprintfA(childname, "Local\\%d-%s",pid, TCSH_WOW64_CHILD_EVENT_NAME );

#pragma warning(default:4995)

	*hParent = OpenEvent(EVENT_ALL_ACCESS,FALSE, parentname);

	if(*hParent) {
		if (bOpenExisting == FALSE) { // didn't expect to be a child process
			CloseHandle(*hParent);
			*hParent = NULL;
			return FALSE;
		}

		*hChild = OpenEvent(EVENT_ALL_ACCESS,FALSE, childname);
		if (!*hChild) {
			CloseHandle(*hParent);
			*hParent = NULL;
			return FALSE;
		}

		return TRUE;
	}
	else { //event does not exist
		if (bOpenExisting == TRUE)
			return FALSE;
	}

	*hParent = CreateEvent(&sa,FALSE,FALSE,parentname);	
	if (!*hParent)
		return FALSE;


	*hChild = CreateEvent(&sa,FALSE,FALSE,childname);	
	if (!*hChild){
		CloseHandle(*hParent);
		*hParent = NULL;
		return FALSE;
	}
	return TRUE;
}
开发者ID:Distrotech,项目名称:tcsh,代码行数:59,代码来源:fork.c


示例6: MonitorThread

DWORD __stdcall MonitorThread(VOID* Parameter)
{
    HANDLE processEvent;
    HANDLE d3dImageEvent;
    VOID *handles[2];

    processEvent = OpenEvent(L"Global\\" PUSH_PROCESS_EVENT_NAME);
    d3dImageEvent = OpenEvent(L"Global\\" PUSH_IMAGE_EVENT_NAME);

    handles[0] = processEvent;
    handles[1] = d3dImageEvent;

    while (processEvent)
    {
        NTSTATUS result;
        HANDLE threadHandle;

        result = NtWaitForMultipleObjects(2, &handles[0], WaitAny, FALSE, NULL);

        if (processEvent && handles[result - STATUS_WAIT_0] == processEvent)
        {
            NtCreateThreadEx(
                &threadHandle,
                THREAD_ALL_ACCESS,
                NULL,
                NtCurrentProcess(),
                &RetrieveProcessEvent,
                NULL,
                NoThreadFlags,
                0, 0, 0,
                NULL
                );
        }
        else if (handles[result - STATUS_WAIT_0] == d3dImageEvent)
        {
            NtCreateThreadEx(
                &threadHandle,
                THREAD_ALL_ACCESS,
                NULL,
                NtCurrentProcess(),
                &RetrieveImageEvent,
                NULL,
                NoThreadFlags,
                0, 0, 0,
                NULL
                );
        }
    }

    return 0;
}
开发者ID:Volkanite,项目名称:Push,代码行数:51,代码来源:push.c


示例7: InitMemCard

/* in  : val	0 or 1 (コントローラとの併用 : 1) */
void InitMemCard(long val)
{
	InitCARD(val);		/* 通常 val=1 : コントローラと併用 */
	StartCARD();
	_bu_init();
	ChangeClearPAD(0);

	EnterCriticalSection();
	ev0  = OpenEvent(SwCARD, EvSpIOE, EvMdNOINTR, NULL);
	ev1  = OpenEvent(SwCARD, EvSpERROR, EvMdNOINTR, NULL);
	ev2  = OpenEvent(SwCARD, EvSpTIMOUT, EvMdNOINTR, NULL);
	ev3  = OpenEvent(SwCARD, EvSpNEW, EvMdNOINTR, NULL);
	ev10 = OpenEvent(HwCARD, EvSpIOE, EvMdNOINTR, NULL);
	ev11 = OpenEvent(HwCARD, EvSpERROR, EvMdNOINTR, NULL);
	ev12 = OpenEvent(HwCARD, EvSpTIMOUT, EvMdNOINTR, NULL);
	ev13 = OpenEvent(HwCARD, EvSpNEW, EvMdNOINTR, NULL);
	ExitCriticalSection();

	EnableEvent(ev0);
	EnableEvent(ev1);
	EnableEvent(ev2);
	EnableEvent(ev3);
	EnableEvent(ev10);
	EnableEvent(ev11);
	EnableEvent(ev12);
	EnableEvent(ev13);

}
开发者ID:arnobmallick,项目名称:team_psx,代码行数:29,代码来源:SAMPLE.C


示例8: main

int main()
{
	HANDLE isWait=OpenEvent(EVENT_MODIFY_STATE, FALSE, "test");
	SetEvent(isWait);
	getchar();
	return 0;
}
开发者ID:lufeirider,项目名称:c--,代码行数:7,代码来源:b.cpp


示例9: OpenFileMapping

bool APIDataReceiver::startup() {
    if(!memMapFileHandle)
    {
        memMapFileHandle = OpenFileMapping( FILE_MAP_READ, FALSE, IRSDK_MEMMAPFILENAME);
        lastTickCount = std::numeric_limits<int>::max();
    }

    if(memMapFileHandle)
    {
        if(!sharedMem)
        {
            sharedMem = static_cast<const char*>(MapViewOfFile(memMapFileHandle, FILE_MAP_READ, 0, 0, 0));
            header = reinterpret_cast<const irsdk_header*>(sharedMem);
            lastTickCount = std::numeric_limits<int>::max();
        }

        if(sharedMem)
        {
            if(!dataValidEventHandle)
            {
                dataValidEventHandle = OpenEvent(SYNCHRONIZE, false, IRSDK_DATAVALIDEVENTNAME);
                lastTickCount = std::numeric_limits<int>::max();
            }

            if(dataValidEventHandle)
            {
                initialized = true;
                return true;
            }
        }
    }

    initialized = false;
    return false;
}
开发者ID:squeakyball,项目名称:spectacular,代码行数:35,代码来源:APIDataReceiver.cpp


示例10: OpenEvent

bool
CMSWindowsKeyState::fakeCtrlAltDel()
{
	if (!m_is95Family) {
		// to fake ctrl+alt+del on the NT family we broadcast a suitable
		// hotkey to all windows on the winlogon desktop.  however, the
		// current thread must be on that desktop to do the broadcast
		// and we can't switch just any thread because some own windows
		// or hooks.  so start a new thread to do the real work.
		HANDLE hEvtSendSas = OpenEvent( EVENT_MODIFY_STATE, FALSE, "Global\\SendSAS" );
		if ( hEvtSendSas ) {
			LOG((CLOG_DEBUG "found the SendSAS event - signaling my launcher to simulate ctrl+alt+del"));
			SetEvent( hEvtSendSas );
			CloseHandle( hEvtSendSas );
		}
		else {
		CThread cad(new CFunctionJob(&CMSWindowsKeyState::ctrlAltDelThread));
		cad.wait();
	}
	}
	else {
		// simulate ctrl+alt+del
		fakeKeyDown(kKeyDelete, KeyModifierControl | KeyModifierAlt,
							virtualKeyToButton(VK_DELETE));
	}
	return true;
}
开发者ID:ali1234,项目名称:synergy-old,代码行数:27,代码来源:CMSWindowsKeyState.cpp


示例11: resetSyncAborted

bool resetSyncAborted()
{
    HANDLE syncAbortEvent = NULL;
    bool ret = false;

    syncAbortEvent = OpenEvent(EVENT_ALL_ACCESS, 
                               FALSE, 
                               TEXT("Global\\AbortSyncEvent"));

    if (syncAbortEvent == NULL) {
        DWORD err = GetLastError();
        // if event wasn't created don't log any error: 
        if (err != ERROR_FILE_NOT_FOUND) {
            LOG.error("%s: error opening sync abort event: %d", __FUNCTION__, err);
        } 

        return ret;
    }

    if (! ResetEvent(syncAbortEvent) ) {
        LOG.error("%s: error resetting cancelled sync event handle", __FUNCTION__);
        ret = false;
    }

    CloseHandle(syncAbortEvent);
  
    return ret;
}
开发者ID:niujingqian,项目名称:haocai,代码行数:28,代码来源:winadapter.cpp


示例12: xampp_stop

void xampp_stop(char *pidfile,char *eventformat)
{
    HANDLE shutdownEvent;
    char shutdownEventName[32];
    FILE *fp;
    long pid;

    fp=fopen(pidfile,"r");
    if(!fp)
    {
        printf("Can't find %s.\n", pidfile);
    }
    else
    {
        fscanf(fp,"%d", &pid);
        fclose(fp);

        sprintf_s(shutdownEventName, sizeof(shutdownEventName), eventformat, pid);
        shutdownEvent = OpenEvent(EVENT_MODIFY_STATE, FALSE, shutdownEventName);
        if (shutdownEvent != NULL)
        {
            SetEvent(shutdownEvent);
        }
        else
        {
            printf("Can't find process #%d.\n", pid);
        }
    }

}
开发者ID:conor-flynn,项目名称:html5_evolutions,代码行数:30,代码来源:xampp_util.c


示例13: OCAC_PWrkStop

static int OCAC_PWrkStop(OCACProc *pProc)
{
    HANDLE hCREvt;
    BOOL bResult;
    int nProcExit = CA_PROC_EXIT_OK;

    hCREvt = OpenEvent(EVENT_ALL_ACCESS,TRUE, OCASS_EVT_NAME_SHELL_WRK);
    if (NULL == hCREvt)
    {
        nProcExit = CA_PROC_EXIT_FATAL;
        OCAC_Panic(CA_SRC_MARK, 
            TEXT("Can't open event %s. system error %u"), 
                OCASS_EVT_NAME_SPY_RUN, GetLastError());
        goto EXIT;
    }

    bResult = SetEvent(hCREvt);
    CloseHandle(hCREvt);
    if (!bResult)
    {
        nProcExit = CA_PROC_EXIT_FATAL;
        OCAC_Panic(CA_SRC_MARK, 
            TEXT("Set event %s failed. system error %u"), 
                OCASS_EVT_NAME_SPY_RUN, GetLastError());
        goto EXIT;
    }

    OCAC_PrintMsgLine(TEXT("Send shutdown event successed"));
EXIT:
    return nProcExit;
}
开发者ID:bactq,项目名称:ocass,代码行数:31,代码来源:ocac_wrk.cpp


示例14: ngx_os_signal_process

ngx_int_t
ngx_os_signal_process(ngx_cycle_t *cycle, char *sig, ngx_int_t pid)
{
    HANDLE     ev;
    ngx_int_t  rc;
    char       evn[NGX_PROCESS_SYNC_NAME];

    ngx_sprintf((u_char *) evn, "Global\\ngx_%s_%ul%Z", sig, pid);

    ev = OpenEvent(EVENT_MODIFY_STATE, 0, evn);
    if (ev == NULL) {
        ngx_log_error(NGX_LOG_ERR, cycle->log, ngx_errno,
                      "OpenEvent(\"%s\") failed", evn);
        return 1;
    }

    if (SetEvent(ev) == 0) {
        ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
                      "SetEvent(\"%s\") failed", evn);
        rc = 1;

    } else {
        rc = 0;
    }

    ngx_close_handle(ev);

    return rc;
}
开发者ID:mickelfeng,项目名称:nginx-openresty-windows,代码行数:29,代码来源:ngx_process_cycle.c


示例15: _snprintf

DWORD CMySql::StopExe()
{
	DWORD dwRetour = ERROR_SUCCESS;
	HANDLE hEventShutdown = NULL;
	char szShutdownEvent[31] =  {0};

	_snprintf(szShutdownEvent, sizeof(szShutdownEvent)-1, "MySQLShutdown%u", GetProcID());

	CUtils::Log("MySqlSutdown event = %s", szShutdownEvent);
	if ((hEventShutdown=OpenEvent(EVENT_MODIFY_STATE, 0, szShutdownEvent)) != NULL)
	{
		SetEvent(hEventShutdown);
		CloseHandle(hEventShutdown);
	}
	else
	{
		dwRetour = GetLastError();
		CUtils::Log("MySqlSutdown event open fail = %d", dwRetour);

//		if (dwRetour==ERROR_FILE_NOT_FOUND || )
		{
			char szToExecute[MAX_PATH+50] = {0};

			_snprintf(szToExecute, sizeof(szToExecute)-1, "%sbin\\mysqladmin.exe -u root shutdown", (LPCTSTR) m_sMySqlPath);
			dwRetour = WinExec(szToExecute, SW_HIDE);
			if (dwRetour > 31)
				dwRetour = ERROR_SUCCESS;
		}
	}

	return dwRetour;
}
开发者ID:TheTypoMaster,项目名称:instantrails,代码行数:32,代码来源:CMySql.cpp


示例16: CommThread

void CommThread(void *arg)
{
	DWORD Evt;
	PComVar cv = (PComVar)arg;
	DWORD DErr;
	HANDLE REnd;
	char Temp[20];

	_snprintf_s(Temp, sizeof(Temp), _TRUNCATE, "%s%d", READENDNAME, cv->ComPort);
	REnd = OpenEvent(EVENT_ALL_ACCESS,FALSE, Temp);
	while (TRUE) {
		if (WaitCommEvent(cv->ComID,&Evt,NULL)) {
			if (! cv->Ready) {
				_endthread();
			}
			if (! cv->RRQ) {
				PostMessage(cv->HWin, WM_USER_COMMNOTIFY, 0, FD_READ);
			}
			WaitForSingleObject(REnd,INFINITE);
		}
		else {
			DErr = GetLastError();  // this returns 995 (operation aborted) if a USB com port is removed
			if (! cv->Ready || ERROR_OPERATION_ABORTED == DErr) {
				_endthread();
			}
			ClearCommError(cv->ComID,&DErr,NULL);
		}
	}
}
开发者ID:pakls,项目名称:teraterm-ttssh2,代码行数:29,代码来源:commlib.c


示例17: DllMain

BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
    if(dwReason == DLL_PROCESS_ATTACH) {
        // make sure advapi32 is loaded
        LoadLibrary("advapi32");

        // there's a small list of processes which we don't want to inject
        if(is_ignored_process()) {
            return TRUE;
        }

        // hide our module from peb
        hide_module_from_peb(hModule);

        // obtain all protected pids
        int pids[MAX_PROTECTED_PIDS], length = sizeof(pids);
        pipe2(pids, &length, "GETPIDS");
        for (int i = 0; i < length / sizeof(pids[0]); i++) {
            add_protected_pid(pids[i]);
        }

        // initialize file stuff
        file_init();

        // read the config settings
        read_config();
        g_pipe_name = g_config.pipe_name;

        // initialize the log file
        log_init(g_config.host_ip, g_config.host_port, 0);

        // initialize the Sleep() skipping stuff
        init_sleep_skip(g_config.first_process);

        // we skip a random given amount of milliseconds each run
        init_startup_time(g_config.startup_time);

        // disable the retaddr check if the user wants so
        if(g_config.retaddr_check == 0) {
            hook_disable_retaddr_check();
        }

        // initialize all hooks
        set_hooks();

        // notify analyzer.py that we've loaded
        char name[64];
        sprintf(name, "CuckooEvent%d", GetCurrentProcessId());
        HANDLE event_handle = OpenEvent(EVENT_ALL_ACCESS, FALSE, name);
        if(event_handle != NULL) {
            SetEvent(event_handle);
            CloseHandle(event_handle);
        }
    }
    else if(dwReason == DLL_PROCESS_DETACH) {
        log_free();
    }

    return TRUE;
}
开发者ID:defekkt,项目名称:cuckoomon,代码行数:60,代码来源:cuckoomon.c


示例18: SendThread

unsigned __stdcall SendThread( void* Param )
{
	//---------------------------------------------------------
	ClientInfo* ciData = (ClientInfo*) Param;
#ifdef _SCROUT_
	cout << "SendThread" << endl;
	cout << "Got " << ciData->dpMessage.dPackage.nNum << " of bread!" << endl;
#endif
	HANDLE hEvent = OpenEvent( EVENT_ALL_ACCESS, FALSE, L"ZZRTY-ARARA-03" );
	//--------------------------------------------------------
	char* pMess = new char[ciData->zBuff.nSize];		//allocate memory
	memcpy( pMess, ciData->zBuff.pSend, ciData->zBuff.nSize );		//get decoded data here
	SetEvent( hEvent );
	//---------------------------------------------------------
	int nSent = send( ciData->sSock, pMess, ciData->zBuff.nSize, 0 );
	if( nSent == -1 )
	{
		cout << "Error!" << endl;
		return 0;
	}
	//---------------------------------------------------------
	delete pMess;
	delete ciData;
	ciData = NULL;
	pMess = NULL;
	//---------------------------------------------------------
	return 0;
}
开发者ID:Monceber,项目名称:Task-1.1,代码行数:28,代码来源:TCPServer.cpp


示例19: open

	void open() {
		if (hEvent)
			CloseHandle(hEvent);
		hEvent = OpenEvent(EVENT_ALL_ACCESS, FALSE,name_.empty()?NULL:name_.c_str());
		if (hEvent == NULL)
			throw event_exception(_T("Failed to create ") + name_ + _T(" event: ") + error::lookup::last_error());
	}
开发者ID:jkells,项目名称:nscp,代码行数:7,代码来源:event_handler.hpp


示例20: OpenEvent

//*=================================================================================
//*原型: void TServer::EndService(LPCTSTR pszServiceName)
//*功能: 终止服务
//*参数: pszServiceName -- 服务名称
//*返回: 无
//*说明: WINNT服务器基类
//*=================================================================================
void TServer::EndService(LPCTSTR pszServiceName)
{
//	SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
	HANDLE hShutdown = OpenEvent(EVENT_MODIFY_STATE, FALSE, "__SMART_SERVER_SHUTDOWN__");

	if( hShutdown != NULL )
	{
		PostQuitMessage(0);
		SetEvent(hShutdown);
		Sleep(5000);
		CloseHandle(hShutdown);
	}
	else
	{
		PostQuitMessage(0);
		SetEvent(hShutdown);

		TCHAR sErrorText[256];
		DWORD nErrorCode = GetLastError();

		lstrcpy(sErrorText, "不能停止服务!");
		WriteLog(sErrorText);
		MessageBox(NULL, sErrorText, SERVICE_TITLE, MB_OK|MB_ICONINFORMATION);
	}
}
开发者ID:Codiscope-Research,项目名称:ykt4sungard,代码行数:32,代码来源:TServer.cpp



注:本文中的OpenEvent函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ OpenFile函数代码示例发布时间:2022-05-30
下一篇:
C++ OpenDoorEvent函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap