Udostępnij przez


Używanie funkcji wywołania zwrotnego do przetwarzania komunikatów sterowników

[Funkcja skojarzona z tą stroną, Waveform Audio, jest starszą funkcją. Został zastąpiony przez WASAPI i Audio Graphs. WASAPI i Audio Graphy zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał WASAPI i Audio Graphs zamiast Waveform Audio, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Możesz napisać własną funkcję wywołania zwrotnego w celu przetwarzania komunikatów wysyłanych przez sterownik urządzenia. Aby użyć funkcji wywołania zwrotnego, określ flagę CALLBACK_FUNCTION w parametrze fdwOpen oraz adres funkcji wywołania zwrotnego w parametrze dwCallback funkcji waveInOpen lub waveOutOpen.

Komunikaty wysyłane do funkcji wywołania zwrotnego są podobne do komunikatów wysyłanych do okna, z tą różnicą, że zamiast parametru UINT i DWORD, mają dwa parametry DWORD. Aby uzyskać szczegółowe informacje na temat tych komunikatów, zobacz Playing Waveform-Audio Files.

Aby przekazać dane instancji z aplikacji do funkcji zwrotnej, użyj jednej z następujących technik:

  • Przekaż dane wystąpienia przy użyciu parametru dwInstance funkcji, która otwiera sterownik urządzenia.
  • Przekaż dane wystąpienia przy użyciu dwUser elementu członkowskiego WAVEHDR struktury identyfikującej blok danych audio wysyłany do sterownika urządzenia.

Jeśli potrzebujesz więcej niż 32 bitów danych instancji, przekaż wskaźnik do struktury zawierającej dodatkowe informacje.