Pressing a button to launch a hook and pivoting where it hits an obstacle verses just clicking where to pivot around seems like a minor difference.
Breaking the problem up into simpler pieces I’d imagine you’re able to see how to launch a hook and see where it hits an obstacle? If not, wouldn’t pressing a button, creating a hook sprite with the bullet behavior from the player, setting the angle of motion up left or up right depending on the direction the player is facing, and finally stopping the hook when it collides with an obstacle work?
Once you have a hook position you could just use the swing logic from any of the examples you mentioned. I can’t imagine it too hard to just isolate the swinging portion and removing the input method they use.