OK, I hope what I said was clear... my reason for using GetMessage over PeekMessage was to reduce power usage. This was based on the following tidbits I found in MSVCe Help...
If you port an application to a Windows CE-based platform that operates on batteries you need to consider the limited power resources on the Windows CE-based device. Avoid cycling the CPU unnecessarily by calling energy-consuming functions such as PeekMessage.
and...
Use PeekMessage carefully, because it does not block the waiting for a message event, which enables an application to continue running regardless of messages in the queue. In a Windows CE–based application, if an application does not block the waiting for a message or some other event, the kernel cannot shift the CPU into low-power mode, which can drain the device batteries quickly.
The last of these I really didn't believe, as I couldn't imagine how the kernel could possibly put the CPU into low-power mode whilst I am trying to get the damn CPU to render 3d graphics. Apparently, I was wrong, because this 'fix' improved power usage by 3x or more.
I've written and worked on embedded OSes in the past, and I know how certain 'code paths' are structured that are considered 'always gonna happen' and what happens when they don't!! My guess is that GetMessage does some 'other things' that really need to be done that PeekMessage should have done. Thus it may well be a design or implementation bug.
Anyway, using GetMessage got our power usage down to very reasonable levels and seemed to address FPS issues as well. I thought it would make the game jerky or slower, but in fact it made it smoother and at least appears to be faster.
Let me know what you find!!
Cheers,
rcp