Hello,
From your description, seems you only want to inject a dll to another process, not about code hooking.
Here has some sample code to inject dll,
http://www.torry.net/pages.php?id=347
source code can be downloaded here,
http://www.torry.net/samples/samples/os/dllinject.zip
To fit your needs, you can following these steps,
1, Use tool help APIs to find the target process, e.g, CreateToolhelp32Snapshot, Process32First, etc.
2, Use VirtualAllocEx and CreateRemoteThread to inject your dll into the target process.
3, In your dll startup code, you can do whatever you want, for example, enumerate all heap blocks, etc.
In fact you don't need code hooking, you only need to inject the dll.
To search the memory allocated by a certain dll, you need deep knowledge of Windows memory and module management.