<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: Работа с COM-объектами]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7003</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7003&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: Работа с COM-объектами».]]></description>
		<lastBuildDate>Mon, 26 Mar 2012 23:14:35 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58430#p58430</link>
			<description><![CDATA[<p><strong>voam</strong>, расскажите, что в ней реализуете, интересно же.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 26 Mar 2012 23:14:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58430#p58430</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58428#p58428</link>
			<description><![CDATA[<p>#2</p><div class="quotebox"><cite>Аскет пишет:</cite><blockquote><p>Другое дело - <span style="color: black"><strong>обязательное наличие в сом&#039;е Dispatch-интерфейса</strong></span>.</p></blockquote></div><p><img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>Но почему же работает в VBA?<br />Ссылки - статическое (раннее) связывание с &quot;обычными&quot; интерфейсами, вопреки динамическому [CreateObject] с IDispatch&nbsp; (англ. Dispatch - посылать/отправка).</p><p><em>IDispatch применяется в тех случаях, где нужна интерпретация.</em> (rsdn: &quot;COM vs. CORBA&quot;)</p>]]></description>
			<author><![CDATA[null@example.com (Аскет)]]></author>
			<pubDate>Mon, 26 Mar 2012 23:12:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58428#p58428</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58418#p58418</link>
			<description><![CDATA[<p><strong>Xameleon, alexii</strong>, Вы абсолютно правы!<br />Проштудировав материалы, обнаружил, что я спроектировал ActiveX неправильного типа: мой проект содержал класс типа &quot;COM Object&quot;, в то время как необходимо было использовать специальный тип &quot;Automation Object&quot;, после чего в интерфейс автоматически были добавлены необходимые описания, и объект стал доступен в VBS! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Странно, правда, что предыдущий вариант (COM Object) работал в VBA... </p><p><strong>Еще раз большое спасибо всем за участие!</strong></p>]]></description>
			<author><![CDATA[null@example.com (voam)]]></author>
			<pubDate>Mon, 26 Mar 2012 20:55:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58418#p58418</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58417#p58417</link>
			<description><![CDATA[<p>Заинтересовался темой. )</p><p>Сравнил в OLEVIEW интерфейсы</p><p>Бибилотека voam.dll<br /><span class="postimg"><img src="http://zalil.ru/32956905/446e9bf3.4f717768/1.gif" alt="http://zalil.ru/32956905/446e9bf3.4f717768/1.gif" /></span></p><p>Библиотека scrrun.dll<br /><span class="postimg"><img src="http://zalil.ru/32956909/446e9bf3.4f717768/2.gif" alt="http://zalil.ru/32956909/446e9bf3.4f717768/2.gif" /></span></p><p><strong>voam</strong>, на сколько я понимаю, и помню, для движка WSH / WSC и т.п требуется интерфейс iDispatch. Без него скрипт не знает какие методы и свойства у объекта. Видимо и Вам тоже необходимо его реализовать.</p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Mon, 26 Mar 2012 20:41:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58417#p58417</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58413#p58413</link>
			<description><![CDATA[<p>Доброго времени суток!<br /><a href="http://sendfile.su/558269">Здесь</a> можно скачать саму библиотеку.<br /><strong>Аскет</strong>, я проверил typeName объекта FO - функция возвращает результат &quot;FileObject&quot;! Т.е. название класса в ActiveX.</p>]]></description>
			<author><![CDATA[null@example.com (voam)]]></author>
			<pubDate>Mon, 26 Mar 2012 20:24:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58413#p58413</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58387#p58387</link>
			<description><![CDATA[<p>Большое спасибо всем за участие!<br />Выложить DLL-ку и потестировать запросы смогу, к сожалению, только вечером ... обязательно отпишусь!<br /><strong>Аскет</strong>, думаю, что при попытке вызова typeName тоже будет ошибка &quot;Требуется объект FO&quot; ... в любом случае, проверю!</p>]]></description>
			<author><![CDATA[null@example.com (voam)]]></author>
			<pubDate>Mon, 26 Mar 2012 09:45:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58387#p58387</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58385#p58385</link>
			<description><![CDATA[<p>Да, вы правы. Это другое. Получается что вызов CreateObject проходит без ошибок, знакомая ситуация. Но почему тогда через референцы в vba работает?</p><p><strong>MsgBox typeName(FO)</strong><br />=Unknown?</p>]]></description>
			<author><![CDATA[null@example.com (Аскет)]]></author>
			<pubDate>Mon, 26 Mar 2012 09:05:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58385#p58385</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58378#p58378</link>
			<description><![CDATA[<div class="quotebox"><cite>Аскет пишет:</cite><blockquote><p>Давайте порассуждаем логически:</p></blockquote></div><p>Давайте будем просто читать внимательнее:<br /></p><div class="quotebox"><cite>voam пишет:</cite><blockquote><p>После регистрации такого объекта в системе столкнулся с такой проблемой: если я обращаюсь к данному объекту из VBA (т.е. подключаю объект через Tools -&gt; Refrences...), то работа с объектом идет без проблем, можно создавать экземпляр класса и обращаться к его методу. Если же я обращаюсь к этому классу из VBS с помощью процедуры CreateObject, то <span style="color: red"><strong>при попытке обратиться к методу класса</strong></span> возникает ошибка &quot;Требуется объект FO&quot;, где FO - экземпляр класса COM-объекта.</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 26 Mar 2012 08:03:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58378#p58378</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58373#p58373</link>
			<description><![CDATA[<p>voam, сможешь выложить dll-ку?</p>]]></description>
			<author><![CDATA[null@example.com (chessman)]]></author>
			<pubDate>Mon, 26 Mar 2012 06:05:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58373#p58373</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58371#p58371</link>
			<description><![CDATA[<p>Не надо путать. )<br />Давайте порассуждаем логически:<br />В любом случае это не IUnknown - ведь в vba-то код работает (что выше), а VB(A) и знать не знает что такое IUnknown.<br />Следовательно это disp (т.е. Automation).<br />Смотреть нужно в сторону корректности ProgID, <span class="bbu">а он может отличаться от имени в reference&#039;ах</span> (вообще, в delphi по-умолчанию стоит типа &quot;Progect1.Class1&quot;).</p><p>Хотя могу в чем-то ошибаться <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Аскет)]]></author>
			<pubDate>Mon, 26 Mar 2012 03:23:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58371#p58371</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58369#p58369</link>
			<description><![CDATA[<p><strong>voam</strong>, надо смотреть на какие-то детали создания библиотек серверов Automation, возможно, специфичных именно для Delphi. Вот что я сходу нашёл — <a href="http://www.techvanguards.com/stepbystep/comdelphi/server.asp">Building a COM Server - COM, COM+, Delphi Tutorials and References - Binh Ly</a> <em>[выделение моё]</em>:<br /></p><div class="quotebox"><blockquote><p>…<br /><strong>Creating COM Components</strong></p><p>In Delphi, we can create several types of COM components:</p><p>&nbsp; &nbsp; 1. COM Object - a COM component that does not support IDispatch/Automation. This is used to build lightweight COM components such as Windows shell extensions and non-scriptable servers such as plugins, etc.</p><p>&nbsp; &nbsp; 2. Automation Object - a COM component that supports IDispatch/Automation. This is used to build COM components <strong>that are scriptable and support late-binding,</strong> in addition to being able to implement a standard vtable interface. In general, this is the most common type of COM component that we are going to create.<br />…</p></blockquote></div><p>ну, и так далее.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 25 Mar 2012 23:50:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58369#p58369</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58368#p58368</link>
			<description><![CDATA[<p><strong>&quot;voam.FileObject&quot;</strong></p><p>Скорее всего это некорректный идентификатор.<br />Поковыряте COM-браузером и посмотрете какой там progid, наилучший вариант на мой взгляд, PBrow - <a href="http://forum.script-coding.com/viewtopic.php?pid=55437#p55437">http://forum.script-coding.com/viewtopi … 437#p55437</a>или специально предназначенный для этих целей <strong>COM-informer</strong>-<a href="http://forum.script-coding.com/viewtopic.php?pid=55439#p55439">http://forum.script-coding.com/viewtopi … 439#p55439</a></p>]]></description>
			<author><![CDATA[null@example.com (Аскет)]]></author>
			<pubDate>Sun, 25 Mar 2012 21:37:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58368#p58368</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58367#p58367</link>
			<description><![CDATA[<p>Вот пример <strong>неработающего</strong> кода <strong>VBS</strong>:<br /></p><div class="codebox"><pre><code>Set FO = CreateObject(&quot;voam.FileObject&quot;)
Res = FO.GetSum(1,1)
MsgBox Res</code></pre></div><p>... а вот <strong>работающий</strong> код вызова объекта из <strong>VBA</strong>:<br /></p><div class="codebox"><pre><code>Sub Test()
Dim FO As voam.FileObject

Set FO = New voam.FileObject
Debug.Print FO.GetSum(1, 1)
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (voam)]]></author>
			<pubDate>Sun, 25 Mar 2012 20:18:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58367#p58367</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58366#p58366</link>
			<description><![CDATA[<p>И ещё:<br />reference - раннее связывание - недоступно в VBScript (во всяком случае глубоко ковырять придётся).</p>]]></description>
			<author><![CDATA[null@example.com (Аскет)]]></author>
			<pubDate>Sun, 25 Mar 2012 20:13:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58366#p58366</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58365#p58365</link>
			<description><![CDATA[<p>А что вы указали в параметрах createobject(?) ?<br />Полагаю там и ошибка.</p><p>COM он и в Африке СОМ - <span class="bbu">ЯЗЫКОНЕЗАВИСИМ</span>.</p><p>(OFF: чем кстати и &quot;пренебрегают&quot; некоторые коллеги, захламляя коллекцию одинаковыми скриптами с небольшими языково-синтаксическими отличиями в разных ветках. Но это уже тема организационных вопросов.)</p><p>Другое дело - обязательное наличие в сом&#039;е Dispatch-интерфейса.<br />Но, опять же, полагаю что с этим всё в порядке (в delphi всё это создаётся по умолчанию).</p><p>В общем, дело в ProgID.</p>]]></description>
			<author><![CDATA[null@example.com (Аскет)]]></author>
			<pubDate>Sun, 25 Mar 2012 19:39:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58365#p58365</guid>
		</item>
	</channel>
</rss>
