why can not I get information(eg. dmCopies) from JOB_INFO_2 in Win98

Hello,

I am developing a Printer Monitor Tool, and I need to get detailed
information of every printing job.
According to Microsoft support site:HOWTO: Get the Status of a Printer and a
Print Job
URL:
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:
80/support/kb/articles/q160/1/29.asp&NoWebContent=1
I use EnumJobs API to get what I want. The source works well in Win2K, but
It does not work in win98.
That code is like below:

/* Get the list of jobs. */

if (!EnumJobs(hPrinter, 0,
pPrinterInfo->cJobs, 2,
(LPBYTE)pJobStorage,
cByteNeeded, (LPDWORD)&cByteUsed,
(LPDWORD)&nReturned))
{
// free memory and return
}

/*
* Return the information.
*/
*pcJobs = nReturned;
*pStatus = pPrinterInfo->Status;
*ppJobInfo = pJobStorage;
free(pPrinterInfo);

For example:pcJobs = 1
In win2k, ppJobInfo returns a JOB_INFO_2 structure and
(JOB_INFO_2*)->pDevMode returns all the information that I want
In Win98, ppJobInfo also returns a JOB_INFO_2 structure,but
(JOB_INFO_2*)->pDevMode always NULL, and I can not get any information in
DEVMODE like dmCopies etc.

Who can help me or give me any advice?