1

こんにちは、次の例外があります。

次のエラーが原因で、CLSID {6BF52A4F-394A-11D3-B153-00C04F79FAA6} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 80040154 クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))。

フロー コード (C#) で o COM オブジェクトを作成しようとすると

Object instancePlayer = null;
Guid guid_IWMPPlayer = typeof(WMPLib.IWMPPlayer).GUID;
Guid guid_IUnknown = new Guid("00000000-0000-0000-C000-000000000046");
Type type = Type.GetTypeFromCLSID(guid_IWMPPlayer);
instancePlayer = Activator.CreateInstance(type);
4

1 に答える 1

1

COM はGUIDs、クラスとインターフェイスを識別するために使用します。クラス ID ( ) ではなく、インターフェイス ID ( IID)を使用しているようです。プレーヤー オブジェクトに対応するクラスを見つけて、そのクラスを使用できるかどうかを確認します。IWMPPlayerCLSIDGUID

更新: クラスを調べました。このようなものを取得CLSID...

Guid guid_WMPPlayer = typeof(WMPLib.WindowsMediaPlayer).GUID;

...そして、これCLSIDをに渡しType.GetTypeFromCLSIDます。

更新 2: これらの GUID を使用する必要があることを確認できますか? やってみませんか...

instancePlayer = new WMPLib.WindowsMediaPlayer();

...?

于 2013-04-17T13:08:08.800 に答える