In lparam bzw. wparam werden die Daten des Hooks geliefert, in dem Fall also die Taste bzw. auch noch den Status der Sondertasten (shift gedrückt? strg gedrückt?). Hier kannst Du also abfragen, welche Taste gedrückt wurde.
Den Wert der Taste ändern ist so über einen Hook nicht möglich. Es gibt da aber einen Workaround:
Kommt ein 'm' musst Du als Rückgabe der Hook-Funktion einen Wert kleiner 0 zurückgeben. Das bedeutet, der Tastendruck wird nicht weitergereicht. Gleichzeitig sendest Du den Druck eines 'b'. Das wars dann eigentlich schon.
Nachtrag: Weitere Informationen zu den Parametern im Hook stehen übrigens im
MSDN:
KeyboardProc Function