私は VBA アプリケーションを作成しており、特定の関数については、アプリケーションのほとんどのユーザーが参照をインストールしていない (そしてこの特定の関数を使用しない) ため、遅延バインディングのみを使用しています。
私が使用しているオブジェクトは次のように動作します。
class PISDK{
PIServer GetServer(string hostName)
}
GetServer
メソッドはオブジェクトを返しますが、以下PIServer
を実装するより具体的なインターフェイスが存在しますPIServer
。
interface IGetPoints2 : PIServer{}
PIServer
オブジェクトをオブジェクトにダウンキャストしたいと思いIGetPoints2
ます。
何もせずに、PIServer オブジェクトを取得します。
Dim PiSdk As Object
Dim PiServer As Object
Set PiSdk = CreateObject("PISDK.PISDK")
Set PiServer = PiSdk.GetServer("foo")
デバッガーで見るとPiServer
、それが確認されます。
厳密に型指定された変数を使用するとうまくいくはずですが、ここで使用されている型はどれも参照したくありません。
遅延バインディングのみを使用してこのオブジェクトをダウンキャストするにはどうすればよいですか?