It's always hard to answer when someone asks more than one question... In the case of your "main question", please show the relevant API call for subscribing to events. You are wrong about there being no message loop in Win32... It's just that there's no MFC message loop.
I'm answering the easy question for now... "how do you link the DLL". I am kinda assuming you are using Visual Studio. Is that correct? The way I do this, when I'm in a hurry is like so:
#include "mylib.h"
#pragma comment(lib, "mylib.lib")
That's all there is to it. Of course I want the header, but while I'm at it I tell the compiler to link the library too.
I seem to recall other times where I simply dragged the library file into the project's solution view, effectively adding it as a source. That also works.
The long way is to edit your project settings, go to the Linker section, and under the Input subsection, you add your library to the Additional Dependencies list. You need to do that for all configurations. There are ways to maintain this properly but I won't go into it here.
If you are not using Visual Studio, please disregard my answer.