kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

忘れられたAPI:DDE編でいただいたコメントについて

とっちゃんからトラックバックいただきました。ありがとうございます。さすが詳しい(^^;。拡張子の関連づけ作業でいまだに現役とは思ってませんでした。私やらない作業なので…。Shell APIに代替ものがあると思っていました。社本さんもさすがにクラス作って実際に使われているんですね。
それから、ATOMのことは書こうかなと思ったんですが、Win16では確かにものすごい有限リソースでしたけど、Win32になってどうだったかな?と思って消しました。クリップボードは確かにDDEがベースにあるって話をMSDN Libraryの中で見かけました。
16bitと32bitの過渡期にはメモリ共有の方法がいくつかあって、以下のいずれかを使いましょうと推奨されていたはずです。

  • WM_COPYDATAメッセージ
  • DDE
  • Thunk

この中で私が使ったことあるのはThunkです。Windows 95でGeneric Thunkです。これがまた16bit版のドライバしかなかったので、ドライバとのやりとりに使っていました。TWAINも使っていましたが、32bit版の1.5でした。まだベータ版という位置づけで、32bit版の正式版の最初が確か1.6だったと記憶していますが、インタフェース変わっちゃったんですよねぇ(笑)。互換性が無くて往生こきました。
当時はどこかの会社が日本語訳のマニュアルを販売してくれていて、それが日本語で読める唯一の資料でした。1万円少しだったかな?買ったらコピー本で、「これがいちまんえん…」と愕然として、英語を読めるようにならなくてはと決心した出来事でした。そのときからtwain.orgもあって、ドキュメントやライブラリが無償で手に入りましたけど、回線が細く、当時は全然使い物にならなかったです。
で、今後の忘れられたAPIシリーズはこの辺かなぁと思ってます。書くのに力いるので、週末位にかければいいかなというところですね。

  • TAPI
  • データ解凍ライブラリ
  • メールスロット
  • thunk
  • (一部の)GDI

Game SDKも書いてもいいかな…でも、資料とGame SDKは守備範囲からややはずれがちですが(^^;。GDIついでに、とっちゃんからのコメント。

WinG のSDKで、DirectX の前身に当たる Win16 なやつですねw
ここで作られた CreateDIBSection と HalfPalette が正しく実装されてたWin32環境は NT系だけというのは...内緒ネタでしょうかw

あーそうそう。CreateDIBSection()はWindows 95APIを見つけて喜んだけれど、自プログラムで使うと問題が見つかって、「ごめんね」と言われたのもいい思い出です。それからしばらくDIB系使わなかったのですが、久しぶりにAPIのマニュアル見るとJPEGやらPNGやらがBITMAPINFOHEADERに追加されていて、たまげました。
当時から「TIFFの全フォーマットが読めるプログラムは少ない」とか「NT4.0の頃にちゃんとビットマップの全形式に対応しているプログラムは少ない」とかありました。特に、15/16/32bitあたりに対応したプログラムは非常に少なかったと記憶しています。おかげで自分で作ったDIBが正しい(他のプログラムで読み込める)かどうかテストするのが大変で…。