Thank you for your reply, Ziko.
I have discovered the reason for my trouble. It seems to be a very simple and emrarassing one of not having a match in the variable types. I thought I had checked and rechecked that but sure enough, after leaving the code and coming back to it I noticed a mismatch. After the mismatch was corrected the code was able to function.
By the way--I have encountered a problem with the HRDLGetUnitInfo function. That seems to be the only one that uses a fixed-length string as one of the parameters passed (at lease I assume that the notation char * string for one parameter and stringlength for the next parameter denotes a fixed-length string). It turns out that Visual Basic 2005 no longer directly supports fixed-length strings. Since VB 2005 is so closely integrated with the Microsoft .NET framework I am guessing that none of the other languages associated with .NET framework, such as Microsoft C, will support them either. So the result is that I cannot call HRDLGetInfo to learn what kind of card is present, any error codes, etc. I tried using a non-fixed length string for the parameter but it didn't work.
Do you or anyone else know how to work around this issue?