Your basic problem is that there is no such thing as a "paste event." There is a command event, but a command that means "paste" to one app may mean "print" to another.

There is a WM_PASTE message, but it is used specifically by edit-controls and has no meaning at the application level.

As for your questions:
1. I don't think it matters what you pass as hhk to CallNextHookEx().
2. You are seeing the high-level commands passed to the Notepad and Explorer apps. When you press "ctrl+V" in an edit control, or Word's edit window, those key presses are interpreted directly by the child window, and a command event is never generated.