Sorry I'm replying so late,
in reply to Re^2: Calls to win32 hanging in cgi not in command line
in thread Calls to win32 hanging in cgi not in command line
That is wrong, bare letters aren't letters but subs to run. Put single quotes around the parameter letter codes. And add a ".dll" to dll file name. You dont have to, it makes code easier to read.
my $OpenTopic = new Win32::API
("pmdbf32", "OpenTopic", [P, P], N);
are you running on 64 bit or 32 bit windows? What the the C prototype of that OpenTopic function?