<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Eric's Complete Guide To Type Signatures Of Scriptable Object Models</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx</link><description>Moving away from the problems of junior high school &amp;#8230; Here's a question I've gotten many times over the years: how do you design an object so that it can be easily called from both VBScript and JScript? COM defines a fairly complex type system,</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Eric's Complete Guide To Type Signatures Of Scriptable Object Models</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#183372</link><pubDate>Wed, 14 Jul 2004 20:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:183372</guid><dc:creator>Kim Gräsman</dc:creator><description>&amp;quot;There are memory leaking scenarios for VBScript.&amp;quot;&lt;br&gt;&lt;br&gt;I've been experimenting with this lately (ten years too late, I guess).&lt;br&gt;&lt;br&gt;Is this not just a simple bug? Why not make sure value going into [out] parameters are properly released?&lt;br&gt;&lt;br&gt;Come to think of it, probably because you can't know it's [out], since you don't read the typelib - is that it?&lt;br&gt;&lt;br&gt;Thanks for any definitive answers.</description></item><item><title>re: Eric's Complete Guide To Type Signatures Of Scriptable Object Models</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#183498</link><pubDate>Wed, 14 Jul 2004 21:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:183498</guid><dc:creator>Eric Lippert</dc:creator><description>Correct.  The script engine has no idea whether it is talking to an out, in, or in-out parameter.  The script engine sees&lt;br&gt;&lt;br&gt;foo.bar baz&lt;br&gt;&lt;br&gt;and thinks &amp;quot;clearly the developer wishes me to pass a reference to baz&amp;quot;, so that's what it does.&lt;br&gt;&lt;br&gt;The callee on the other hand knows that the contract is &amp;quot;this thing is an out parameter, so I don't have to free the thing that comes in.&amp;quot;&lt;br&gt;&lt;br&gt;The problem is as you state -- there's no way for the engine to know what the contract is before the call without checking the type info, and that is VERY expensive in some common scenarios.&lt;br&gt;</description></item><item><title>re: Eric's Complete Guide To Type Signatures Of Scriptable Object Models</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#183553</link><pubDate>Wed, 14 Jul 2004 22:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:183553</guid><dc:creator>Alex Angelopoulos</dc:creator><description>&amp;gt; ... there's no way for the engine to know what the contract is before the call without checking the type info, and that is VERY expensive in some common scenarios.&lt;br&gt;&lt;br&gt;Dang. You stole my thunder. I was about to wax eloquent on the beauties of using tlbinf32.dll to assist scripting... :|</description></item><item><title>re: Eric's Complete Guide To Type Signatures Of Scriptable Object Models</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#184364</link><pubDate>Thu, 15 Jul 2004 18:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:184364</guid><dc:creator>Chris Kunicki </dc:creator><description>Eric, as always, interesting stuff. Dude, when you going to blog about VSTO 2? (assuming you're still working with that team, maybe not?)&lt;br&gt;</description></item><item><title>re: Eric's Complete Guide To Type Signatures Of Scriptable Object Models</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#184368</link><pubDate>Thu, 15 Jul 2004 18:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:184368</guid><dc:creator>Eric Lippert</dc:creator><description>Thanks dude!&lt;br&gt;&lt;br&gt;I am still working on VSTO2.  &lt;br&gt;&lt;br&gt;Eric Carter, Peter Torr, Paul Stubbs and the VSTO User Education team are all blogging about it, and I reserve the right to do so as well, and I probably will at some point.&lt;br&gt;&lt;br&gt;However, one of the primary reasons I started this blog is because the COM script engines are still widely used and will be widely used for some time.  I have a huge email archive containing trivia about the script engines that exists nowhere else on the web, and still lots of questions to answer in public, so I'm going to stick primarily to scripting for some time yet.&lt;br&gt;</description></item><item><title>re: Eric's Complete Guide To Type Signatures Of Scriptable Object Models</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#187295</link><pubDate>Mon, 19 Jul 2004 11:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:187295</guid><dc:creator>Marcus Tucker</dc:creator><description>&amp;gt;However, one of the primary reasons I started this blog is because the COM script engines are still widely used and will be widely used for some time. I have a huge email archive containing trivia about the script engines that exists nowhere else on the web, and still lots of questions to answer in public, so I'm going to stick primarily to scripting for some time yet&lt;br&gt;&lt;br&gt;Keep going! Great stuff so far! Thanks Eric...</description></item><item><title>Shell Extensions for .NET Assemblies, Version 1.4.1993</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#818262</link><pubDate>Thu, 12 Oct 2006 07:08:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:818262</guid><dc:creator>Heath Stewart's Blog</dc:creator><description>&lt;p&gt;Version 1.4.1993 of the Shell Extensions for .NET Assemblies has been released.&lt;/p&gt;
</description></item><item><title>re: Eric's Complete Guide To Type Signatures Of Scriptable Object Models</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#1416795</link><pubDate>Fri, 05 Jan 2007 17:35:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1416795</guid><dc:creator>Jason Roberts</dc:creator><description>&lt;p&gt;Eric -- your blog rocks. I never thought I would return to COM automation and scripting but it is still the easiest way to reach the rest of the world that is not on the .Net bandwagon. Thanks for putting all the useful details up.&lt;/p&gt;
&lt;p&gt;I have one question that perhaps you could treat as a follow-on to this blog entry: discussion of [in, defaultvalue] vs. [in, optional] in IDL and the various scripting engines and .Net COM interop. I recall you having an entry on optional parameters but now I can't find it; in any case I don't remember it discussing the distinction between [optional] and [defaultvalue]. It is not super clear why both exist and what the differences are between them. For example, older COM books say you can specify [in, optional, defaultvalue] for parameters, but the present-day MIDL compiler does not let you do it. [optional] and [defaultvalue] are mutually-exclusive.&lt;/p&gt;
&lt;p&gt;Thanks again man, this stuff is great!&lt;/p&gt;
</description></item><item><title>Calling functions of COM object from JScript</title><link>http://blogs.msdn.com/ericlippert/archive/2004/07/14/183241.aspx#4323674</link><pubDate>Fri, 10 Aug 2007 21:26:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4323674</guid><dc:creator>Visual Studio to Internet Explore...</dc:creator><description>&lt;p&gt;To be able to invoke functions on the instantiated COM function through JScript, we need to add the method to the ITest interface which is derived from IDispatch.&lt;/p&gt;
</description></item></channel></rss>