Vistaでのプログラミング雑感

[つぶやき]
昨年の仕事の中心は、Windowsプログラミングでした。
Windowsのプログラミングは好き嫌いで言えば嫌いのほうですが、まあ一応職業として
おりますので何とかします。
何をやったかといいますと。
1) ActiveX(ATL+C++)の製品をActiveX部分とC#プログラム(.NET)に分ける。
2) .NETで作成したDLLとActiveXとの連携とOffice製品の制御
  Windows2000/XP/Vista+Office2000/XP/2003/2007で動作させる。
まず最初に大変だったのが、C++のソーストレースでした。

ATLで記述されいるので、Microsoft社のルールに従った暗黙のルールが
多数あり、それを把握するのにだいぶ時間を要しました。
幸い、社内に十分なドキュメントがありましたので、何とか理解はできました。
次に、.NETを使ったC#プログラムとActiveXのDLLのリンクをどのように実現
するか?です。
これもあまり書籍なども無く、かなり試行錯誤してたどりつきました。
いろんな書籍に書いてあるGACへの登録をしない形式でのリンクですので
記載が無いので、それこそ手探り状態でした。
Officeの制御ですが、単純に1つのOfficeのバージョンとリンクするだけなら
MSDNのページに記載がありますが、複数バージョンの対応する方法の記載は
ありません。ここでも試行錯誤しながら実現にこぎつけました。

難関だったのは、Vistaにインストールする方法です。
UACというセキュリティ強化がなされているので、インストール時に
Proguram filesやレジストリが素直に利用できません。
というのも、インストールしたユーザの環境に写像が張られてしまうので
共通に置いたつもりでも他のユーザからはプログラムが見えないという
現象になってしまいます。

インストーラ作成もVS2005で行ったので、色々とVista対応していない部分も
多く、苦労はしましたが、とりあえず何とか、管理者でインストールして
一般ユーザでも利用できるプログラムのインストールが完了しました。

色々とわかっていれば、おそらく3人月もあればできる仕事ですが
倍の6人月もかかってしまいました。

Vistaに関しては、今までプログラムをしていた方々がかなり苦労をする
OSではあると思います。