грм, без мерцания говоришь.... сложновато - я бы просто внедрялся. Например можно эвент сделать.
т.е. твоя прога ждет эвент когда начинать рисовать, а та прога, чье окно ты ловишь - посылает эвент когда свое нарисует.
для этого надо
DuplicateHandle + VirtualAllocEx + WriteProcessMemory
и код какой-нить засунуть вроде
BOOL WINAPI (*SetEventPtr)(
__in HANDLE hEvent
);
VOID WINAPI (*SleepPtr)(
__in DWORD dwMilliseconds
);
HANDLE Event;
void SomeCallBack() {
SetEventPtr(Event);
SleepPtr(0);
}
для этого понадобится порядка 30 байт забросить.