Could this lead to problems with the array reference?I don't see any reason that should lead to any problems.
There are other approaches (apart from Win32::API) that you can take - eg XS or Inline::C.
I personally prefer either of those (especially the latter) over Win32::API as I've always found Win32::API difficult to get right - though it's possible that the deficiency is in me, as opposed to Win32::API.
For XS/Inline::C you'll need the header file (which it seems you already have), the dll (which you definitely already have) and a suitable import library (which you might not have).
To create the import library ( let's call it libAID.a), place a copy of AID.dll in the cwd and run:
gendef AID.dll
dlltool --kill-at --input-def AID.def --output-lib libAID.a
I would then install Inline::C and access the dll functionality using it.
(You'll want to first run
perldoc Inline::C-Cookbook for some basic instructions on how to successfully use the module.)
Cheere,
Rob