diff --git a/Misc/NEWS.d/next/Windows/2026-07-01-17-00-52.gh-issue-152433.kSd1bW.rst b/Misc/NEWS.d/next/Windows/2026-07-01-17-00-52.gh-issue-152433.kSd1bW.rst new file mode 100644 index 000000000000000..1248edfd54aa2ba --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2026-07-01-17-00-52.gh-issue-152433.kSd1bW.rst @@ -0,0 +1 @@ +Allow build :mod:`!_ctypes` for Universal Windows Platform. diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index ccc57e347b07acf..504a95430de390f 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -1082,8 +1082,7 @@ void _ctypes_extend_error(PyObject *exc_class, const char *fmt, ...) } -#ifdef MS_WIN32 - +#ifdef MS_WINDOWS_DESKTOP static PyObject * GetComError(ctypes_state *st, HRESULT errcode, GUID *riid, IUnknown *pIunk) { @@ -1337,9 +1336,11 @@ PyObject *_ctypes_callproc(ctypes_state *st, #ifdef MS_WIN32 if (iid && pIunk) { +#ifdef MS_WINDOWS_DESKTOP if (*(int *)resbuf & 0x80000000) retval = GetComError(st, *(HRESULT *)resbuf, iid, pIunk); else +#endif retval = PyLong_FromLong(*(int *)resbuf); } else if (flags & FUNCFLAG_HRESULT) { if (*(int *)resbuf & 0x80000000)