<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On 2 April 2013 04:37, Anthony Walter <span dir="ltr"><<a href="mailto:sysrpl@gmail.com" target="_blank">sysrpl@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Name parameters are supported through variants. </div><div><br></div><div><div>procedure Test(V: Variant);</div>
<div>begin</div><div>  V.SomeMethod(12, ParamOne := '', ParamTwo := 12.5);</div>
<div>end;</div><div>      </div><div>Internally what happens is V is checked to for IDispatch, next GetIDsOfNames is called to find the dispid of SomeMethod, then a variant array of arguments is constructed (with the names), and finally Invoke is called. <br>

</div></div><div><br></div><div>This comes from the Microsoft COM concept of "automation", though automation encompasses a bit more than IDispatch, including marshalling, remoting, and error handling; passing errors back from a remote machine for example.<br>

</div><div><br></div><div>People don't really use this stuff much anyone, nor is their much demand for people with knowledge of the inner workings of COM. But if you want, you can write your own objects which implement IDispatch.</div>

<div><br></div><div>See the source code in the download link on this page: <a href="http://www.codebot.org/delphi/?doc=9573" target="_blank">http://www.codebot.org/delphi/?doc=9573</a></div><div><br></div><div>ScripTools.pas class TScriptlet which exposes arbitrary pascal methods and properties to a Javascript engine.</div>

<div><br></div></div>
<br>_______________________________________________<br>
fpc-devel maillist  -  <a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a><br>
<a href="http://lists.freepascal.org/mailman/listinfo/fpc-devel" target="_blank">http://lists.freepascal.org/mailman/listinfo/fpc-devel</a><br>
<br></blockquote></div><br><br clear="all"></div><div class="gmail_extra">Does this work on Linux as well, or is it only for Windows?<br></div><div class="gmail_extra">-- <br>Frank Church<br><br>=======================<br>
<a href="http://devblog.brahmancreations.com">http://devblog.brahmancreations.com</a>
</div></div>