def main(): from win32com.client import Dispatch pythoncom.CoInitialize() project = Dispatch("Mga.MgaProject") project.Create("MGA=" + "tmp.mga", "CyPhyML") try: metaint = Dispatch("MGA.Interpreter.CyPhyPython") project.BeginTransactionInNewTerr() components_meta = project.RootMeta.RootFolder.GetDefinedFolderByNameDisp("Components", True) component_meta = project.RootMeta.RootFolder.GetDefinedFCOByNameDisp("Component", True) components = project.RootFolder.CreateFolder(components_meta) component = components.CreateRootObject(component_meta) component.Name = component_meta.Name project.CommitTransaction() try: invoke_id = metaint._oleobj_.GetIDsOfNames(u'ComponentParameter') except com_error as e: if e.hresult & 0xffffffff == 0x80020006L: # 'Unknown name': old GME components don't do IDispatch sys.stderr.write('Old GME; skipping test\n') return raise metaint._oleobj_.Invoke(invoke_id, 0, 4, 0, 'script_file', os.path.basename(__file__)) metaint.InvokeEx(project, component, Dispatch("Mga.MgaFCOs"), 128) finally: project.Close()
def main(): from win32com.client import Dispatch pythoncom.CoInitialize() project = Dispatch("Mga.MgaProject") project.Create("MGA=" + "tmp.mga", "CyPhyML") try: gmeInterpreter = Dispatch("MGA.Interpreter.CyPhyPython") project.BeginTransactionInNewTerr() components_meta = project.RootMeta.RootFolder.GetDefinedFolderByNameDisp( "Components", True) component_meta = project.RootMeta.RootFolder.GetDefinedFCOByNameDisp( "Component", True) components = project.RootFolder.CreateFolder(components_meta) component = components.CreateRootObject(component_meta) component.Name = component_meta.Name project.CommitTransaction() invoke_id = gmeInterpreter._oleobj_.GetIDsOfNames( u'ComponentParameter') gmeInterpreter._oleobj_.Invoke(invoke_id, 0, 4, 0, 'script_file', os.path.basename(__file__)) gmeInterpreter.InvokeEx(project, component, Dispatch("Mga.MgaFCOs"), 128) finally: project.Close()