64ビットの環境では、GetTypeFromProgIDで得たタイプはSystem.__ComObjectにラップされているらしく何も情報が取得できないので、PowerShellのGet-Memberを借りてプロパティやメソッドの情報を得るしかない様に思えたが・・・
プロジェクトにADODBの参照を追加した時点で、
ADODB.Connection cn = null;
と書けるようになるのだから、”ADODB.xxxx”の大半の名前の問題が解消されているハズ。
実際に上をコードすると、
Type.GetTypeFromProgIDの結果はそのままだけど、
Type?t = Type.GetType("ADODB.Connection");
で、それっぽいタイプが得られる。
ADODB.Fieldは、Type.GetTypeFromProgIDでTypeを得られないので、ソースに変数を宣言しないと全く取得できなかった。
public static ADODB.Field? field = null;
これで、プロパティとかメソッドが見つかると思い、FindMembersを使っても大空振り。
ADODB.Connectionのツールチップにはinterface ADODB.Connection。
更にツールチップの逆アセンブル?リンクから
ADODB._Connectionが大元のインタフェースらしい
しかし、FindMembersを使っても ConnectionString くらいしか情報が得られない。
一方、FindInterfacesは、ADODB._Connection、ADODB.Connection15、ADODB._ADO、ADODB.ConnectionEvents_Eventを見つけてくるので、
FindMembersとFindInterfacesを組み合わせて、タイプを検索するC#コードを拡張していく様にすると、良い事があるかもしれない。
何度も何度も何度も・・・ビルドし直すのは面倒なんでやらないけど