bpo-8677: use PY_SSIZE_T_CLEAN in PC/winreg.c (GH-12466)

diff --git a/PC/winreg.c b/PC/winreg.c
index 3a6ea36..4dc4e0c 100644
--- a/PC/winreg.c
+++ b/PC/winreg.c
@@ -12,6 +12,7 @@
 
 */
 
+#define PY_SSIZE_T_CLEAN
 #include "Python.h"
 #include "structmember.h"
 #include "windows.h"
@@ -1608,6 +1609,11 @@
                         "Type must be winreg.REG_SZ");
         return NULL;
     }
+    if (value_length >= INT_MAX) {
+        PyErr_SetString(PyExc_OverflowError,
+                        "the value is too long");
+        return NULL;
+    }
 
     Py_BEGIN_ALLOW_THREADS
     rc = RegSetValueW(key, sub_key, REG_SZ, value, value_length+1);