Uploaded Test files
This commit is contained in:
parent
f584ad9d97
commit
2e81cb7d99
16627 changed files with 2065359 additions and 102444 deletions
75
venv/Lib/site-packages/win32com/demos/trybag.py
Normal file
75
venv/Lib/site-packages/win32com/demos/trybag.py
Normal file
|
@ -0,0 +1,75 @@
|
|||
import pythoncom
|
||||
from win32com.server import util
|
||||
from win32com.server import exception
|
||||
|
||||
VT_EMPTY = pythoncom.VT_EMPTY
|
||||
|
||||
class Bag:
|
||||
_public_methods_ = [ 'Read', 'Write' ]
|
||||
_com_interfaces_ = [ pythoncom.IID_IPropertyBag ]
|
||||
|
||||
def __init__(self):
|
||||
self.data = { }
|
||||
|
||||
def Read(self, propName, varType, errorLog):
|
||||
print("read: name=", propName, "type=", varType)
|
||||
if propName not in self.data:
|
||||
if errorLog:
|
||||
hr = 0x80070057
|
||||
exc = pythoncom.com_error(0, "Bag.Read", "no such item", None, 0, hr)
|
||||
errorLog.AddError(propName, exc)
|
||||
raise exception.Exception(scode=hr)
|
||||
return self.data[propName]
|
||||
|
||||
def Write(self, propName, value):
|
||||
print("write: name=", propName, "value=", value)
|
||||
self.data[propName] = value
|
||||
|
||||
|
||||
class Target:
|
||||
_public_methods_ = [ 'GetClassID', 'InitNew', 'Load', 'Save' ]
|
||||
_com_interfaces_ = [ pythoncom.IID_IPersist,
|
||||
pythoncom.IID_IPersistPropertyBag ]
|
||||
|
||||
def GetClassID(self):
|
||||
raise exception.Exception(scode=0x80004005) # E_FAIL
|
||||
|
||||
def InitNew(self):
|
||||
pass
|
||||
|
||||
def Load(self, bag, log):
|
||||
print(bag.Read('prop1', VT_EMPTY, log))
|
||||
print(bag.Read('prop2', VT_EMPTY, log))
|
||||
try:
|
||||
print(bag.Read('prop3', VT_EMPTY, log))
|
||||
except exception.Exception:
|
||||
pass
|
||||
|
||||
def Save(self, bag, clearDirty, saveAllProps):
|
||||
bag.Write('prop1', 'prop1.hello')
|
||||
bag.Write('prop2', 'prop2.there')
|
||||
|
||||
class Log:
|
||||
_public_methods_ = [ 'AddError' ]
|
||||
_com_interfaces_ = [ pythoncom.IID_IErrorLog ]
|
||||
|
||||
def AddError(self, propName, excepInfo):
|
||||
print("error: propName=", propName, "error=", excepInfo)
|
||||
|
||||
def test():
|
||||
bag = Bag()
|
||||
target = Target()
|
||||
log = Log()
|
||||
|
||||
target.Save(bag, 1, 1)
|
||||
target.Load(bag, log)
|
||||
|
||||
comBag = util.wrap(bag, pythoncom.IID_IPropertyBag)
|
||||
comTarget = util.wrap(target, pythoncom.IID_IPersistPropertyBag)
|
||||
comLog = util.wrap(log, pythoncom.IID_IErrorLog)
|
||||
|
||||
comTarget.Save(comBag, 1, 1)
|
||||
comTarget.Load(comBag, comLog)
|
||||
|
||||
if __name__ == '__main__':
|
||||
test()
|
Loading…
Add table
Add a link
Reference in a new issue