FindFirstPrinterChangeNotification fonction)
La fonction FindFirstPrinterChangeNotification crée un objet de notification de modification et retourne un handle à l’objet. Vous pouvez ensuite utiliser ce handle dans un appel à l’une des fonctions Wait pour surveiller les modifications apportées à l’imprimante ou au serveur d’impression.
L’appel FindFirstPrinterChangeNotification spécifie le type de modifications à surveiller. Vous pouvez spécifier un ensemble de conditions pour surveiller les modifications, un ensemble de champs d’informations d’imprimante à surveiller, ou les deux.
Une opération d’attente sur le handle de notification de modification est effectuée lorsque l’une des modifications spécifiées se produit sur l’imprimante ou le serveur d’impression spécifié. Vous appelez ensuite la fonction FindNextPrinterChangeNotification pour récupérer des informations sur la modification et réinitialiser l’objet de notification de modification pour l’utiliser lors de l’opération d’attente suivante.
Syntaxe
HANDLE FindFirstPrinterChangeNotification(
_In_ HANDLE hPrinter,
DWORD fdwFilter,
DWORD fdwOptions,
_In_opt_ LPVOID pPrinterNotifyOptions
);
Paramètres
-
hPrinter [ dans]
-
Handle vers l’imprimante ou le serveur d’impression que vous souhaitez analyser. Utilisez la fonction OpenPrinter ou AddPrinter pour récupérer un handle d’imprimante.
-
fdwFilter
-
Conditions qui obligeront l’objet de notification de modification à entrer dans un état signalé. Une notification de modification se produit lorsqu’une ou plusieurs des conditions spécifiées sont remplies. Le paramètre fdwFilter peut être égal à zéro si pPrinterNotifyOptions n’est pas null.
Ce paramètre peut être une ou plusieurs des valeurs suivantes.
Valeur Signification - _formulaire de modification de l’imprimante _
Notifier toute modification apportée à un formulaire. Vous pouvez définir cet indicateur général ou un ou plusieurs des indicateurs spécifiques suivants :
- _Ajouter un _ _ formulaire de modification d’imprimante
- _formulaire de modification de l’imprimante _ _
- _formulaire de _ Suppression de modification d’imprimante _
- _travail de modification d’imprimante _
Notifier toute modification apportée à un travail. Vous pouvez définir cet indicateur général ou un ou plusieurs des indicateurs spécifiques suivants :
- changement d’imprimante _ _ Ajouter un _ travail
- _travail d' _ ensemble de modifications d’imprimante _
- _tâche de _ Suppression de modification d’imprimante _
- _travail d' _ écriture de modification d’imprimante _
- _port de modification de l’imprimante _
Notifier toute modification apportée à un port. Vous pouvez définir cet indicateur général ou un ou plusieurs des indicateurs spécifiques suivants :
- changement d’imprimante _ _ Ajouter un _ port
- _modifier le _ port de configuration de l’imprimante _
- _port de _ Suppression de modification d’imprimante _
- changement d’imprimante du _ _ processeur d’impression _
Notifier toute modification apportée à un processeur d’impression. Vous pouvez définir cet indicateur général ou un ou plusieurs des indicateurs spécifiques suivants :
- modification de l’imprimante _ _ Ajouter un _ processeur d’impression _
- changement d’imprimante- _ _ supprimer le _ processeur d’impression _
- imprimante de changement d’imprimante _ _
Notifier toute modification apportée à une imprimante. Vous pouvez définir cet indicateur général ou un ou plusieurs des indicateurs spécifiques suivants :
- modification de l’imprimante _ _ Ajouter l' _ imprimante
- imprimante de _ jeu de modifications d’imprimante _ _
- modification de l’imprimante _ _ Supprimer l' _ imprimante
- _ _ imprimante échec de _ la modification de l’imprimante _
- IMPRIMANTE _ changer _ le _ pilote d’imprimante
Notifier toute modification apportée à un pilote d’imprimante. Vous pouvez définir cet indicateur général ou un ou plusieurs des indicateurs spécifiques suivants :
- changement d’imprimante _ _ Ajouter un _ pilote d’imprimante _
- _pilote d' _ imprimante de jeu de modifications d’imprimante _ _
- modification de l’imprimante _ _ supprimer le _ pilote d’imprimante _
- _tout modifier l’imprimante _
Notifiez si l’une des modifications précédentes se produit. - _serveur de changement d’imprimante _
Windows 7 : notification de toute modification apportée au serveur.
Cet indicateur n’est pas inclus dans les modifications contrôlées en définissant la valeur de _ _ modifier l’imprimante .Pour obtenir une description des indicateurs plus spécifiques dans le tableau précédent, consultez la fonction FindNextPrinterChangeNotification .
-
fdwOptions
-
Indicateur qui détermine la catégorie des imprimantes pour lesquelles les notifications fonctionnent.
Valeur Signification - Imprimante _ NOTIFIer la _ catégorie _ tous les
- 0x001000
FindNextPrinterChangeNotification retourne des notifications pour les imprimantes 2D et 3D. - Imprimante _ NOTIFIer la _ catégorie 0x002000 _ 3D
FindNextPrinterChangeNotification retourne uniquement les notifications pour les imprimantes 3D. Lorsque cet indicateur est défini sur zéro (0), FindFirstPrinterChangeNotification ne fonctionne que pour les imprimantes 2D. Il s’agit de la valeur par défaut.
-
pPrinterNotifyOptions [ dans, facultatif]
-
Pointeur vers une structure d' _ _ options de notification d’imprimante . Le membre pTypes de cette structure est un tableau d’une ou de plusieurs structures de types d’options de notification d' imprimante _ _ _ , chacune d’elles spécifiant un champ d’informations sur l’imprimante à surveiller. Une notification de modification se produit lorsqu’un ou plusieurs des champs spécifiés sont modifiés. Lorsqu’une modification se produit, la fonction FindNextPrinterChangeNotification peut récupérer les nouvelles informations sur l’imprimante. Ce paramètre peut avoir la valeur null si fdwFilter est différent de zéro.
Pour obtenir la liste des champs qui peuvent être analysés, voir Printer _ Notify _ options _ type.
Valeur de retour
Si la fonction est réussie, la valeur de retour est un handle vers un objet de notification de modification associé à l’imprimante ou au serveur d’impression spécifié.
Si la fonction échoue, la valeur de retour est une valeur de handle non valide _ _ .
Notes
Notes
Il s’agit d’une fonction de blocage ou synchrone qui peut ne pas être renvoyée immédiatement. La vitesse à laquelle cette fonction est retournée dépend des facteurs d’exécution tels que l’état du réseau, la configuration du serveur d’impression et les facteurs d’implémentation des pilotes d’imprimante qui sont difficiles à prédire lors de l’écriture d’une application. L’appel de cette fonction à partir d’un thread qui gère l’interaction avec l’interface utilisateur peut faire que l’application semble ne pas répondre.
Pour surveiller une imprimante ou un serveur d’impression, appelez la fonction FindFirstPrinterChangeNotification , puis utilisez le descripteur d’objet de notification de modification retourné dans un appel à l’une des fonctions Wait. Une opération d’attente sur un objet de notification de modification est satisfaite lorsque l’objet de notification de modification passe à l’état signalé. Le système signale l’objet lorsqu’une ou plusieurs des modifications spécifiées par fdwFilter ou pPrinterNotifyOptions se produisent sur l’imprimante ou le serveur d’impression analysé.
Lorsque vous appelez FindFirstPrinterChangeNotification, fdwFilter doit être différent de zéro ou pPrinterNotifyOptions doit avoir une valeur non null. Si les deux sont spécifiés, des notifications sont générées pour les deux.
Quand une opération d’attente sur un objet de notification de modification d’imprimante est satisfaite, appelez la fonction FindNextPrinterChangeNotification pour déterminer la cause de la notification. Pour une condition spécifiée par fdwFilter, FindNextPrinterChangeNotification signale la ou les conditions qui ont changé. Pour un champ d’informations d’imprimante spécifié par pPrinterNotifyOptions, FindNextPrinterChangeNotification signale le ou les champs qui ont changé, ainsi que les nouvelles informations pour ces champs. FindNextPrinterChangeNotification réinitialise également l’objet de notification de modification à l’état non signalé afin que vous puissiez l’utiliser dans une autre opération d’attente pour continuer à surveiller l’imprimante ou le serveur d’impression.
À une exception près, n’appelez pas la fonction FindNextPrinterChangeNotification si l’objet de notification de modification n’est pas dans l’état signalé. Si la fonction Wait retourne le délai d’attente de la valeur _ , l’objet de modification n’est pas dans l’état signalé. Appelez la fonction FindNextPrinterChangeNotification uniquement si la fonction Wait est réussie sans dépassement du délai d’attente. L’exception est quand FindNextPrinterChangeNotification est appelé avec le _ bit d' _ actualisation des options _ de notification d’imprimante défini dans le paramètre pPrinterNotifyOptions .
Lorsque vous n’avez plus besoin de l’objet de notification de modification, fermez-le en appelant la fonction FindClosePrinterChangeNotification .
Les appelants de FindFirstPrinterChangeNotification doivent s’assurer que le handle d’imprimante passé dans FindFirstPrinterChangeNotification reste valide jusqu’à ce que FindClosePrinterChangeNotification soit appelé. Si le descripteur d’imprimante est fermé avant le handle de notification de modification d’imprimante, les notifications supplémentaires ne seront pas remises.
FindFirstPrinterChangeNotification n’enverra pas de notifications de modifications pour les imprimantes 3D aux descripteurs de serveur.
Notes
dans Windows XP avec Service Pack 2 (SP2) et versions ultérieures, le pare-feu de connexion Internet (ICF) bloque les ports d’imprimante par défaut, mais une exception pour le partage de fichiers et d’imprimantes peut être activée. Si un utilisateur établit une connexion d’imprimante avec un autre ordinateur et que l’exception n’est pas activée, l’utilisateur ne reçoit pas de notifications de modification d’imprimante à partir du serveur. Un administrateur d’ordinateur devra activer l’exception.
Spécifications
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows 2000 Professionnel - [Applications de bureau uniquement] |
| Serveur minimal pris en charge |
Windows 2000 Server - [Applications de bureau uniquement] |
| En-tête |
|
| Bibliothèque |
|
| DLL |
|