un nom un peu barbare pour dire en fait : utiliser une variable entre différentes instances d'un objet
lorsque votre projet (form par exemple) utilise plusieurs instances d'une class ou d'un usercontrol, comment cet objet peut-il savoir laquelle de ces instances il représente?
c'est ici le but de cette source, un identifiant "unique" incrémentable, décrémentable, partagé entre un ou plusieurs modèles
le code est à copier directement dans votre objet
explications plus détaillées fournies avec le projet, code abondamment commenté
vous pouvez adapter le code sans trop de difficultés
Source / Exemple :
Private Function ReadMappingValue(ByVal hFileMappingObject As Long, ByRef lValue As Long) As Boolean
If hFileMappingObject = 0 Then
' mauvais param, renvoyé par le précédent CreateFileMapping
Debug.Print "Erreur lors du CreateFileMapping"
Else
Dim lMVF As Long
lMVF = MapViewOfFile(hFileMappingObject, FILE_MAP_READ, 0&, 0&, 0&)
If lMVF = 0 Then
Debug.Print "Erreur lors du MapViewOfFile"
Else
' lecture de la valeur
Call CopyMemory(lValue, ByVal lMVF, 4&)
' fermeture de la vue
Call UnmapViewOfFile(lMVF)
ReadMappingValue = True
End If
End If
End Function
Private Function WriteMappingValue(ByVal hFileMappingObject As Long, ByRef lValue As Long) As Boolean
If hFileMappingObject = 0 Then
' mauvais param, renvoyé par le précédent CreateFileMapping
Debug.Print "Erreur lors du CreateFileMapping"
Else
Dim lMVF As Long
lMVF = MapViewOfFile(hFileMappingObject, FILE_MAP_WRITE, 0&, 0&, 0&)
If lMVF = 0 Then
' erreur
Debug.Print "Erreur lors du MapViewOfFile"
Else
' écriture de la valeur
Call CopyMemory(ByVal lMVF, lValue, 4&)
' fermeture de la vue
Call UnmapViewOfFile(lMVF)
WriteMappingValue = True
End If
End If
End Function
Conclusion :
merci à Renfield pour sa source PrevInstance qui m'a permis de comprendre le filemapping
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.