Hi all. Is there any way to extend maximum timer count value above 0x7fffffff i.e. 24.8 days?

#include<windows.h>
#include<stdio.h>
VOID CALLBACK TimerProc(          HWND hwnd,
    UINT uMsg,
    UINT_PTR idEvent,
    DWORD dwTime
);
void main()
{
UINT time
MSG msg;
::SetTimer(NULL,0,time,TimerProc);
GetMessage(&msg,NULL,0,0);


}

VOID CALLBACK TimerProc(          HWND hwnd,
    UINT uMsg,
    UINT_PTR idEvent,
    DWORD dwTime
)
{
printf("blah");
}

So my question remains:
As my timers need to count months and years, current resolution simply isn't enough. Is there any other way to count time in C++ Im unaware?
Thanks in advance!

Sleep a day at a time. Check the date/time every time you wake up.