titre_site.jpg (51607 octets)

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.