Se vuoi utilizzare una "funzione di callback" (non un evento) allora devi indicare la costante

CALLBACK_FUNCTION

nella open e utilizzare una funzione del tipo


void CALLBACK waveInProc(
HWAVEIN hwi,
UINT uMsg,
DWORD dwInstance,
DWORD dwParam1,
DWORD dwParam2
)

Tramite il campo uMsg gestirai i messaggi in arrivo.