Problema con winspool.h en VC 6(Buscar impresoras)
Publicado por Nelek (816 intervenciones) el 08/05/2007 08:27:52
Hola,
estoy intentando crearme mi propio dialogo de impresion porque muchas de las opciones de CPrintDialog no son "validas" para mi proyecto, pero tengo problemas a la hora de rellenar el ComboBox de seleccion del dispositivo. Para ello estoy haciendo esto:
DWORD dwSize, dwPrinters;
::EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 5, NULL, 0, &dwSize, &dwPrinters);
BYTE* pBuffer = new BYTE[dwSize];
::EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 5, pBuffer, dwSize, &dwSize, &dwPrinters);
if (dwPrinters != 0)
{
PRINTER_INFO_5* pPrntInfo = (PRINTER_INFO_5*) pBuffer;
for (UINT i = 0; i < dwPrinters; i++)
{
m_ccbPrinters.AddString (pPrntInfo->pPrinterName);
pPrntInfo++;
}
}
delete[] pBuffer;
Lo cual toma las impresoras del registro de windows y las pone en el combobox. Hasta ahi perfecto, pero resulta que me faltan un par de impresoras que estan dentro de "Panel de control - Impresoras". Dichas dos impresoras son impresoras de red, por lo que no tienen entrada en el registro (o al menos no donde este codigo busca).
Alguien me puede dar una pista como debo incluirlas? Gracias por adelantado
estoy intentando crearme mi propio dialogo de impresion porque muchas de las opciones de CPrintDialog no son "validas" para mi proyecto, pero tengo problemas a la hora de rellenar el ComboBox de seleccion del dispositivo. Para ello estoy haciendo esto:
DWORD dwSize, dwPrinters;
::EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 5, NULL, 0, &dwSize, &dwPrinters);
BYTE* pBuffer = new BYTE[dwSize];
::EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 5, pBuffer, dwSize, &dwSize, &dwPrinters);
if (dwPrinters != 0)
{
PRINTER_INFO_5* pPrntInfo = (PRINTER_INFO_5*) pBuffer;
for (UINT i = 0; i < dwPrinters; i++)
{
m_ccbPrinters.AddString (pPrntInfo->pPrinterName);
pPrntInfo++;
}
}
delete[] pBuffer;
Lo cual toma las impresoras del registro de windows y las pone en el combobox. Hasta ahi perfecto, pero resulta que me faltan un par de impresoras que estan dentro de "Panel de control - Impresoras". Dichas dos impresoras son impresoras de red, por lo que no tienen entrada en el registro (o al menos no donde este codigo busca).
Alguien me puede dar una pista como debo incluirlas? Gracias por adelantado
Valora esta pregunta


0