<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Работа с COM-объектами]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7003&amp;type=atom" />
	<updated>2012-03-26T23:14:35Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7003</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58430#p58430" />
			<content type="html"><![CDATA[<p><strong>voam</strong>, расскажите, что в ней реализуете, интересно же.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-03-26T23:14:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58430#p58430</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58428#p58428" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2012-03-26T23:12:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58428#p58428</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58418#p58418" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[voam]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25505</uri>
			</author>
			<updated>2012-03-26T20:55:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58418#p58418</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58417#p58417" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2012-03-26T20:41:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58417#p58417</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58413#p58413" />
			<content type="html"><![CDATA[<p>Доброго времени суток!<br /><a href="http://sendfile.su/558269">Здесь</a> можно скачать саму библиотеку.<br /><strong>Аскет</strong>, я проверил typeName объекта FO - функция возвращает результат &quot;FileObject&quot;! Т.е. название класса в ActiveX.</p>]]></content>
			<author>
				<name><![CDATA[voam]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25505</uri>
			</author>
			<updated>2012-03-26T20:24:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58413#p58413</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58387#p58387" />
			<content type="html"><![CDATA[<p>Большое спасибо всем за участие!<br />Выложить DLL-ку и потестировать запросы смогу, к сожалению, только вечером ... обязательно отпишусь!<br /><strong>Аскет</strong>, думаю, что при попытке вызова typeName тоже будет ошибка &quot;Требуется объект FO&quot; ... в любом случае, проверю!</p>]]></content>
			<author>
				<name><![CDATA[voam]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25505</uri>
			</author>
			<updated>2012-03-26T09:45:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58387#p58387</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58385#p58385" />
			<content type="html"><![CDATA[<p>Да, вы правы. Это другое. Получается что вызов CreateObject проходит без ошибок, знакомая ситуация. Но почему тогда через референцы в vba работает?</p><p><strong>MsgBox typeName(FO)</strong><br />=Unknown?</p>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2012-03-26T09:05:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58385#p58385</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58378#p58378" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-03-26T08:03:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58378#p58378</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58373#p58373" />
			<content type="html"><![CDATA[<p>voam, сможешь выложить dll-ку?</p>]]></content>
			<author>
				<name><![CDATA[chessman]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25359</uri>
			</author>
			<updated>2012-03-26T06:05:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58373#p58373</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58371#p58371" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2012-03-26T03:23:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58371#p58371</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58369#p58369" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-03-25T23:50:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58369#p58369</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58368#p58368" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2012-03-25T21:37:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58368#p58368</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58367#p58367" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[voam]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25505</uri>
			</author>
			<updated>2012-03-25T20:18:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58367#p58367</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58366#p58366" />
			<content type="html"><![CDATA[<p>И ещё:<br />reference - раннее связывание - недоступно в VBScript (во всяком случае глубоко ковырять придётся).</p>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2012-03-25T20:13:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58366#p58366</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Работа с COM-объектами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58365#p58365" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2012-03-25T19:39:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58365#p58365</id>
		</entry>
</feed>
