<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>COM on Алексей Пахунов</title>
    <link>https://blog.not-a-kernel-guy.com/tags/com/</link>
    <description>Recent content in COM on Алексей Пахунов</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru-ru</language>
    <lastBuildDate>Wed, 18 Apr 2007 10:57:42 -0700</lastBuildDate>
    <atom:link href="https://blog.not-a-kernel-guy.com/tags/com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Регистрация COM объектов. Часть II. 64-х разрядная специфика</title>
      <link>https://blog.not-a-kernel-guy.com/2007/04/18/173/</link>
      <pubDate>Wed, 18 Apr 2007 10:57:42 -0700</pubDate>
      <guid>https://blog.not-a-kernel-guy.com/2007/04/18/173/</guid>
      <description>&lt;p&gt;Итак, продолжаем начатое в &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2007/04/13/172/&#34;&gt;первой части&lt;/a&gt;. 64-х разрядные версии Windows не разрешают смешивать 32-х и 64-х битный код в пределах одного процесса. В результате этого ограничения некоторые ветви реестра были также разделены на 32-х и 64-х разрядные. В частности, были разделены ключи, отвечающие за регистрацию COM компонент. Этот механизм называется &lt;a href=&#34;http://msdn2.microsoft.com/en-us/library/aa384232.aspx&#34;&gt;перенаправлением реестра (registry redirection)&lt;/a&gt; и реализуется средствами &lt;a href=&#34;http://en.wikipedia.org/wiki/WOW64&#34;&gt;Wow64&lt;/a&gt;. Механизм более или менее прозрачен для приложений в том смысле, что и 32-x и 64-х битные приложения используют одинаковые пути вида «HKEY_CLASSES_ROOT\Classes{…}», но работают, в конечном итоге, с разными ключами.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Регистрация COM объектов. Часть I</title>
      <link>https://blog.not-a-kernel-guy.com/2007/04/13/172/</link>
      <pubDate>Fri, 13 Apr 2007 14:11:47 -0700</pubDate>
      <guid>https://blog.not-a-kernel-guy.com/2007/04/13/172/</guid>
      <description>&lt;p&gt;Изначально, данный пост должен был называться «Регистрация COM объектов на 64-х разрядных версиях Windows» и речь должна было пойти про особенности 64-х разрядных версий Windows с точки зрения регистрации COM компонент. Однако пост получился слишком большим и его пришлось разбить на две части. Про особенности 64-х разрядных систем я расскажу во второй части.&lt;/p&gt;&#xA;&lt;p&gt;Для начала немного теории. Взаимодействие клиента (приложения вызвавшего CoCreateInstance) и сервера (COM объекта) в общем случае можно изобразить с помощью вот такой схемы:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://blog.not-a-kernel-guy.com/2007/04/com_marshalling.png&#34; alt=&#34;COM маршалинг.&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>.NET обертка для IShellLink (инсталляция)</title>
      <link>https://blog.not-a-kernel-guy.com/2006/10/25/90/</link>
      <pubDate>Wed, 25 Oct 2006 15:59:38 -0700</pubDate>
      <guid>https://blog.not-a-kernel-guy.com/2006/10/25/90/</guid>
      <description>Как и обещал, выкладываю ссылку на инсталляцию:&#xA;ShellLib (x86) - версия для 32-битного Windows XP/2003;&#xA;ShellLib (x64) - версия для 64-битного Windows XP/2003.&#xA;Инсталляция не содержит практически никакого пользовательского интерфейса - зачем он там нужен? Деинсталляция – через Add or Remove Programs. Инсталляция создавалась, как не трудно догадаться, с помощью WiX. :-) Исходный код инсталляционного скрипта можно скачать вместе с обновленными исходниками.</description>
    </item>
    <item>
      <title>.NET обертка для IShellLink</title>
      <link>https://blog.not-a-kernel-guy.com/2006/10/22/87/</link>
      <pubDate>Sun, 22 Oct 2006 22:30:31 -0700</pubDate>
      <guid>https://blog.not-a-kernel-guy.com/2006/10/22/87/</guid>
      <description>&lt;p&gt;Наконец-то дописал .NET обертку для IShellLink (см. серию постов начиная с &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2006/10/04/76/&#34;&gt;Shortcuts, shell and COM apartments.&lt;/a&gt;). Теперь можно создавать и редактировать ярлыки прямо из PowerShell. :-)&lt;/p&gt;&#xA;&lt;p&gt;Вот &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2006/10/ShellLink_src.zip&#34;&gt;ссылка на исходный код проекта&lt;/a&gt;. Немного позже, если дойдут руки, выложу ссылку на готовую инсталляцию.&lt;/p&gt;</description>
    </item>
    <item>
      <title>COM marshalling: создание proxy/stub на коленке</title>
      <link>https://blog.not-a-kernel-guy.com/2006/10/11/82/</link>
      <pubDate>Wed, 11 Oct 2006 21:15:43 -0700</pubDate>
      <guid>https://blog.not-a-kernel-guy.com/2006/10/11/82/</guid>
      <description>&lt;p&gt;Хочу поделиться рецептом победы над коварным IShellLinkDataList (см. предыдущие посты &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2006/10/07/78/&#34;&gt;COM marshalling.&lt;/a&gt; и &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2006/10/04/76/&#34;&gt;Shortcuts, shell and COM apartments.&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;Итак, исходная задача: вызвать метод локального интерфейса (интерфейса, помеченного атрибутом [local]) удалённо.&lt;/p&gt;</description>
    </item>
    <item>
      <title>COM marshalling, документация и все, все, все...</title>
      <link>https://blog.not-a-kernel-guy.com/2006/10/09/80/</link>
      <pubDate>Mon, 09 Oct 2006 17:03:25 -0700</pubDate>
      <guid>https://blog.not-a-kernel-guy.com/2006/10/09/80/</guid>
      <description>&lt;p&gt;Все-таки, наверное, Европейский Суд не зря судит Microsoft за недостаточно хорошую документацию. Пытаясь разобраться как, все таки, написать proxy для интерфейса IShellLinkDataList (см. предыдущие посты: &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2006/10/07/78/&#34;&gt;COM Marshalling.&lt;/a&gt; и &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2006/10/04/76/&#34;&gt;Shortcuts, shell and COM apartments.&lt;/a&gt;), перечитал уйму документации, пока не нашел толкового описания того, что я хочу сделать на сайте &lt;a href=&#34;http://www.ddj.com/dept/windows/184416483&#34;&gt;Dr. Dobb&amp;rsquo;s&lt;/a&gt;. Если попытаться описать весь процесс &amp;ldquo;метаний&amp;rdquo;, то выглядело это так:&lt;/p&gt;</description>
    </item>
    <item>
      <title>COM marshalling</title>
      <link>https://blog.not-a-kernel-guy.com/2006/10/07/78/</link>
      <pubDate>Sat, 07 Oct 2006 23:15:02 -0700</pubDate>
      <guid>https://blog.not-a-kernel-guy.com/2006/10/07/78/</guid>
      <description>&lt;p&gt;Продолжение истории про &lt;a href=&#34;https://blog.not-a-kernel-guy.com/2006/10/04/76/&#34;&gt;Shortcuts, shell and COM apartments&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Разбираясь с написанием proxy для интерфейса IShellLinkDataList, нашел несколько дельных статей в MSDN. Например, &lt;a href=&#34;http://msdn.microsoft.com/library/default.asp?url=https://blog.not-a-kernel-guy.com/library/en-us/dnesscom/html/chapter5apartments.asp&#34;&gt;Standard Marshaling Architecture&lt;/a&gt; толково описывает как собственно происходит marshalling во время вызова и какие объекты задействованы при этом. В двух словах всё происходит так:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shortcuts, shell and COM apartments</title>
      <link>https://blog.not-a-kernel-guy.com/2006/10/04/76/</link>
      <pubDate>Wed, 04 Oct 2006 09:20:00 -0700</pubDate>
      <guid>https://blog.not-a-kernel-guy.com/2006/10/04/76/</guid>
      <description>&lt;p&gt;&lt;em&gt;Дурная голова ногам покоя не даёт.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Поставил свежий WDK и понял, что мне жутко надоело каждый раз исправлять все ярлыки, меняя шрифт на Lucida Console и размеры окна со стандартных 80x25 на более удобоваримые 170x75. Зачесались руки автоматизировать это дело.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
