To identify the printing user name when a print job is sent to the Black Ice printer driver, the driver sends out a startdoc message. Once the startdoc message is received, the application has to call the EnumJobs function to enumerate the print jobs in the current spool. You can call the GetJob function to retrieve Job_Info_2 data structure for each print job. The status member of the structure signals if the job is currently being printed or not. You have to find the print job that has the status set to Job_Status_Printing. This is the job that is currently being printed. For this print job, check the pUserName member of the Job_Info_2 structure. This will contain the name of the user that has printed the print job.