C#アプリでいくつかのCOMオブジェクトを使用しようとしています。
1番目のバリアント:
using AXVLC;
Type t = Type.
GetTypeFromCLSID(
Guid.Parse("E23FE9C6-778E-49D4-B537-38FCDE4887D8")
);
AXVLC.VLCPluginClass vid = Activator.CreateInstance(t) as VLCPluginClass;
しかし、そのようなエラーが発生します: 相互運用タイプ'AXVLC.VLCPluginClass'を埋め込むことはできません。代わりに、該当するインターフェースを使用してください。ComObjectCalls
COMオブジェクトがパブリックコンストラクターを公開しないことを理解したので、オブジェクトを使用する他の手段を見つける必要があります。多くの場合、COMオブジェクトはファクトリモデルを使用してオブジェクトのインスタンスを作成します(例:IClass instance = COMClass.CreateInstance();)
または、Activator.CreateInstance()を使用してみてください
また、COMオブジェクトについて別の質問があります。-動的タイプを使用しています。dynamicshell = AutomationFactory.CreateObject( "WMPlayer.OCX.7");
作成します-わかりました。しかし、どのように知られるか、私がそれに使用できる方法。どうすればキャストできますか?
主な問題は、Silverlightアプリケーションを使用してCOMオブジェクトにアクセスしたいということです。したがって、動的/ expondoオブジェクトを操作したり、P/Invokeを使用してSilverlightのネイティブライブラリを呼び出したりする方法があります。
[DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "MessageBox")]
public static extern IntPtr MineMessageBox(int hWnd, string text,
string caption, uint type);
...
MineMessageBox(0, "Hello World", "Platform Invoke Sample", 0);
SilverlightのCOMオブジェクト機能にアクセスするための最良の方法は何ですか。また、ランタイムでこのCOMオブジェクトに関するすべての情報を取得することもできます(getメソッド。これを呼び出すことができます)。
ありがとうございました!