HDC GetPrinterDC (void)
        
{
        
           DWORD                                                      dwNeeded, dwReturned ;
        
           HDC                                                         hdc ;
        
           PRINTER_INFO_4 *              pinfo4 ;
        
           PRINTER_INFO_5 *              pinfo5 ;
                   if (GetVersion () & 0x80000000)      // Windows 98
        
           {
        
                          EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, NULL,
        
                   0, &dwNeeded, &dwReturned) ;
        
                          pinfo5 = malloc (dwNeeded) ;
        
                         EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE) pinfo5,
        
                   dwNeeded, &dwNeeded, &dwReturned) ;
        
                          hdc = CreateDC (NULL, pinfo5->pPrinterName, NULL, NULL) ;
        
                          free (pinfo5) ;
        
           }
        
           else
        
//Windows NT
        
   {
        
                          EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 4, NULL,
        
                   0, &dwNeeded, &dwReturned) ;
        
                          pinfo4 = malloc (dwNeeded) ;
        
                          EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 4, (PBYTE) pinfo4,
        
                   dwNeeded, &dwNeeded, &dwReturned) ;
        
                          hdc = CreateDC (NULL, pinfo4->pPrinterName, NULL, NULL) ;
        
                          free (pinfo4) ;
        
           }
        
           return hdc ; 
        
}提示error C2440: '=' : cannot convert from 'void *' to 'struct _PRINTER_INFO_4A *'  怎么解决??