Fix #59, initialize and uninitialize COM for threading

This commit is contained in:
Andrew Senetar 2021-08-07 22:16:33 -05:00
parent 94e1ec007a
commit d249f0106b
Signed by: arsenetar
GPG Key ID: C63300DCE48AB2F1
1 changed files with 5 additions and 0 deletions

View File

@ -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()