
Correctif WINREG.h
Winreg.h contient les définitions de constantes et de type pour l'API du registre de
Windows 32-bits
Sur les forums dbase, est paru cette remarque à propos de Winreg.h :
Le fichier Winreg.h contient quelques erreurs.
Elles sont là depuis longtemps.
Vous pouvez corriger les erreurs dans Winreg.h.
Remplacer (READ_CONTRO) avec (READ_CONTROL)
sur les lignes 78, 79, 80 et recompiler les fichiers sources.
ou vous pouvez utiliser un autre fichier h qui incorpore
Winreg.h sans aucune modification de Winreg.h
et recompiler le fichier.
Ci-joint un autre fichier. h qui fixe
les erreurs répertoriées.
Si vous enregistrez le fichier joint dans le dossier \include
où que vous soyez au lieu de
# Include <winreg.h>
le remplacer par
# Include <le nom avec lequel vous avez enregistré ce fichier .h>
Rick Miller
---- fichier joint -----
#ifndef WINNT_H
// <winnt.h> has the correct defines.
// so no need for using anything here.
#ifndef _RMM_WINREG_H_FIX_
#define _RMM_WINREG_H_FIX_
#include <winreg.h>
// fix for the next 3 lines in winreg.h is below.
// #define STANDARD_RIGHTS_READ (READ_CONTRO)
// #define STANDARD_RIGHTS_WRITE (READ_CONTRO)
// #define STANDARD_RIGHTS_EXECUTE (READ_CONTRO)
#ifdef STANDARD_RIGHTS_READ
#undef STANDARD_RIGHTS_READ
#endif
#define STANDARD_RIGHTS_READ (READ_CONTROL)
#ifdef STANDARD_RIGHTS_WRITE
#undef STANDARD_RIGHTS_WRITE
#endif
#define STANDARD_RIGHTS_WRITE (READ_CONTROL)
#ifdef STANDARD_RIGHTS_EXECUTE
#undef STANDARD_RIGHTS_EXECUTE
#endif
#define STANDARD_RIGHTS_EXECUTE (READ_CONTROL)
// fix for the next 4 lines in winreg.h is below.
//#define KEY_READ ((STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS |
KEY_NOTIFY) & (~SYNCHRONIZE))
//#define KEY_WRITE ((STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY) &
(~SYNCHRONIZE))
//#define KEY_EXECUTE ((KEY_READ) & (~SYNCHRONIZE))
//#define KEY_ALL_ACCESS BITXOR( BITOR( BITOR( BITOR( BITOR( BITOR( BITOR(
STANDARD_RIGHTS_ALL, KEY_QUERY_VALUE ), KEY_SET_VALUE ), KEY_CREATE_SUB_KEY ),
KEY_ENUMERATE_SUB_KEYS ), KEY_NOTIFY ), KEY_CREATE_LINK ), SYNCHRONIZE)
#ifdef KEY_READ
#undef KEY_READ
#endif
#define KEY_READ (bitand(bitor(bitor(bitor(STANDARD_RIGHTS_READ, KEY_QUERY_VALUE),
KEY_ENUMERATE_SUB_KEYS), KEY_NOTIFY), BITNOT(SYNCHRONIZE)))
#ifdef KEY_WRITE
#undef KEY_WRITE
#endif
#define KEY_WRITE (bitand(bitor(bitor(STANDARD_RIGHTS_WRITE, KEY_SET_VALUE),
KEY_CREATE_SUB_KEY), BITNOT(SYNCHRONIZE)))
#ifdef KEY_EXECUTE
#undef KEY_EXECUTE
#endif
#define KEY_EXECUTE (bitand(KEY_READ, BITNOT( SYNCHRONIZE ) ) )
#ifdef KEY_ALL_ACCESS
#undef KEY_ALL_ACCESS
#endif
#define KEY_ALL_ACCESS (bitand(bitor(bitor(bitor(bitor(bitor(bitor(STANDARD_RIGHTS_ALL,
KEY_QUERY_VALUE), KEY_SET_VALUE), KEY_CREATE_SUB_KEY), KEY_ENUMERATE_SUB_KEYS),
KEY_NOTIFY), KEY_CREATE_LINK), BITNOT(SYNCHRONIZE)))
#endif // _RMM_WINREG_H_FIX_
#endif // WINNT_H
--- fin du fichier joint ---
retour
Sources :
From: "Rick Miller"
Newsgroups: dbase.shared-code
Sent: Thursday, June 24, 2010 6:51 PM
Subject: Re: Registry.prg
Si vous voyez des erreurs, n'hésitez pas à le signaler.
Dernière modification : samedi 24 juillet 2010
© M.A.