• 締切済み

ACTIVEX(OCX)コントロールでのバージョンプロパティの設定

現在、VC++でACTIVEX(OCX)コントロールを作っています。 プロパティ VERSION でVS_VERSION_INFOのFILEVERSIONの値を返却するようにしたいと思っています。 また、VBなどに貼り付けたときにプロパティ VERSIONのところにバージョンが表示されるようにしたいと思っています。 GetFileVersionInfo を使ってバージョン情報を取得する関数は作成したのですが、この関数を本来どこでCALLすべきなのかがわかりません。 VC++は初めてなので、よくわかっていません。 教えていただけないでしょうか。 また、GetFileVersionInfo を使用せずに簡単にバージョンをプロパティとして提供する方法があれば教えてください。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>現在、VC++でACTIVEX(OCX)コントロールを作っています。 MFCですか?ATLですか?VC++のバージョンは? MFCならAboutBoxメソッドで呼び出される関数で実装するのが普通かと。 追加の仕方は使用しているフレームワークおよびバージョンによって異なります。 #標準DISPIDはDISPID_ABOUTBOXです。

0xc0ffee
質問者

お礼

プロパティの作成時に 取得/設定メソッドを指定したらうまくいきました。 とりあえず、回答ありがとうございました。

関連するQ&A

  • ssTabの上のActiveXコントロール

    VB6.0で開発しています。 sstabに3つのActiveXコントロール(OCX)を貼り付けてexeを作成しています。 しかし、初心者なため、OCX内のコントロール たとえばコマンドボタンや、コンボボックスにセットフォーカスすら 移りません。 これでは値を設定することもできません。 すみませんが、御存知の方、おしえてください。

  • ACTIVEX(OCX)コントロールの2つ貼り付け

    MFCで通信用ACTIVEX(OCX)コントロールを作っています。 コントロールを1つ貼り付けて動作させるときには正常に動作するのですが、 2つ貼り付けて動作させると同じ変数を見てしまうらしく、動作が正常に行われません。 例) コントロールAではポート1をOPEN コントロールBではポート2をOPEN XXXCTL.cpp から CXXX.cpp クラスのメソッドをCALL CXXX.cpp から CXXXCOM.cpp クラスをCALL CXXXCOM.cpp でm_pThread というprivate 変数を定義していて、スレッド起動時にハンドラを入れています。 ポート1OPEN時には正常にスレッドを起動できますが、 ポート2OPEN時には既にm_pThreadに値が入っているため スレッドの起動を行わないようになってしまいます。 要はコントロールAからみた時と、コントロールBから見た時に違う変数となるような定義をしたいのですが、どのようにしたら良いのでしょうか? とても困っています。大至急回答いただけたらうれしいです。

  • VB6で作成したOCX(ActiveX)について

    お世話になります。 下記項目に対しての知識が無くて困っております。 VB6.0で作成したOCX(ActiveX)についてですが、VC++やVB以外のプログラム言語で使用できるのでしょうか? 今回はDelphiでの使用を検討しておりますが、環境が無い為試すことができません。 ご存知の方がいたら、ご教授お願いいたします。

  • regsvr32でActiveX登録を行ったocx

    regsvr32 で ActiveX登録を行った ocx がリソースエデイタ「のActiveX コントロールの挿入」で使用できなくて困ってます。 開発環境は VisualStudio2005 の VC++ で、Version は 8.0.50727.867 になります。 レジストリエディタで確認すると以下のレジストリキーで登録されていることを確認できるのですが。 HKEY_CLASSES_ROOT\CLSID\{9BD4A8F2-56BA-11D3-915D-00C04F797034} 『ActiveX コントロール テスト コンテナ』の「コントロールの登録」ダイアログで表示される一覧中には含まれていません。 また、「コントロールの登録」ダイアログで「登録」ボタンを押しても一覧に追加も行われません なんとなくセキュリティっぽい事までは分かるのですが、どなたかヒントをお持ちでしょうか?

  • Activexコントロール(ocx)のダウンロード。

    現在ActiveXコントロールのアプリを作成(修正) しています。 開発環境 OS: XP(SP2) visualStudio6.0(SP5) 実行環境 OS: XP(SP2) デバッグ環境では正常に動作するのですが、 OCXファイルを作成して、 ブラウザ上で実行するとどうもうまくいきません。 (修正前のアプリは正常にブラウザ上で動作する)  現状としましては ・IEのセキュリティはActiveXのダウンロードを許可。 ・バージョンは修正前のリビジョンに+1を設定。 ・ダウンロードするOCXファイルは    C:\WINDOWS\Downloaded Program Filesのフォルダに ダウンロードされてくるがインストールはされていない(状態が不明となる) ・clsIDをリナンバーしても動かない。 ・修正前の状態から再度OCXファイルを作成するだけで  も動かない。 ・OCXをコンポーネントとして登録できない ・開発環境、実行環境をwin2000にしても  同様の結果です 自分で思いつく事はすべてやってみたのですが、 うまくいきません。 なにかアドバイスでも何でもよいので いただけないでしょうか?

  • ActiveXについて

    初歩的なことをお聞きします。 ActiveXコントロールとOcxは良く耳にしますが、二つとも別々のものなんですか。 もし違うのであればその違いや用途などを教えて下さい。 またそれぞれ、VB6.0で作った物をVB.netで使用することは可能なんですかね。 よろしければ教えて下さい。

  • ActiveXコントロールのHTMLへの貼り付け方その2

    たびたび恐れ入ります。 自作ActiveXコントロールをHTMLに貼り付けたいのですが、まず、MFC ActiveX Control Wizardでスケルトンを作成しました。 (smp01というプロジェクトにしてあります) これは円を表示する機能を持っていますよね。 ひとまずこれをHTMLに貼り付けて表示したいのですが、うまくいきません。 なにが間違っているのか、抜けているのかも分かりません。 HTMLのサンプルは以下のとおりです。 <HTML> <HEAD> <TITLE> ActiveXコントロールサンプル01 </TITLE> </HEAD> <BODY> <OBJECT ID="smp01" WIDTH="100" HEIGHT="100" CLASSID="clsid:918576E5-324D-4480-825B-5B35A317594B" CODEBASE="d:/vc/smp01/Debug/smp01.ocx#Version=1,0,0,1"> </OBJECT> </BODY> </HTML> どうぞ宜しくお願いします。

  • Visual Basicで作成したActiveXコントロールのバージョン

    Visual Basic 6.0で作成したActiveXコントロールのバージョンについての質問です。 プロジェクトプロパティのバージョン番号(メジャー、マイナ、リビジョン)とは別に管理されているバージョンがあるようなのですが、 そのバージョンを管理する方法が知りたいのです。 そのバージョンは、「~.ocxの作成」を行なうと、必ず1ずつあがっていってます。 まず、現在のバージョンを普通に確認する方法がわかりません。 そのプロジェクトを開いているVisual Basicからでは確認できないと思っています。 ただ、作成されたOCXを使用している、標準EXEのプロジェクトを開いた時に、 以前のバージョンと異なる場合にアップグレードするかどうかのメッセージがでてくるので、それでわかります。 他に、当たり前の方法で確認する方法はないのでしょうか。 あと、 「~.ocxの作成」をしてもバージョンがあがらないようにする方法、 あげたい時にはあげる方法、 任意のバージョンに設定する方法についても知りたいのです。 とりあえず、今は、バージョンを「1」にしたいのです。 何度も作成しているうちに「30」になってしまいました。 また、作成したOCXを、他のパソコンへも配布しています。 「regsvr32」コマンドで削除と追加をして、 標準EXEのプロジェクトを開発しています。 仮にバージョンを「1」にできたとして、 これら他のパソコンでは、 同じように削除と追加をするだけで使えるようになるのでしょうか。 質問にまとまりがなくてすみませんが、 何かしらご存知の方がいらっしゃいましたら、 ご回答のほど、よろしくお願いいたします。

  • ocxの作り方(MFC)

    VC6でactiveX(ocx)をつくろうと思い、 プロジェクトを作ったのですが、 関数の作り方がわかりません。 Ctlファイルには手書きで追加するのでしょうか? 入門書にも乗ってないようで・・・ よくわかるサイトか何かご存じないでしょうか?

  • OCX (ACTIVEX)で非表示にするとハンドルが取れない

    MSVC++(MFC)を使用して、OCXモジュールを開発しています。 VBデザイン時に Visibleプロパティがtrueの場合でも 実行時には非表示になるようしたいと思っています。 非表示にするために、「コントロールの型情報の制御」のところで、 ******に OLEMISC_INVISIBLEATRUNTIME を追加すると、 実行時に非表示になり、要件は満たすのですが、 この場合、GetSafeHwnd()の返却値がNULLとなってしまい、 イベント発生時のPostMessage()が出来なくなってしまいます。 OCXを非表示にでき、PostMessage()が成功するようにするには どのようにしたら良いかをご存知でしたら教えてください。 なお、WINDOWS 95からXPまで全ての環境での動作を考えています。