patch 9.1.0668: build-error with python3.12 and stable ABI

Problem:  build-error with python3.12 and stable ABI (zdohnal)
Solution: Add type casts, define Py_INCREF for Python3.12 and higher
          (Ken Takata)

fixes: #15460

Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/if_py_both.h b/src/if_py_both.h
index d09b14c..3643f8b 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -3083,7 +3083,7 @@
     }
     Py_DECREF(lookup_dict);
 
-    Py_INCREF(self);
+    Py_INCREF((PyObject *)self);
     return (PyObject *)(self);
 }
 
@@ -4012,7 +4012,7 @@
     if (TAB_PYTHON_REF(tab))
     {
 	self = TAB_PYTHON_REF(tab);
-	Py_INCREF(self);
+	Py_INCREF((PyObject *)self);
     }
     else
     {
@@ -4206,7 +4206,7 @@
     if (WIN_PYTHON_REF(win))
     {
 	self = WIN_PYTHON_REF(win);
-	Py_INCREF(self);
+	Py_INCREF((PyObject *)self);
     }
     else
     {
@@ -4334,7 +4334,7 @@
     }
     else if (strcmp(name, "tabpage") == 0)
     {
-	Py_INCREF(self->tabObject);
+	Py_INCREF((PyObject *)self->tabObject);
 	return (PyObject *)(self->tabObject);
     }
     else if (strcmp(name, "__members__") == 0)
@@ -4488,7 +4488,7 @@
 
     self = PyObject_NEW(WinListObject, WinListTypePtr);
     self->tabObject = tabObject;
-    Py_INCREF(tabObject);
+    Py_INCREF((PyObject *)tabObject);
 
     return (PyObject *)(self);
 }
@@ -5383,7 +5383,7 @@
 	Py_DECREF(self);
 	return NULL;
     }
-    Py_INCREF(bufr);
+    Py_INCREF((PyObject *)bufr);
 
     self->buf = bufr;
     self->start = start;
@@ -5512,7 +5512,7 @@
     if (BUF_PYTHON_REF(buf) != NULL)
     {
 	self = BUF_PYTHON_REF(buf);
-	Py_INCREF(self);
+	Py_INCREF((PyObject *)self);
     }
     else
     {