183 lines
5.0 KiB
Python
183 lines
5.0 KiB
Python
|
# This is part of the Python test suite.
|
||
|
# The object is registered when you first run the test suite.
|
||
|
# (and hopefully unregistered once done ;-)
|
||
|
|
||
|
import pythoncom
|
||
|
import winerror
|
||
|
|
||
|
# Ensure the vtables in the tlb are known.
|
||
|
from win32com import universal
|
||
|
from win32com.client import constants, gencache
|
||
|
from win32com.server.exception import COMException
|
||
|
from win32com.server.util import wrap
|
||
|
|
||
|
pythoncom.__future_currency__ = True
|
||
|
# We use the constants from the module, so must insist on a gencache.
|
||
|
# Otherwise, use of gencache is not necessary (tho still advised)
|
||
|
gencache.EnsureModule("{6BCDCB60-5605-11D0-AE5F-CADD4C000000}", 0, 1, 1)
|
||
|
|
||
|
|
||
|
class PyCOMTest:
|
||
|
_typelib_guid_ = "{6BCDCB60-5605-11D0-AE5F-CADD4C000000}"
|
||
|
_typelib_version = 1, 0
|
||
|
_com_interfaces_ = ["IPyCOMTest"]
|
||
|
_reg_clsid_ = "{e743d9cd-cb03-4b04-b516-11d3a81c1597}"
|
||
|
_reg_progid_ = "Python.Test.PyCOMTest"
|
||
|
|
||
|
def DoubleString(self, str):
|
||
|
return str * 2
|
||
|
|
||
|
def DoubleInOutString(self, str):
|
||
|
return str * 2
|
||
|
|
||
|
def Fire(self, nID):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def GetLastVarArgs(self):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def GetMultipleInterfaces(self, outinterface1, outinterface2):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def GetSafeArrays(self, attrs, attrs2, ints):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def GetSetDispatch(self, indisp):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
# Result is of type IPyCOMTest
|
||
|
def GetSetInterface(self, ininterface):
|
||
|
return wrap(self)
|
||
|
|
||
|
def GetSetVariant(self, indisp):
|
||
|
return indisp
|
||
|
|
||
|
def TestByRefVariant(self, v):
|
||
|
return v * 2
|
||
|
|
||
|
def TestByRefString(self, v):
|
||
|
return v * 2
|
||
|
|
||
|
# Result is of type IPyCOMTest
|
||
|
def GetSetInterfaceArray(self, ininterface):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def GetSetUnknown(self, inunk):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
# Result is of type ISimpleCounter
|
||
|
def GetSimpleCounter(self):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def GetSimpleSafeArray(self, ints):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def GetStruct(self):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def SetIntSafeArray(self, ints):
|
||
|
return len(ints)
|
||
|
|
||
|
def SetLongLongSafeArray(self, ints):
|
||
|
return len(ints)
|
||
|
|
||
|
def SetULongLongSafeArray(self, ints):
|
||
|
return len(ints)
|
||
|
|
||
|
def SetBinSafeArray(self, buf):
|
||
|
return len(buf)
|
||
|
|
||
|
def SetVarArgs(self, *args):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def SetVariantSafeArray(self, vars):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def Start(self):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def Stop(self, nID):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def StopAll(self):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def TakeByRefDispatch(self, inout):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def TakeByRefTypedDispatch(self, inout):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def Test(self, key, inval):
|
||
|
return not inval
|
||
|
|
||
|
def Test2(self, inval):
|
||
|
return inval
|
||
|
|
||
|
def Test3(self, inval):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def Test4(self, inval):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def Test5(self, inout):
|
||
|
if inout == constants.TestAttr1:
|
||
|
return constants.TestAttr1_1
|
||
|
elif inout == constants.TestAttr1_1:
|
||
|
return constants.TestAttr1
|
||
|
else:
|
||
|
return -1
|
||
|
|
||
|
def Test6(self, inval):
|
||
|
return inval
|
||
|
|
||
|
def TestInOut(self, fval, bval, lval):
|
||
|
return winerror.S_OK, fval * 2, not bval, lval * 2
|
||
|
|
||
|
def TestOptionals(self, strArg="def", sval=0, lval=1, dval=3.1400001049041748):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def TestOptionals2(self, dval, strval="", sval=1):
|
||
|
raise COMException(hresult=winerror.E_NOTIMPL)
|
||
|
|
||
|
def CheckVariantSafeArray(self, data):
|
||
|
return 1
|
||
|
|
||
|
def LongProp(self):
|
||
|
return self.longval
|
||
|
|
||
|
def SetLongProp(self, val):
|
||
|
self.longval = val
|
||
|
|
||
|
def ULongProp(self):
|
||
|
return self.ulongval
|
||
|
|
||
|
def SetULongProp(self, val):
|
||
|
self.ulongval = val
|
||
|
|
||
|
def IntProp(self):
|
||
|
return self.intval
|
||
|
|
||
|
def SetIntProp(self, val):
|
||
|
self.intval = val
|
||
|
|
||
|
|
||
|
class PyCOMTestMI(PyCOMTest):
|
||
|
_typelib_guid_ = "{6BCDCB60-5605-11D0-AE5F-CADD4C000000}"
|
||
|
_typelib_version = 1, 0
|
||
|
# Interfaces with a interface name, a real IID, and an IID as a string
|
||
|
_com_interfaces_ = [
|
||
|
"IPyCOMTest",
|
||
|
pythoncom.IID_IStream,
|
||
|
str(pythoncom.IID_IStorage),
|
||
|
]
|
||
|
_reg_clsid_ = "{F506E9A1-FB46-4238-A597-FA4EB69787CA}"
|
||
|
_reg_progid_ = "Python.Test.PyCOMTestMI"
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
import win32com.server.register
|
||
|
|
||
|
win32com.server.register.UseCommandLine(PyCOMTest)
|
||
|
win32com.server.register.UseCommandLine(PyCOMTestMI)
|