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

Reply via email to