我们从Python开源项目中,提取了以下8个代码示例,用于说明如何使用pythoncom.IID_IPersist()。
def TestGatewayInheritance(): # By default, wrap() creates and discards a temporary object. # This is not necessary, but just the current implementation of wrap. # As the object is correctly discarded, it doesnt affect this test. o = wrap(Dummy(), pythoncom.IID_IPersistStorage) o2 = o.QueryInterface(pythoncom.IID_IUnknown) FailObjectIdentity(o, o2, "IID_IPersistStorage->IID_IUnknown") o3 = o2.QueryInterface(pythoncom.IID_IDispatch) FailObjectIdentity(o2, o3, "IID_IUnknown->IID_IDispatch") FailObjectIdentity(o, o3, "IID_IPersistStorage->IID_IDispatch") o4 = o3.QueryInterface(pythoncom.IID_IPersistStorage) FailObjectIdentity(o, o4, "IID_IPersistStorage->IID_IPersistStorage(2)") FailObjectIdentity(o2, o4, "IID_IUnknown->IID_IPersistStorage(2)") FailObjectIdentity(o3, o4, "IID_IDispatch->IID_IPersistStorage(2)") o5 = o4.QueryInterface(pythoncom.IID_IPersist) FailObjectIdentity(o, o5, "IID_IPersistStorage->IID_IPersist") FailObjectIdentity(o2, o5, "IID_IUnknown->IID_IPersist") FailObjectIdentity(o3, o5, "IID_IDispatch->IID_IPersist") FailObjectIdentity(o4, o5, "IID_IPersistStorage(2)->IID_IPersist")
def SetInterfaceSafetyOptions(self, iid, optionsMask, enabledOptions): # trace ("SetInterfaceSafetyOptions", iid, optionsMask, enabledOptions) if optionsMask & enabledOptions == 0: return # See comments above. # if (optionsMask & enabledOptions & \ # ~(axscript.INTERFACESAFE_FOR_UNTRUSTED_DATA | axscript.INTERFACESAFE_FOR_UNTRUSTED_CALLER)): # # request for options we don't understand # RaiseAssert(scode=winerror.E_FAIL, desc="Unknown safety options") if iid in [pythoncom.IID_IPersist, pythoncom.IID_IPersistStream, pythoncom.IID_IPersistStreamInit, axscript.IID_IActiveScript, axscript.IID_IActiveScriptParse]: supported = self._GetSupportedInterfaceSafetyOptions() self.safetyOptions = supported & optionsMask & enabledOptions else: raise Exception(scode=winerror.E_NOINTERFACE)
def GetInterfaceSafetyOptions(self, iid): if iid in [pythoncom.IID_IPersist, pythoncom.IID_IPersistStream, pythoncom.IID_IPersistStreamInit, axscript.IID_IActiveScript, axscript.IID_IActiveScriptParse]: supported = self._GetSupportedInterfaceSafetyOptions() return supported, self.safetyOptions else: raise Exception(scode=winerror.E_NOINTERFACE) # # Other helpers.