2012년 3월 12일 월요일

SetEvent

void run(void){
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;
}

댓글 없음:

댓글 쓰기