That probably will compile but won't link properly. You are attempting to pass in actual objects instead of pointers to objects which causes the linker to look for a different overloaded version of the function/method. If it does compile & link successfully, you'll probably get memory errors and/or crashes. For the declaration you have, this would be the proper call:
method(&a, &b, &c);
With the proper call, a, b, and c in method() would be storing the memory addresses of a, b, and c in the previous scope.
A different, simpler, declaration for a pass by reference would be:
int method( char &a, char &b, int &c );
Then the call would be:
method(a, b, c);
Oops, some overlap.
>>They're using LPSTR, something I've never heard of. I'm thinking this whole component needs updating
AD would have to confirm, as he does a lot with windows programming, but I believe LPSTR is a Windows API typedef for char*. The Windows APIs use a lot of strange type names like that.
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...