Uploaded Test files
This commit is contained in:
parent
f584ad9d97
commit
2e81cb7d99
16627 changed files with 2065359 additions and 102444 deletions
|
@ -0,0 +1,107 @@
|
|||
# Sample implementation of IFileOperationProgressSink that just prints
|
||||
# some basic info
|
||||
|
||||
import pythoncom
|
||||
from win32com.shell import shell, shellcon
|
||||
from win32com.server.policy import DesignatedWrapPolicy
|
||||
|
||||
tsf_flags = list((k,v) for k,v in list(shellcon.__dict__.items()) if k.startswith('TSF_'))
|
||||
def decode_flags(flags):
|
||||
if flags == 0:
|
||||
return 'TSF_NORMAL'
|
||||
flag_txt = ''
|
||||
for k,v in tsf_flags:
|
||||
if flags & v:
|
||||
if flag_txt:
|
||||
flag_txt = flag_txt + '|' + k
|
||||
else:
|
||||
flag_txt = k
|
||||
return flag_txt
|
||||
|
||||
class FileOperationProgressSink(DesignatedWrapPolicy):
|
||||
_com_interfaces_ = [shell.IID_IFileOperationProgressSink]
|
||||
_public_methods_ = [
|
||||
"StartOperations", "FinishOperations", "PreRenameItem", "PostRenameItem",
|
||||
"PreMoveItem", "PostMoveItem", "PreCopyItem", "PostCopyItem", "PreDeleteItem",
|
||||
"PostDeleteItem", "PreNewItem", "PostNewItem", "UpdateProgress",
|
||||
"ResetTimer", "PauseTimer", "ResumeTimer"
|
||||
]
|
||||
|
||||
def __init__(self):
|
||||
self._wrap_(self)
|
||||
|
||||
def StartOperations(self):
|
||||
print ('StartOperations')
|
||||
|
||||
def FinishOperations(self, Result):
|
||||
print(('FinishOperations: HRESULT ', Result))
|
||||
|
||||
def PreRenameItem(self, Flags, Item, NewName):
|
||||
print(('PreRenameItem: Renaming ' + Item.GetDisplayName(shellcon.SHGDN_FORPARSING) + \
|
||||
' to ' + NewName))
|
||||
|
||||
def PostRenameItem(self, Flags, Item, NewName, hrRename, NewlyCreated):
|
||||
if NewlyCreated is not None:
|
||||
newfile = NewlyCreated.GetDisplayName(shellcon.SHGDN_FORPARSING)
|
||||
else:
|
||||
newfile = 'not renamed, HRESULT ' + str(hrRename)
|
||||
print(('PostRenameItem: renamed ' + \
|
||||
Item.GetDisplayName(shellcon.SHGDN_FORPARSING) + ' to ' + newfile))
|
||||
|
||||
def PreMoveItem(self, Flags, Item, DestinationFolder, NewName):
|
||||
print(('PreMoveItem: Moving ' + \
|
||||
Item.GetDisplayName(shellcon.SHGDN_FORPARSING) + ' to ' + \
|
||||
DestinationFolder.GetDisplayName(shellcon.SHGDN_FORPARSING) + '\\' + str(NewName)))
|
||||
|
||||
def PostMoveItem(self, Flags, Item, DestinationFolder, NewName, hrMove, NewlyCreated):
|
||||
if NewlyCreated is not None:
|
||||
newfile = NewlyCreated.GetDisplayName(shellcon.SHGDN_FORPARSING)
|
||||
else:
|
||||
newfile = 'not copied, HRESULT ' + str(hrMove)
|
||||
print(('PostMoveItem: Moved ' + \
|
||||
Item.GetDisplayName(shellcon.SHGDN_FORPARSING) + ' to ' + newfile))
|
||||
|
||||
def PreCopyItem(self, Flags, Item, DestinationFolder, NewName):
|
||||
if not NewName:
|
||||
NewName = ''
|
||||
print(('PreCopyItem: Copying ' + \
|
||||
Item.GetDisplayName(shellcon.SHGDN_FORPARSING) + ' to ' + \
|
||||
DestinationFolder.GetDisplayName(shellcon.SHGDN_FORPARSING) + '\\' + NewName))
|
||||
print(('Flags: ', decode_flags(Flags)))
|
||||
|
||||
def PostCopyItem(self, Flags, Item, DestinationFolder, NewName, hrCopy, NewlyCreated):
|
||||
if NewlyCreated is not None:
|
||||
newfile = NewlyCreated.GetDisplayName(shellcon.SHGDN_FORPARSING)
|
||||
else:
|
||||
newfile = 'not copied, HRESULT ' + str(hrCopy)
|
||||
print(('PostCopyItem: Copied ' + Item.GetDisplayName(shellcon.SHGDN_FORPARSING) + ' to ' + newfile))
|
||||
print(('Flags: ', decode_flags(Flags)))
|
||||
|
||||
def PreDeleteItem(self, Flags, Item):
|
||||
print(('PreDeleteItem: Deleting ' + Item.GetDisplayName(shellcon.SHGDN_FORPARSING)))
|
||||
|
||||
def PostDeleteItem(self, Flags, Item, hrDelete, NewlyCreated):
|
||||
print(('PostDeleteItem: Deleted ' + Item.GetDisplayName(shellcon.SHGDN_FORPARSING)))
|
||||
if NewlyCreated:
|
||||
print((' Moved to recycle bin - ' + NewlyCreated.GetDisplayName(shellcon.SHGDN_FORPARSING)))
|
||||
|
||||
def PreNewItem(self, Flags, DestinationFolder, NewName):
|
||||
print(('PreNewItem: Creating ' + DestinationFolder.GetDisplayName(shellcon.SHGDN_FORPARSING) + '\\' + NewName))
|
||||
|
||||
def PostNewItem(self, Flags, DestinationFolder, NewName, TemplateName, FileAttributes, hrNew, NewItem):
|
||||
print(('PostNewItem: Created ' + NewItem.GetDisplayName(shellcon.SHGDN_FORPARSING)))
|
||||
|
||||
def UpdateProgress(self, WorkTotal, WorkSoFar):
|
||||
print(('UpdateProgress: ', WorkSoFar, WorkTotal))
|
||||
|
||||
def ResetTimer(self):
|
||||
print ('ResetTimer')
|
||||
|
||||
def PauseTimer(self):
|
||||
print ('PauseTimer')
|
||||
|
||||
def ResumeTimer(self):
|
||||
print ('ResumeTimer')
|
||||
|
||||
def CreateSink():
|
||||
return pythoncom.WrapObject(FileOperationProgressSink(), shell.IID_IFileOperationProgressSink)
|
Loading…
Add table
Add a link
Reference in a new issue