Hi all,
I'm happy to announce the release of pywin32 build 305.
This release has quite a few changes under the hood, updating our use of
older deprecated Python functions etc - so there's some risk of
unintended consequences.
Another unintended change is that .exe installers are deprecated,
because the upstream support for building them is deprecated. Anyone
still using them should start moving to pip:
python -m pip install --upgrade pywin32
But while .exe files exist:
https://github.com/mhammond/pywin32/releases/tag/b305
For initial support (eg, to ask questions about the release etc), please
contact this mailing-list (python-win32@python.org). If you want to
report a bug, please do so at https://github.com/mhammond/pywin32/issues
As always, thanks to everyone who contributed to this release, both in
terms of code and reporting bugs.
Cheers,
Mark.
Changes:
* Installation .exe files were deprecated.
* @kxrob put a lot of work towards removing use of the deprecated
Unicode API so we can build on Python 3.12. This should be largely
invisible, but please report any unintended consequences.
* odbc: Handle `varchar(max)`/`nvarchar(max)` column sizes (#1954)
* win32api.GetTickCount() now returns an unsigned 64bit integer (@kxrob,
#1946)
* win32pipe.GetNamedPipeHandleState() now takes a 3rd optional param
indicating whether the username should be returned, and related
constants added. (@kxrob, #1946)
* Added win32gui.GetTopWindow() and win32gui.GetAncestor() (@CristiFati,
#1928)
* Tweaks to how pywintypes searches for DLLs to better support
virtualenvs created with --system-site-packages. (@saaketp, #1933)
* Added win32event.CreateWaitableTimerExW (#1945, @zariiii9003)
* Changes in PARAM handling. Some functions which returned a WPARAM or
LPARAM allowed you to return a pointer to a Python buffer object or a
PyUnicode. These functions now only accept a Python long to be
returned. Note that this DOES NOT apply to functions with accept
WPARAM or LPARAM as arguments, only when they are being returned.
Impacted functions are `OnNotify` handler, LV_ITEM/TV_ITEM objects,
PyIContextMenu3::HandleMenuMsg2, and the result of a WNDPROC/DLGPROC
(#1927).
* service registration had an overhaul, avoiding a complicated, and
ultimately unnecessary "single globally registered service runner"
concept. Now, when registering a service, the host pythonservice.exe
runner will be copied to `sys.exec_prefix`, along with possibly
`pywintypesXX.dll` and run from there. (#1908)
* Dropped support for allowing a bytes object to be passed where a COM
BSTR is expected - this support was accidental on the path from
2.x->3.x.
* win32crypt's PyCERTSTORE.CertCloseStore()'s `Flags` argument has been
deprecated as it is likely to crash the process if
`CERT_CLOSE_STORE_FORCE_FLAG` is specified. The underlying function is
now always called with `CERT_CLOSE_STORE_CHECK_FLAG`, and support for
this param will be dropped at some point in the future.
* Fix a bug where win32crypt.CryptQueryObject() would return a
PyCTL_CONTEXT object instead of a PyCERT_CONTEXT for base64 encoded
certificates (#1859)
* win32crypt.CryptQueryObject() is now able to return PyCTL_CONTEXT
objects. This is technically a breaking change as previously it would
return the address in memory of the object, but this address wasn't
practically usable, so it's very unlikely anyone relied on this
behavior. (#1859)
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32