Wikipedia explains that one use of the present perfect is to describe "actions started in the past and continuing in the present", with this example:
We have lived in Sapporo for eleven years.
That looks a lot like the sentence in your grammar book:
I have read this book for two hours.
But here's the problem: living is a relatively permanent thing, whereas reading and cooking are temporary activities. In other words, I can say "I have lived in Sapporo" while I am still living in Sapporo – even if I'm visiting you in Moscow. This boils down to the difference between stative verbs (such as live or know) and dynamic verbs (such as read and cook).
You can still use the present perfect with dynamic verbs, but you do this when you are talking about "an unspecified period between the past and now" or when "the precise time of the action is not important or not known". For example:
I have read this book three times.
I have cooked hot cross buns in my new oven.
Going back to your sentences, we can use the present perfect continuous, and say things like:
I have been reading this book for two hours.
I have been cooking since three o'clock.