From d249f0106bfd1fd9af747247f2f13d5ced90d268 Mon Sep 17 00:00:00 2001 From: Andrew Senetar Date: Sat, 7 Aug 2021 22:16:33 -0500 Subject: [PATCH] Fix #59, initialize and uninitialize COM for threading --- send2trash/plat_win_modern.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/send2trash/plat_win_modern.py b/send2trash/plat_win_modern.py index ec00934..1569911 100644 --- a/send2trash/plat_win_modern.py +++ b/send2trash/plat_win_modern.py @@ -26,6 +26,8 @@ def send2trash(paths): paths = [op.abspath(path) if not op.isabs(path) else path for path in paths] # remove the leading \\?\ if present paths = [path[4:] if path.startswith("\\\\?\\") else path for path in paths] + # Need to initialize the com before using + pythoncom.CoInitialize() # create instance of file operation object fileop = pythoncom.CoCreateInstance( shell.CLSID_FileOperation, None, pythoncom.CLSCTX_ALL, shell.IID_IFileOperation, @@ -65,3 +67,6 @@ def send2trash(paths): # convert to standard OS error, allows other code to get a # normal errno raise OSError(None, error.strerror, path, error.hresult) + finally: + # Need to make sure we call this once fore every init + pythoncom.CoUninitialize()