diff -Naur Python-3.7.0-orig/configure.ac Python-3.7.0/configure.ac --- Python-3.7.0-orig/configure.ac 2018-07-12 10:20:55.319907900 +0300 +++ Python-3.7.0/configure.ac 2018-07-12 10:20:55.663108500 +0300 @@ -3131,6 +3131,13 @@ fi]) AC_MSG_RESULT($with_dbmliborder) +# Determine if windows modules should be used. +AC_SUBST(USE_WIN32_MODULE) +USE_WIN32_MODULE='#' +case $host in + *-*-mingw*) USE_WIN32_MODULE=;; +esac + AC_SUBST(LDLAST) # Templates for things AC_DEFINEd more than once. diff -Naur Python-3.7.0-orig/Modules/Setup.config.in Python-3.7.0/Modules/Setup.config.in --- Python-3.7.0-orig/Modules/Setup.config.in 2018-07-12 10:20:55.351107900 +0300 +++ Python-3.7.0/Modules/Setup.config.in 2018-07-12 10:20:55.678708500 +0300 @@ -6,3 +6,6 @@ # init system calls(posix/nt/...) for INITFUNC (used by makesetup) @INITSYS@ -DPy_BUILD_CORE posixmodule.c # system calls +# build-in modules for windows platform: +@USE_WIN32_MODULE@winreg ../PC/winreg.c + diff -Naur Python-3.7.0-orig/PC/winreg.c Python-3.7.0/PC/winreg.c --- Python-3.7.0-orig/PC/winreg.c 2018-06-27 06:07:35.000000000 +0300 +++ Python-3.7.0/PC/winreg.c 2018-07-12 10:20:55.678708500 +0300 @@ -16,6 +16,25 @@ #include "structmember.h" #include "windows.h" +#ifndef SIZEOF_HKEY +/* used only here */ +#if defined(MS_WIN64) +# define SIZEOF_HKEY 8 +#elif defined(MS_WIN32) +# define SIZEOF_HKEY 4 +#else +# error "SIZEOF_HKEY is not defined" +#endif +#endif + +#ifndef REG_LEGAL_CHANGE_FILTER +#define REG_LEGAL_CHANGE_FILTER (\ + REG_NOTIFY_CHANGE_NAME |\ + REG_NOTIFY_CHANGE_ATTRIBUTES |\ + REG_NOTIFY_CHANGE_LAST_SET |\ + REG_NOTIFY_CHANGE_SECURITY ) +#endif + static BOOL PyHKEY_AsHKEY(PyObject *ob, HKEY *pRes, BOOL bNoneOK); static BOOL clinic_HKEY_converter(PyObject *ob, void *p); static PyObject *PyHKEY_FromHKEY(HKEY h);