<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Cinthya,<div><br></div><div>I'm not sure what you're trying to accomplish here. Since you wrote the plug-in, couldn't you just create it directly with new and call methods?</div><div><br></div><div><br></div><div>At any rate, that HRESULT is E_MGA_ALREADY_IN_TRANSACTION, which means your plug-in is calling MgaProject.BeginTransaction, or your plug-in doesn't implement IMgaComponentEx and MgaLauncher calls BeginTransaction for it. The fix is to be sure you're implementing IMgaComponentEx and do not open (or close) a transaction if project.ProjectStatus & 8 == 8.<br></div><div><br></div><div>Kevin</div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 17, 2018 at 1:43 PM Cinthya Lopez <<a href="mailto:Cinthya_K_Lopez@raytheon.com">Cinthya_K_Lopez@raytheon.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="m_-9216571553704610523WordSection1">
<p class="MsoNormal">Hi All,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I am currently trying to invoke a plug-in from an interpreter. Does anyone have any experience on the best way to accomplish this?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I am writing both my interpreter and plug-in in C#. I currently have the following function in my interpreter.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">        private void RunPlugIn(string filePath, MgaProject project)<u></u><u></u></p>
<p class="MsoNormal">        {<u></u><u></u></p>
<p class="MsoNormal">            MgaRegistrar mgaRegistrar = new MgaRegistrar();<u></u><u></u></p>
<p class="MsoNormal">            object obj = mgaRegistrar.get_AssociatedComponents(<a href="http://project.RootMeta.Name" target="_blank">project.RootMeta.Name</a>, componenttype_enum.COMPONENTTYPE_PLUGIN, regaccessmode_enum.REGACCESS_BOTH);<u></u><u></u></p>
<p class="MsoNormal">            Array plugins = (Array)obj;<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">            foreach (var pluginName in plugins)<u></u><u></u></p>
<p class="MsoNormal">            {<u></u><u></u></p>
<p class="MsoNormal">                if ((string)pluginName == "MGA.Interpreter.TestPlugIn")<u></u><u></u></p>
<p class="MsoNormal">                {<u></u><u></u></p>
<p class="MsoNormal">                    MgaLauncher mgaLauncher = new MgaLauncher();<u></u><u></u></p>
<p class="MsoNormal">                    if (mgaLauncher != null)<u></u><u></u></p>
<p class="MsoNormal">                    {<u></u><u></u></p>
<p class="MsoNormal">                        MgaFCO currentobj = null;<u></u><u></u></p>
<p class="MsoNormal">                        MgaFCOs selectedobjs = null;<u></u><u></u></p>
<p class="MsoNormal">                        mgaLauncher.RunComponent((string)pluginName, project, currentobj, selectedobjs, (int)ComponentStartMode.GME_EMBEDDED_START);<u></u><u></u></p>
<p class="MsoNormal">                        break;<u></u><u></u></p>
<p class="MsoNormal">                    }<u></u><u></u></p>
<p class="MsoNormal">                }<u></u><u></u></p>
<p class="MsoNormal">            }<u></u><u></u></p>
<p class="MsoNormal">        }<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I can see the plug-in is found when calling get_AssociatedComponents () but I am getting an exception when calling mgaLauncher.RunComponent()<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The exception reads: Exception from HRESULT: 0x87650036<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">It is my understanding that ComponentStartMode.GME_EMBEDDED_START is not really used by GME, but I am passing the startMode as such in hopes that it will help me identify when the plug-in is invoked by the interpreter. I am passing in currentobj
 and selectedobjs as NULL since I do not care about those (for now).<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Any ideas what I may be doing wrong? Is this the recommended way to invoke a plug-in from an interpreter?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thank you,<u></u><u></u></p>
<p class="MsoNormal">Cinthya<u></u><u></u></p>
</div>
</div>

_______________________________________________<br>
gme-users mailing list<br>
<a href="mailto:gme-users@list.isis.vanderbilt.edu" target="_blank">gme-users@list.isis.vanderbilt.edu</a><br>
<a href="http://list.isis.vanderbilt.edu/cgi-bin/mailman/listinfo/gme-users" rel="noreferrer" target="_blank">http://list.isis.vanderbilt.edu/cgi-bin/mailman/listinfo/gme-users</a><br>
</blockquote></div>