1
0
spogulis no https://github.com/arsenetar/send2trash.git synced 2025-09-11 18:08:16 +00:00

Fix #59, initialize and uninitialize COM for threading

Šī revīzija ir iekļauta:
Andrew Senetar 2021-08-07 22:16:33 -05:00
vecāks 94e1ec007a
revīzija d249f0106b
Parakstījis: arsenetar
GPG atslēgas ID: C63300DCE48AB2F1

Parādīt failu

@ -26,6 +26,8 @@ def send2trash(paths):
paths = [op.abspath(path) if not op.isabs(path) else path for path in paths] paths = [op.abspath(path) if not op.isabs(path) else path for path in paths]
# remove the leading \\?\ if present # remove the leading \\?\ if present
paths = [path[4:] if path.startswith("\\\\?\\") else path for path in paths] 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 # create instance of file operation object
fileop = pythoncom.CoCreateInstance( fileop = pythoncom.CoCreateInstance(
shell.CLSID_FileOperation, None, pythoncom.CLSCTX_ALL, shell.IID_IFileOperation, 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 # convert to standard OS error, allows other code to get a
# normal errno # normal errno
raise OSError(None, error.strerror, path, error.hresult) raise OSError(None, error.strerror, path, error.hresult)
finally:
# Need to make sure we call this once fore every init
pythoncom.CoUninitialize()