Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-03-2005
Avatar de orfeo
orfeo orfeo is offline
Miembro
 
Registrado: may 2003
Posts: 99
Poder: 22
orfeo Va por buen camino
como saber si una vandera (flag) esta activa o no en una variable DWord

Hola estoy usando FindFirstPrinterChangeNotification para informarme sobre cambios de la impresora... Uso Win2k.SP4 + Delphi 6

Mi duda es sobre como saber que vanderas (opciones de monitoreo) del campo bandera 'fdwFlags' estan activas.
Se supone que soporta varias condiciones de monitorio, por ejemplo PRINTER_CHANGE_ADD_JOB PRINTER_CHANGE_SET_JOB PRINTER_CHANGE_DELETE_JOB PRINTER_CHANGE_WRITE_JOB.


Código:
    HANDLE FindFirstPrinterChangeNotification(

    HANDLE hPrinter,	// handle to printer or print server to monitor for changes
    DWORD fdwFlags,	// flags that specify the conditions to monitor
    DWORD fdwOptions,	// reserved, must be zero
    LPVOID pPrinterNotifyOptions	// pointer to structure specifying printer information
                                       to monitor
   );
Les detallo los pasos

defino Optio como DWord; y luego seteo

Options:=PRINTER_CHANGE_ADD_JOB+PRINTER_CHANGE_SET_JOB;
(esto al parecer anda, por como se comporta el monitoreo)
y luego uso Options como parametro de la funcion FindFirstPrinterChangeNotification.

el problema viene cuando llamo a FindNextPrinterChangeNotification
Código:
   BOOL FindNextPrinterChangeNotification(

    HANDLE hChange,	// handle to change notification object of interest
    PDWORD pdwChange,	// pointer to a value that indicates the condition that changed
    LPVOID pPrinterNotifyOptions,	// pointer to a structure that specifies a refresh flag
    LPVOID *ppPrinterNotifyInfo	// pointer to a pointer that receives printer information buffer
   );
en pdwChange devuelve lo que sucedio con la impresora, supuestamente son valores de las constantes PRINTER_CHANGE_ADD_JOB PRINTER_CHANGE_SET_JOB, pero no se como saber cual de las dos fue la activa.

con un if pdwChange=PRINTER_CHANGE_ADD_JOB , en algunas combinaciones pasa de largo.


No se si me explique bien, pero en si quiero saber como preguntar por una vandera activa en una variable del api32 del tipo DWORD.
__________________
Aprendamos a ser civilizados

Última edición por orfeo fecha: 03-03-2005 a las 03:16:58.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:31:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi