dポイントプレゼントキャンペーン実施中!

「参照の追加」で追加したCOMを、
DIM aa As New ~
Newでインスタンスを生成させたいのですが、エラーが発生して生成できません(--;)

Try ~ Catchでエラーを調べた結果、
エラーコードは、「0x80040154」
メッセージは、「COMオブジェクトは有効でないか、登録されていません」

どうして、このエラーが発生するのかを教えて下さい m(_ _)m

A 回答 (6件)

>質問の主旨が、あのエラーが出た時の対処方法ですので、


>不可能であれば、その理由が知りたいのです。

理由?一番最初に書いた、
>1.Newで指定しクラスのオブジェクトが直接作成不可能な場合。他のメソッド等で生成させるときなど。

ですね。
対処法は、ありません。というか、使用可能となる条件を満たしてくださいですね。


ご丁寧に、
>WMPSliderCtrl: Not Public. Internal object used by Windows Media Player.

って書いてくれているとおり、MediaPlayerが内部的に使用しているから公開してないですよ、と。

インスタンスの生成に関して内部的な前提条件が何かあるんでしょう。非公開の。

非公開なんですから、使えたとしても、使えなかったとしても自己責任で。
    • good
    • 0
この回答へのお礼

対処法、無いですよね、やはり…。
いろいろありがとうございました。

お礼日時:2005/06/04 14:13

http://msdn.microsoft.com/library/default.asp?ur …

SDKってこれじゃないんですか?


http://msdn.microsoft.com/library/default.asp?ur …

スキン変更のサンプルもあるみたいですが、だめでしたか?
    • good
    • 0
この回答へのお礼

スキン変更のサンプルは見つからなかったのですが、他のプレイヤーSDKがあったので、早速DLして試しています。
本当にいろいろありがとうございました。

質問の〆切りはもう少し待ちたいと思います。
質問の主旨が、あのエラーが出た時の対処方法ですので、不可能であれば、その理由が知りたいのです。

お礼日時:2005/06/03 18:02

オブジェクトブラウザ見てみると、



>WMPSliderCtrl: Not Public. Internal object used by Windows Media Player.

>WMPPlaylistCtrl: Not Public. Internal object used by Windows Media Player.

って書いてありますが。なんで無理矢理使おうとしてるんですか?


>「参照の追加」で追加したCOMを、

ここの時点で間違えているような。
MediaPlayerって、ActiveXコントロールですよね。
フォームに貼り付けて使うもんですから参照の追加じゃないですね。

>他のメソッド等で生成ですが、メソッドでインスタンス生成する方法がわかりません。

で、貼り付けたオブジェクトのメソッドやプロパティがいろいろあるんでそこから調べていきましょう。

この回答への補足

実際やろうとしているのは、スキンを作る様な事です。専用のSDKが見つからず、違った方法で試みている最中です。また、専用のSDKはライセンスが必要らしいのです。

フォームに貼り付けて、いろいろ調べました。
コントロールのプレイリストのメンバの中に、コンストラクタが見つかり、ようやくカスタマイズできる段階になりました。
スライダーのメンバですが、このコントロールの中には存在しませんでした(--;)

Not Publicということで、無理矢理使うことになるのですが、何か方法があると思いたいです(^^ゞ
あのエラーが出てしまったからには、やはり不可能ということなのでしょうか?
何度も申し訳ありません。

補足日時:2005/06/02 17:05
    • good
    • 0

>COMの実体がインストールされていない場合ですが、


>SDKのDLLもインストールさせる場合もあるのでしょうか?
>今まで、参照追加してそのまま使っていました。どうか、この詳細をお願いします。

「詳細をお願いします」は、こっちなんですが(^^;;。

SDKにもいろいろ種類があります。
なんというSDKをインストールして、その中のなんというDLLを参照設定して、なんと言うクラスのオブジェクトをNewしようとしてエラーになったんですか?

この回答への補足

説明不足で申し訳ありませんでした。
SDK:Windows Media Player Ver9.0.0.2980
コンポーネント名:Windows Media Player
パス:\WINDOWS\System32\wmp.dll
名前空間(クラスのようなもの?):WMPLib の中の、

WMPPlaylistCtrlClass
WMPSliderCtrlClass 他 のクラスのインスタンスが生成できません。 
宜しくお願いします。

補足日時:2005/06/01 15:54
    • good
    • 0

1.Newで指定しクラスのオブジェクトが直接作成不可能な場合。

他のメソッド等で生成させるときなど。

2.参照設定したのが*.tlbのファイルで、タイプライブラリだけあってCOMの実体がインストールされていない場合。
とかですかね。

この回答への補足

ご回答ありがとうございました。
補足として、参照追加したものは、MSサイトでダウンロードしたSDKのDLLです。
オブジェクトが直接作成不可能である場合、これはもうどうしようもないのでしょうか?
他のメソッド等で生成ですが、メソッドでインスタンス生成する方法がわかりません。
COMの実体がインストールされていない場合ですが、SDKのDLLもインストールさせる場合もあるのでしょうか?今まで、参照追加してそのまま使っていました。どうか、この詳細をお願いします。

補足日時:2005/05/31 14:31
    • good
    • 0

『COMオブジェクトで使われているのは Microsoft.VisualBasic.Collection ではなく、VBA.Collection であり、これらには互換性がないからです。


とこちらには書かれています。
対処方法もかかれているみたいなので、参考にしてみてください。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

MSのKBにも
http://support.microsoft.com/default.aspx?scid=k …
BUGとして挙がっているようですが、同じ内容ですか?

この回答への補足

ご回答ありがとうございました。
COMオブジェクトですが、自作ではなく、MSからダウンロードしたSDKにあるもの(dll)を参照追加したので、中身がいじれないです。
多分、追加する際に、何かすべきことがあると思うのですが、それがまったくわかりません。

補足日時:2005/05/31 14:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!