Ciao a tutti! Sto scrivendo un piccolo programma che tramite la pressione di una o più hotkey (stabilite dall'utente) riesce a riprodurre un suono dopo un certo intervallo di tempo (usando la Sleep()). Purtroppo il tutto accade sequenzialmente. Mi spiego meglio: date 2 hotkey "A" e "B" con "A" che riproduce un suono dopo 10 secondi e "B" dopo 15, se premo "A" e dopo 1 secondo "B" il programma aspetta prima 10 secondi per riprodurre il suono collegato ad "A" e poi ne aspetta altri 15 per riprodurre il suono collegato a "B". Io invece vorrei che il programma faccia partire contemporaneamente un tot di istruzioni (Sleep() e suono compresi) per ogni hotkey e riproducesse il suono esattamente dopo l'intervallo di tempo stabilito.

Ho trovato le funzioni CancelWaitableTimer(), CreateWaitableTimer(), OpenWaitableTimer() e SetWaitableTimer(), ma non sono sicuro che possano fare ciò che desidero e anche se fosse non saprei come metterlo in pratica...

Questa è la porzione di codice interessata:
codice:
      RegisterHotKey(NULL, 1, 0, 'A');
      RegisterHotKey(NULL, 2, 0, 'B');
      RegisterHotKey(NULL, 3, 0, 'C');
      
      MSG msg={0};
      
      while(GetMessage(&msg, NULL, 0, 0) != 0) {
                      switch(msg.wParam) {
                                        case 1:UnregisterHotKey(NULL,1);
                                        Sleep(10000);
                                        PlaySound(TEXT("suonoA.wav"), NULL, SND_SYNC);
                                        RegisterHotKey(NULL, 1, 0, 'A');
                                        break;
                                        
                                        case 2:UnregisterHotKey(NULL,2);
                                        Sleep(15000);
                                        PlaySound(TEXT("suonoB.wav"), NULL, SND_SYNC);
                                        RegisterHotKey(NULL, 1, 0, 'B');
                                        break;
                                        
                                        case 3:goto fine;
                      }
      }
      
      fine:
      
      UnregisterHotKey(NULL,1);    
      UnregisterHotKey(NULL,2);   
      UnregisterHotKey(NULL,3);
Qualcuno può aiutarmi? Grazie in anticipo