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()
Exemple #2
0
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()