The way I see it, this is impossible.  Another option is that I am just
stupid.  I'll give you 2:1 odds on impossible, though.  Well, maybe 1:1.
Here goes:

In my hack for the SysProcessSoftkeyStroke, the function recieves two
parameters: PointType *startPtP and PointType *endPtP.  Immediately upon
entering the function, have the following lines:
{
PointType startPoint;
PointType endPoint;

if (startPtP->x == endPtP->x)
    SndPlaySystemSound(sndAlarm);

startPoint = (*startPtP);
endPoint = (*endPtP);

if (startPtP->x == endPtP->x)
    SndPlaySystemSound(sndError);
if (startPoint.x == endPoint.x)
    SndPlaySystemSound(sndError);
}

The result is no alarm, then 2 beeps.  That means that startPtP.x does not
equal endPtP.x until after I assign the variables startPoint and endPoint to
the values of *startPtP and *endPtP.  It gets weirder:

The following code does work:
{
 SWord startX;   // for some reason, I need to save the values of startPtP
and
 SWord startY;   // endPtP and pass the address to my own PointType
variables
 SWord endX;    // if I want to call the original trap.  I dont know why,
but
 SWord endY;    // it works.

if (startPtP->x == endPtP->x)
    SndPlaySystemSound(sndAlarm);

 startX = startPtP->x;
 startY = startPtP->y;
 endX = endPtP->x;
 endY = endPtP->y;

if (startPtP->x == endPtP->x)
    SndPlaySystemSound(sndError);
if (startX == endX)
    SndPlaySystemSound(sndError);
}

Here I get no sounds whatsoever.  Apparently, accessing the variables by
reference as opposed to by value is ok, but the reverse causes them to be
reinitialized to zero or something.  I dunno.

First one to figure this out gets a big prize!





-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/

Reply via email to