Since the OP is wanting to distribute the code, it becomes necessary to ensure that Inline::C is installed on the target machines (or other appropriate action taken).
I would therefore probably take the code that BrowserUk provided and turn it into a standalone module - which could be distributed in either source or pre-built (binary) form.
First, create a directory ./Win32-ThreadID-0.01 and a file ./ThreadID.c; where ThreadID.c contains the following section of BrowserUk's code:
Then run this script:
That will create a Win32-ThreadID-0.01 source distro in the Win32-ThreadID-0.01 directory - complete with ThreadID.pm, ThreadID.xs, Makefile.PL, INLINE.h and MANIFEST, where ThreadID.pm exports (upon request) the getWindowThreadProcessId function. That distro as it then stands is already buildable and installable - though there's yet no test script (which would have to be added by hand, if desired).
Hmmm .... come to think of it, an option to generate a test script (that simply tests the loadability of the module) might be a useful addition to InlineX::C2XS ...
In reply to Re^2: Using GetWindowThreadProcessId(). Want to move to AS 5.16 64bit Perl, but Win32::GUI doesn't build. Now what?