Fonction de rappel MMIOPROC (mmiscapi.h)
La fonction MMIOProc est une procédure d’entrée/sortie personnalisée installée par la fonction mmioInstallIOProc . MMIOProc est un espace réservé pour le nom de fonction défini par l’application. L’adresse de cette fonction peut être spécifiée dans le paramètre callback-address de mmioInstallIOProc.
Syntaxe
MMIOPROC Mmioproc;
LRESULT Mmioproc(
LPSTR lpmmioinfo,
UINT uMsg,
LPARAM lParam1,
LPARAM lParam2
)
{...}
Paramètres
lpmmioinfo
Pointe vers une structure MMIOINFO contenant des informations sur le fichier ouvert.
La procédure d’E/S doit conserver le membre lDiskOffset dans cette structure pour indiquer le décalage du fichier vers l’emplacement de lecture ou d’écriture suivant. La procédure d’E/S peut utiliser le membre adwInfo[] pour stocker des informations d’état. La procédure d’E/S ne doit pas modifier d’autres membres de la structure MMIOINFO .
uMsg
Spécifie un message indiquant l’opération d’E/S demandée. Les messages qui peuvent être reçus incluent les MMIOM_OPEN, MMIOM_CLOSE, MMIOM_READ, MMIOM_SEEK, MMIOM_WRITE et MMIOM_WRITEFLUSH.
lParam1
Spécifie un paramètre défini par l’application pour le message.
lParam2
Spécifie un paramètre défini par l’application pour le message.
Valeur retournée
La valeur de retour dépend du message spécifié par uMsg. Si la procédure d’E/S ne reconnaît pas un message, elle doit retourner zéro.
Remarques
Le code à quatre caractères spécifié par le membre fccMMIOProc dans la structure MMIOINFO associée à un fichier identifie une extension de nom de fichier pour un système de stockage personnalisé. Lorsqu’une application appelle mmioOpen avec un nom de fichier tel que « one.xyz+two », la procédure d’E/S associée au code à quatre caractères « XYZ » est appelée pour ouvrir l’élément « two » du fichier « one.xyz ».
La fonction mmioInstallIOProc gère une liste distincte des procédures d’E/S installées pour chaque application Windows. Par conséquent, différentes applications peuvent utiliser le même identificateur de procédure d’E/S pour différentes procédures d’E/S sans conflit. Toutefois, l’installation d’une procédure d’E/S globalement permet à n’importe quel processus d’utiliser la procédure.
Si une application appelle mmioInstallIOProc plusieurs fois pour inscrire la même procédure d’E/S, elle doit appeler mmioInstallIOProc pour supprimer la procédure une fois pour chaque fois qu’elle a installé la procédure.
mmioInstallIOProc n’empêche pas une application d’installer deux procédures d’E/S différentes avec le même identificateur, ni d’installer une procédure d’E/S avec l’un des identificateurs prédéfinis (« DOS », « MEM »). La procédure la plus récente installée est prioritaire, et la dernière procédure installée est la première à supprimer.
Lors de la recherche d’une procédure d’E/S spécifiée, les procédures locales sont d’abord recherchées, puis les procédures globales.
Configuration requise
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] |
Plateforme cible | Windows |
En-tête | mmiscapi.h (inclure Mmiscapi.h, Windows.h) |