if (!GetRegValue(DEVLOAD_LOAD_ASYNC_EVENT_TIMEOUT_VALNAME,(LPBYTE)&dwEventTimeout,sizeof(dwEventTimeout)))
{
// No delay/time-out option set.
dwEventTimeout = INFINITE;
}
if (GetRegValue(DEVLOAD_LOAD_ASYNC_EVENT_VALNAME,(PUCHAR)szEventName,sizeof(szEventName)))
{
m_hAsyncLoadStartEvent = CreateEvent(NULL, TRUE, FALSE, szEventName);
if(m_hAsyncLoadStartEvent && dwEventTimeout)
{
// Wait for event or time out
if(WAIT_FAILED == WaitForSingleObject(m_hAsyncLoadStartEvent, dwEventTimeout))
{
return FALSE;
}
}
}
else
{
// No event time-out option is set. Will start loading after
// delay.
if(dwEventTimeout && (dwEventTimeout != INFINITE))
{
Sleep(dwEventTimeout);
}
}
}
///////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "windows.h"
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
HANDLE hAsyncLoadStartEvent;
WCHAR szEventName[50] = L"StartOthers";
hAsyncLoadStartEvent = CreateEvent(NULL, TRUE, FALSE, szEventName);
if(hAsyncLoadStartEvent) {
SetEvent(hAsyncLoadStartEvent);
CloseHandle(hAsyncLoadStartEvent);
}
return 0;
}
댓글 없음:
댓글 쓰기