

SetTimer can reuse timer IDs in the case where hWnd is NULL.īefore using SetTimer or other timer-related functions, it is recommended to set the UOI_TIMERPROC_EXCEPTION_SUPPRESSION flag to false through the SetUserObjectInformationW function, otherwise the application could behave unpredictably and could be vulnerable to security exploits. Another window can have its own timer which has the same identifier as a timer owned by another window. The timer identifier, nIDEvent, is specific to the associated window. The wParam parameter of the WM_TIMER message contains the value of the nIDEvent parameter. Therefore, you need to dispatch messages in the calling thread, even when you use TimerProc instead of processing WM_TIMER. When you specify a TimerProc callback function, the default window procedure calls the callback function when it processes WM_TIMER. RemarksĪn application can process WM_TIMER messages by including a WM_TIMER case statement in the window procedure or by specifying a TimerProc callback function when creating the timer. To get extended error information, call GetLastError. If the function fails to create a timer, the return value is zero. An application can pass the value of the nIDEvent parameter to the KillTimer function to destroy the timer. If the function succeeds and the hWnd parameter is not NULL, then the return value is a nonzero integer. An application can pass this value to the KillTimer function to destroy the timer. If the function succeeds and the hWnd parameter is NULL, the return value is an integer identifying the new timer. The hwnd member of the message's MSG structure contains the value of the hWnd parameter. If lpTimerFunc is NULL, the system posts a WM_TIMER message to the application queue. For more information about the function, see TimerProc. If uElapse is greater than USER_TIMER_MAXIMUM (0x7FFFFFFF), the timeout is set to USER_TIMER_MAXIMUM.Ī pointer to the function to be notified when the time-out value elapses. If uElapse is less than USER_TIMER_MINIMUM (0x0000000A), the timeout is set to USER_TIMER_MINIMUM. If the call is not intended to replace an existing timer, nIDEvent should be 0 if the hWnd is NULL. Therefore, a message will be sent after the current time-out value elapses, but the previously set time-out value is ignored. When SetTimer replaces a timer, the timer is reset. If the hWnd parameter is not NULL and the window specified by hWnd already has a timer with the value nIDEvent, then the existing timer is replaced by the new timer. If the hWnd parameter is NULL, and the nIDEvent does not match an existing timer then it is ignored and a new timer ID is generated.

If a NULL value for hWnd is passed in along with an nIDEvent of an existing timer, that timer will be replaced in the same way that an existing non-NULL hWnd timer will be.Ī nonzero timer identifier. This window must be owned by the calling thread. It is further divided into two Eon energy parameters, Eon1 and Eon2. Syntax UINT_PTR SetTimer(Ī handle to the window to be associated with the timer. The Eon energy consumption listed in the IGBT datasheet is the time integral of the product of Icollector and VCE for each conversion cycle in Joules and contains additional losses related to class saturation. Creates a timer with the specified time-out value.
