Aldo (or anyone else who knows how to fix this):

I've been trying to figure out why AcceleratorTables do not work, and I've got 
a pretty fair idea about it.  The problem is, I don't know the Windows API at 
all, so I don't know how to fix it.

In the current (version 665) GUI.pm, take a look at lines 2578 - 2635.  
Specifically, line 2619:

   push(@acc, $id);

Nowhere in that subroutine do you define a variable called $id.  Looking in the 
.xs file, I can see that this is being used in the ACCEL array being fed to 
windows, line 3958:

   acc[c].cmd   = (WORD) SvIV(ST(i));

So, what happens is, Perl complains about the use of an undefined value, then 
presumably feeds the number 0 to the XS glue.  Then, the .cmd parameter gets 
set to zero, instead of whatever it should be.

Problem is, as I said before, I don't know the Windows API at all, so I have no 
idea what we're supposed to be setting as the .cmd parameter.

BTW, I looked back through all the previous versions of Win32::GUI, and the 
code hasn't changed since 400-something.  Has this ever worked?

Thanks to anybody who can help me figure this out.  BTW, I am able to compile 
and test this as needed.  I'm actually working with the .558 source for reasons 
I won't get into here.

Trevor S Garside
[EMAIL PROTECTED]


Reply via email to