After processing a WM_DDE_ADVISE message, a server is required to notify the client when an item has changed. How this works depends on the server. In the case of DDEPOP, a timer is used to recalculate the populations every 5 seconds. This occurs while processing the WM_TIMER message in WndProc.
WndProc then calls EnumChildWindows with the TimerEnumProc function (located after ServerProc in DDEPOP.C). TimerEnumProc sends WM_TIMER messages to all the child windows, which will all be using the ServerProc window procedure.
ServerProc processes the WM_TIMER message by looping through all the states and checking if the POPADVISE structure field fAdvise is set to TRUE and the population has changed. If so, it calls PostDataMessage to post a WM_DDE_DATA message to the client.