Category Archives: WindowsDNA

32bitのCOMを64bit環境から使うためのDLLサロゲートの設定

How to use 32-bit COMponents of Intelligent Converters in 64-bit environment

情報源: How to use 32bit COMponents in 64bit environment

古の呪文。

  1. 目的のCOMをHKey_Classes_Root\Wow6432Node\CLSID[GUID]から見つける
  2. 見つかったら、新しいREG_SZ(文字列)値を追加します。名前はAppIDでなければならず、データは検索したCOMオブジェクトGUIDと同じでなければなりません
  3. HKey_Classes_Root\Wow6432Node\AppID\の下に新しいキーを追加します。新しいキーは、COMオブジェクトのGUIDと同じ名前で呼び出す必要があります。
  4. 追加した新しいキーの下に、新しいREG_SZ(文字列)値を追加し、DllSurrogateと呼びます。値を空のままにします。
  5. HKey_Local_Machine\Software\Classes\AppID\の下に新しいキーを作成します。この場合も、新しいキーはCOMオブジェクトのGUIDと同じ名前で呼び出す必要があります。このキーの下に値を追加する必要はありません。

このレジストリ設定だけでCOM(COM+)のサービスがよろしくやってくれる。

Announcing Windows 10 Insider Preview Build 17643 for Skip Ahead 

Hello Windows Insiders! Today, we are releasing Windows 10 Insider Preview Build 17643 (RS5) to Windows Insiders who opted in to Skip Ahead. What’s new in Build 17643 Sets + Office = Awesome Sets with Office 365 makes it easy to group, recall, and refresh data sources for all your projects. Whether updating your Excel […]

情報源: Announcing Windows 10 Insider Preview Build 17643 for Skip Ahead – Windows Experience BlogWindows Experience Blog

Office Insider Previewとの組合せで、デスクトップ版OfficeがSETSに対応。懐かしい人には懐かしい感じ。

EdgeがWebDriver対応、

データセンスの改良。

など。

「ActiveXコントロールは死んだ」を読んで。

ActiveXコントロールは死んだ – L'eclat des jours(2015-04-04).

まぁ、死んだよね。まだ息をしている業界も無い事は無いんですけど。たださすがにWebページにでっかいActiveXコントロールを貼り付けて、「これがWEBへの対応です!!」と声高らかに書くところはその業界でもなくなってきたけど。

ただ、最近の流行はアプリでタブレット対応なので、これもあと5年でActiveXコントロールだよなぁと思わなくも無い感じではあります。しかもWindowsの場合ストアアプリでないストアアプリのように見える何かだったりするのでビリビリしびれます。

確かにUI実装としてのActiveXコントロールは死んだと思いますし、実装技術や運用方法は大きく変わってきてはいるものの、ちょうど今輝いている何かを見るたびに、20年たっても、あまりにアプリケーションとして機能するソフトウェアシステムのアーキテクチャの考え方や実装のアイデアが変わらなすぎていて、ちょっと自分たちの進歩のなさに気分が悪くなったりもします。もっと言えば、メインフレームで分散システムを作り始めた頃から大きくは変わっていないと思っていたりします。

メインフレームの時代までは戻りたくないので、Windows DNAの頃と比較したいのですが、当時「デジタルダッシュボード」といわれていたもの(そして約束通り実現できなかったもの)が、今はPattern & PracticeのPRISMと呼ばれるものであったり、ExcelもPower~で始まるセルフBIなどに移り変わっていたり、当時Storage+といわれていたものが、Entity Frameworkに姿を変えていたり、確かに使用されている技術、実装方法は洗練され変わってきているけど、ユーザーに対して約束したユーザー体験はあまり変わっていません。そして、Webの「フロント技術」を見ると何年さかのぼって同じ議論を繰り返しているんだろうと思います。(そしてJavaScriptってC++の道をたどるんだろうと予測したりするわけです)

また、アプリケーションの構築基盤も、DCOM/CORBAの分散オブジェクト、SOA、それらを前提としたオーケストレーション技術、そして今のMicro Service、結局粒度と抽象度の上がったり下がったりがあったり、実装技術は変わる物の、やりたいことと目指すこと、何よりその時に必要な考え方や心構えがWindows DNAのころと大きく変わったように思えません。

クラウドの時代とは行っても、クラウド上にアプリケーションを作るというのは、クラウドのSaaSやPaaSが新しいOS、新しいライブラリセットやアプリケーションサーバーになっているだけで、僕らのやることは結局相も変わらず、対象の複雑性を隠蔽するために別のところで複雑性と不確定性を増していく作業のなのだとつくづく嫌になりました。

結局、本当に新しくて楽しいことはクラウドの霞の向こうにしかないのだ。

P/InvokeでもCOMの初期化は行われる。

Does the really CLR call CoInitializeEx on the first call to unmanaged code, even if you don't deal with COM at all and are just calling native code via p/invoke? – The Old New Thing – Site Home – MSDN Blogs.

.NET Fxのランタイムは、P/Invokeの場合でもP/InvokeでCOMが呼び出されるかかわからないので、スレッド開始ごとにCoInitializeEx()をCOINIT_MULTI­THREADED(つまりMTA)で呼び出しているよというお話。

ああそうっすよねー。そうですよねー。というのと、正しくスレッドごとにやってやがる。

合わせて読みたい:

If you want to set a thread's apartment model via Thread.CurrentThread.ApartmentState, you need to act quickly – The Old New Thing – Site Home – MSDN Blogs.

Windows Runtime 徹底解説 – Deep Dive -のセッションビデオが公開された

先ほど行われたde:codeでMS荒井さんにより行われた、Windows RuntimeのDeep Diveセッション。

COMを知らない方やWindowsをよくご理解いただけていない方にはご遠慮いただいた方が良いのかも。

Windows Runtime 徹底解説 – Deep Dive –

Windows RuntimeはCOMのリファクタリング。

これに興味を持たれたあなたはこちらも見た方がいいですよ。

デスクトップ アプリケーションと Windows ストア アプリの連携 – アプリ間の連携技術 –