3/5 (6 avis)
Vue 4 137 fois - Téléchargée 328 fois
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
28 juil. 2009 à 11:42
Voilà la méthode que j'aurai dû utiliser dans mon SysTray pour déterminer les constantes de Timer (instances multiples d'un UserControl) - Je la mettrais à jour ASAP.
C'est propre.
Merci.
28 juil. 2009 à 13:07
Merci PCPT
Cette solution est quand même plus 'pro'
28 juil. 2009 à 17:15
La variable commune gérée ici perd sa valeur une fois que les objets qui lui faisait référence ont tous disparus.
En d'autre terme, cette variable ne vit que si au moins un objet y est rattaché.
28 juil. 2009 à 21:42
content que çà te plaise et te serve
pour ton "détail", c'est normal (le dernier objet décrémentant ferme le mapping, c'est le but :p). le "1" n'a pas besoin de savoir qu/s'il y en a eu d'autres avant lui, tant qu'il est bien unique. à moins que j'ai mal compris ta remarque
bon dev ;)
23 avril 2010 à 14:20
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.