Merci de ta réponse SergeJim,
Tu as presque raison, WaitForCompletion est à éviter mais uniquement sous la forme que tu cites:
pEvent->WaitForCompletion(INFINITE, &evCode)
c'est-à-dire avec le paramètre INFINITE car si aucun des événements attendus ne se produit jamais
tout programme boucle alors indéfiniment.
Ce qui n'est pas le cas dans mon programme car j'utilise un TimeOut fini. Je n'ai donc pas ce risque.
Comme tu le suggères, j'ai aussi essayé d'autres formes de boucle du type:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| hr = pEvent->GetEventHandle((OAEVENT*)&hEvent);
while(!bDone)
{
if (WAIT_OBJECT_0 == WaitForSingleObject(hEvent, 100))
{
while (hr = pEvent->GetEvent(&evCode, ¶m1, ¶m2, 0), SUCCEEDED(hr))
{
printf("Event code: %#04x\n Params: %d, %d\n", evCode, param1, param2);
hr = pEvent->FreeEventParams(evCode, param1, param2);
bDone = (EC_COMPLETE == evCode);
}
}
} |
mais cela n'a rien donné. Toujours aucun message recu.
En désespoir de cause, j'ai du faire autrement
Partager