• ベストアンサー

ASPでオブジェクトの開放について

お世話になります。 クライアントで動かすActiveXコントロールで 次のように作成されたオブジェクトを 開放する方法を教えて下さい。 <OBJECT ID="XXXXXXXX" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="XXXXXXXX.CAB#version=1,0,0,0"> </OBJECT> 通常のVBでは Set XXXXXXXX = Nothing のように開放すると思うのですが、 ASPではどのようにするのですか? 教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
noname#200012
noname#200012
回答No.1

<object>tagに生成した客体は自動消滅です。 別にsetxxx=Nothingと同じ処理をしなくてくれても使用後すぐ消えます。

kasukon
質問者

お礼

返信が遅くなってすいませんでした。 レスが無いのでもうあきらめていました。 結果として何もしなくてよかったのですね。 これで、確信して<object>tagを使うことが出来ます。 ありがとうございました。

関連するQ&A

  • ASP.NetでのActiveX

    ASP.Net開発に関してご質問があります。 現在aspxにActiveXを貼り付け、そのパラメータをJavaScriptでいじっています。 そのActiveXをサーバコントロールとして扱うことは可能なのでしょうか? 以下のようにHtmlに記述し、aspx側にそのコントロールを足してみたのですが。。 <OBJECT id="test" codeBase="AAAAAAAAAA" classid="clsid:0555558F-7D5F-11D2-A1C7-006008E3229E" VIEWASTEXT runat="server"> ビルドはできるのですが、以下のようなエラーがでてしまいます。 『解析エラー メッセージ: GUID には、ハイフンを 4 つ含む 32 桁の数字 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) を含んでいなければなりません。』 見当違いなことをお聞きしているかもしれませんが、よろしくお願いいたします。

  • こんにちは。

    こんにちは。 現在VisualStudio2003でオンラインゲームを製作中です。 ホームページ上からゲームを起動させたく、HP上の「ゲーム開始」ボタンを押すとActiveXを起動させて、そこからCreateProcessによりクライアントのゲームを起動させたいと考えています。 CABファイルにMFCでつくったActiveXコントロール(ocx),infファイルを埋め込み、 CABには CABARC -s 6144 n TEST.CAB TEST.ocx TEST.inf signtool sign -a -f XXXX.pfx -p XXXX TEST.cab の手順で購入したコードサイニング証明書(MS Authenticode)を著名しています。 HPでは、下記のように記述しています。clsidはActiveXコントロールのidlファイルのクラスIDです。 <html> <head></head> <body> <OBJECT ID="TEST" CLASSID="CLSID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX" CODEBASE="TEST.CAB#version=1,0,0,1"> </OBJECT> </body> HP上の「ゲーム開始」ボタンを押すと上記を呼びます。 一度目の押下では目的のゲームを起動できるのですが、ゲームを閉じてから二度目以降の押下では起動しません。 ユーザーはゲームを閉じてもまた押下することもあるので、一度しか起動できないとまずいわけです。 IEを一旦閉じてから開くとまた出来ますが、やはり起動できるのは最初の一度目だけです。 ocxファイルが二度目以降の押下では起動できていません。 IEのインターネットオプションの設定で信頼済みのサイトに入れてやると二度目以降も起動できます。 そこでセキュリティの問題かと思い、CAB以外にそれに含まれるocxとexeも著名してみましたが、やはり二度目以降の押下では起動しませんでした。 ActiveXコントロール(ocx)が起動中は再度ocxを起動できないのか?と思い、ゲームを起動させた後にActiveXコントロール(ocx)は要らないので、 CreateProcessのあとでexit(0)とすると、IEまで消えてしまいます。 何かこの現象で分かる方がいらっしゃいましたら、是非とも教えてください。 よろしくお願い致します。

  • WinXP SP2でActiveXコントロールをスムーズに表示する

    下記のようなソースでコントロールを呼び出しておりましたが、XP SP2で、コントロールの読み込みが遮断されます。 <OBJECT ID="OtameshiX" width="0" height="0" CLASSID="CLSID:12345678-1234-5678-1234-123456789012" codebase="http://hoge.com/otameshi.cab"> </OBJECT> どのようにしたら回避できるのでしょうか? コードサイニングに高いお金を払えば済むのでしょうか?

  • VC++で作成したAvtiveXのIEからの呼び出しについて

    はじめまして、ayumina222と申します。 VC++を使ってActiveXを作成しました。 IEから呼び出しをし、ローカルのメモ帳に引数を渡して起動したいと考えています。 作成したActiveX(ocx)はフリーツールを利用してinfファイルを作成し、cabファイルにまとめました。 テスト用に証明書も作成し、ocx、cab共に署名もしました。 この状態でサーバーにアップし下記のhtmlソースで呼び出しを試みましたがレジストリにActiveXのClassIDが書き込まれていないPCではまったく反応がありません。 あと、実行された場合にActiveXのDoPropExchange関数内に書いた処理が何回か実行されてしまいます( ̄д ̄) エー HTMLソース ----*----*----*----*----*----*----*----*----*----*----*----* <object classid="CLSID:****************************" codebase="http://ドメイン/XXXXXXXXXXX.cab" id="XXXXXXXXXXX" width="0" height="0" TYPE="application/x-oleobject"> <param name="test1" value="XXXXXXXXXXX" /> <param name="test2" value="XXXXXXXXXXX"/> <param name="test3" value="XXXXXXXXXXX" /> </object> ----*----*----*----*----*----*----*----*----*----*----*----* 期待している動作としては、 「ActiveXをインストールしますか?」 というダイアログが出て、承諾するとインストールを実行し、受け取った引数をローカルのPCのnotepad.exeに渡すといった動作です。 IEのセキュリティ設定はActiveXを実行できるよう変更してあります。 証明書も登録しました。 ClassIDが登録されているPCでは期待通りの動作をしてくれているので、ocxには問題は無いと思います。 ワタシはClassIDがローカルPCで見つからなかった場合にはcodebaseのURLを参照してIEがインストールを実行するという認識でしたが、どうも期待通りに動いてくれません(●`ε´●) ぶー codebaseのURLに直接アクセスした場合には 「cabファイルを保存しますか?」 と出るので、パスは通っていると思うのですが。。。 どなたかお分かりになる方いらっしゃいましたら、 宜しくお願いします(π0π) ウルルルル

  • OBJECTタグで、PARAMを使用するとActiveXコントロールが表示されない

    こんにちは。 今回の質問内容は、タイトルにあるように、 OBJECTタグでPARAMを使用すると、画面に何も表示されません。 PARAMを使わずに開いてみると、普通に開きます。 何かセキュリティ関係の設定を変更する必要があるのか、HTML等ソースを変更しなければならないのか分かりません。 何か分かる方がおられましたら、ご回答ください。 OBJECTタグのソース↓ <OBJECT ID="MainWindow" CLASSID="CLSID:ABCB59-5C9D-4D83-9A16-83AFFD73458" CODEBASE="test.CAB#version=1,0,0,0"> <PARAM NAME="test1" VALUE="100"> <PARAM NAME="Age" VALUE="100000"> <PARAM NAME="Name" VALUE="test"> </OBJECT

    • ベストアンサー
    • HTML
  • objectとembedについて

    はじめまして。 XHTML 1.0 Transitionalにて、Flashを表示させるにあたり </script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="726" height="180" title=""> と <embed src="pic.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="726" height="180"></embed> というタグを使っているのですが、タグチェッカーなどでチェックすると、objectには等価な内容を書きましょう embedは他のhtml用のタグです と、なります。 表示には、まったく問題ありませんが、正しく書くならどうすればよいのでしょうか?

    • ベストアンサー
    • Flash
  • VC++でActiveXコントロールを作りたいのですが

    IEから <OBJECT CLASSID="CLSID:***"></OBJECT> で使えるActiveXコントロールを作りたいのですが、よくわかりません。 VC++では、MFC ActiveX ControlWizard で、ActiveXコントロールが作れるようですね。とりあえずプロジェクトを作って、そのまま何もしないActiveXを作って、ブラウザで表示したいと思っても、どのようにしたらいいのか、そこから分かりません。 HTMLを書いて、ブラウザで表示させようとしてますが、何か抜けていたり、おかしかったりするでしょうか。 かなり情報不足かもしれませんが、何かヒントがいただければと思います。よろしくお願いします。

  • ハンゲームができません

    http://www.hangame.co.jp/winsp2/activex_win.asp?objectid=HGPluginJP23&classid=D0FD5E32-CABD-4A6E-BD0F-94ACE89CCE03&codebase=down.hangame.co.jp/jp/dist/hgstart/HGPluginJP23.cab#version=23,0,0,0この画面になったらどのようにするか教えて下さい。

  • 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> どうぞ宜しくお願いします。

  • サーバ上でActiveXコントロールのオブジェクトを生成し、VBScr

    サーバ上でActiveXコントロールのオブジェクトを生成し、VBScriptからメソッド呼 び出しを行うため、下記のようなプログラムを作成しました。 [test.asp] <html xmlns="http://www.w3.org/1999/xhtml" > <head> <meta http-equiv="Content-Type" content="text/html; charset=x-sjis"/> <meta name="GENERATOR" content="Microsoft Visual Studio 6.0"/> </head> <body> <OBJECT id=Test1 style="LEFT: 0px; VISIBILITY: hidden; TOP: 0px" codeBase=Test.ocx#version=4,0,0,0 type=application/x-oleobject classid=clsid:XXXX runat="server"> </OBJECT> <script language=vbscript runat="server"> Response.Write(Request.Form(input1)) Test1.TestCall(Request.Form(input1)) </script> <script language=vbscript> Sub test1() Document.Testform.submit() End Sub </script> <form name="Testform" action="test.asp"method="POST"> <input style="width: 143px; height: 75px" type="button" name="button1" onclick="test1"/> <input type="hidden" name="input1" value=" "/> <!--ここにユーザ入力値を入れ る--> </form> </body> </html> Test.ocxは公開メソッドとして、ユーザ入力値を引数に持つ"TestCall"を持っていま す。 サーバ側でregsvr32 Test.ocxでレジストリ登録して、そのクラスIDを<OBJECT>タグ で指定しています。 これをクライアントから http://servername/test.asp で開くと、そのまま応答がなくなります。 VBScriptでTest.ocxのメソッドを使用している部分を削除すれば、普通にレスポンス が帰ってきます。 (Response.Write(Request.Form(input1))の結果が正しく表示されている) input1にはユーザ入力値を入れる処理をVBScriptで実装していますが、上記では省略 しています。 何か設定等足りないところがあるのでしょうか? Test.ocxのインスタンス生成に失敗しているような感じがします。 インスタンスはこのページがロードされたときにサーバ側で生成されるものと理解し ていますが、正しいでしょうか? なお、これと同じことをクライアントサイドで行った場合、正常にTest.ocxのメソッ ドをコールできています。 (<object>タグと<script>タグでrunat="server"を削除。) やりたいことは、ユーザーが入力したフォームデータをsubmit()して、サーバ上で ActiveXオブジェクトを生成して、VBScriptからActiveXの公開メソッドを呼び出し、 その中からさらにサーバ上の別プログラムを呼び出し、処理結果を受けてVBScriptへ 処理を戻し、結果をASPで処理してクライアントに返したいのです。 普通のWebアプリケーションとほぼ同じだと思いますが、ActiveXコントロールから別 のプログラム(レガシーアプリ)へはPostMessageで要求を投げているので、結果が 自身にPostされるまでSleepしてからVBScriptに処理を戻すという形にしようとして います。 サーバ環境はWindows Server 2003 + IIS6.0、クライアントはWindows XP Professional SP3 + IE6.0です。 リモートデバッグの仕方が分からず苦労しています。

専門家に質問してみよう