2 votes

Si RegOpenKeyEx ne renvoie pas ERROR_SUCCESS, ai-je la garantie que le HKEY n'a pas été ouvert ?

En lisant la documentation de Microsoft sur RegOpenKeyEx et RegCloseKey, je ne sais pas si je dois ou non appeler la fonction de fermeture si RegOpenKeyEx échoue.

Veuillez m'indiquer une source définitive indiquant si je dois toujours appeler RegCloseKey ou s'il ne doit être appelé que lorsque RegOpenKeyEx renvoie ERROR_SUCCESS.

Références :

http://msdn.microsoft.com/en-us/library/Windows/desktop/ms724897%28v=vs.85%29.aspx

http://msdn.microsoft.com/en-us/library/Windows/desktop/ms724837%28v=vs.85%29.aspx

2voto

Roman R. Points 34579

RegOpenKeyEx ne retournera un identifiant de clé valide que si ERROR_SUCCESS est la valeur renvoyée. C'est ici que l'appelant est responsable de la fermeture de la clé, sinon aucune fermeture n'est requise et la clé n'est pas ouverte. C'est l'accord supposé concernant la responsabilité de fermer le handle ouvert, bien qu'il ne soit pas explicitement mentionné dans la section Fonction RegOpenKeyEx documentation.

Ceci est également cohérent entre les échantillons API. Si vous n'êtes pas sûr après avoir vérifié l'exemple de code dans l'article MSDN, en voici un autre : http://msdn.microsoft.com/en-us/library/aa384182%28VS.85%29.aspx

1voto

minus Points 681

Je pense que si vous regardez l'exemple listé sous vos liens de référence, vous pouvez voir qu'il n'appelle pas RegCloseKey si lResult ne renvoie pas ERROR_SUCCESS.

Voici le lien vers le site :

http://msdn.microsoft.com/en-us/library/Windows/desktop/ms724235(v=vs.85).aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X