Page 1 of 1

Winspool

Posted: Mon Jul 09, 2007 7:39 am
by new_indika
Para poder utilizar funciones del API de Windows que hacen referencia a la libería Winspool, ¿que es necesario que incluya en la aplicación? ¿Ha de incluirse alguna libreria o DLL "adaptada" a fivewin/xharbour?

Posted: Mon Jul 09, 2007 10:53 am
by new_indika
Librerias y archivos relacionados:

Winspool.lib
Winspool.dll
Winspool.h

Como aclaración, Winspool es el servicio de windows que controla las impresoras, la cola de impresión, etc.

Posted: Mon Jul 09, 2007 10:58 am
by Antonio Linares
Haz impdef.exe winspool.def winspool.dll y asi obtendrás el fichero ascii DEF que contiene los nombres de las funciones que exporta esa DLL, luego puedes buscar documentación acerca de ellas sabiendo sus nombres

Posted: Mon Jul 09, 2007 11:48 am
by new_indika
Gracias Antonio.

Creo que antes no me explique bien. La documentación en sí, dispongo de ella, y para poder tener acceso a las funciones de la misma (muy utiles por cierto, pues permiten obtener el numero de impresoras conectadas al equipo, los drivers que utilizan, información sobre la cola de impresión,etcétera)
declaro las funciones de ésta manera.

Code: Select all

 DLL32 FUNCTION EnumPrintA; 
      ( flags AS LONG, ;
        name AS STRING, ;
        Level AS LONG, ;
        @pPrinterEnum AS BYTE, ;
        cdBuf AS LONG, ;
        @pcbNeeded AS LONG, ;
        @pcReturned AS LONG ) ;
   AS LONG PASCAL;
   FROM "EnumPrintersA" LIB "WINSPOOL"
Esta función del API de Win que aquí muestro, te enumera la lista de impresoras de las que dispone el equipo. Otras funciones del API que también utilizo, no me dan ningún tipo de problema. El problema es que con ésta en particular, parece ser que no es capaz de cargar la libreria WINSPOOL, entonces aquí surje mi duda. Ya no se si ésto está dentro del ámbito de FiveWin, o se sale de lo que a éste foro concierne. Si es así, disculpas.

Me explique mal al formular la pregunta del post. Mas bién debería haber preguntado cual es el procedimiento para cargar una librería, y poder hacer uso de sus funciones en FiveWin. A continuacíon, muestro la ruta de las librerias y del archivo de extensión .h, los cuales desearía utilizar.

Al compilar el programa me muestra éste error en tiempo de ejecución:
"Error code: 0 Loading Winspool". Dicho error, parece ser que se produce cuando se intenta cargar una librería, y esta, no existe (hace referencia a la última línea de código de este post). De hecho, si se cambia el nombre de librería por una no existente, muestra el mismo error.

P.D. En el Borland BCC5, estos archivos están en la ruta:
Borland\BCC55\include\winspool.h
Borland\BCC55\LIB\PSDK\winspool.lib

Saludos y gracias!

Posted: Mon Jul 09, 2007 1:17 pm
by Antonio Linares
Cambia winspool.dll por winspool.exe