Hi, we have built a custom parser (C/C++) that reads .wvr files that
we do statistical calculations on. Everything works fine except that I
can't figure out how to get the parameters from the user events in our
parser.

In the code running on the target (wxworks 5.5 IIRC), we have
/* ... */
UINT32 num = GetSomeNumber();
wvEvent(45, &num, sizeof(num));
/* ... */

I can see the number in WindView, when bringing up the event details
for the user45 event. So the data is there in the wvr file.

The problem comes when I read the file using our custom parser.

for (j = ctx.begin (); j != ctx.end (); ++j)
{
...
const WVEvent e = *j;
if (e.numParams() == 3) {
printf ("3rd param is 0x%.8x\n", e.param(2));
const char *buf = eb.eventAsString(e, "%3");
printf ("{%s}\n", buf);
}
...
}

This would print something like:
3rd param is 0x00000048
{data=00000398}

398 is the value we're interested in, but what does 0x48 mean? It
can't be a pointer, and I don't know anything that would transform
0x48 to 398 (in any base for that matter).

(Of course, I *could* just call eb.eventAsString() and parse its
output but that seems kind of inconvenient)

NB: For any other events than user events, there's no problem. The
params returned by e.param() is what we see in windview.

Thanks,
Isak Savo