ActiveX DLL側からVB EXE側のフォームやフォーム上のオブジェクトなどを操作することはできないのでしょうか?
VB EXE側では当然のようにフォーム上のラベルの表記を変更したりできます。
frmMain.lblName.Caption = "あいうえお"
同じことをActiveX DLL側から実行したりできないのでしょうか?
ActiveX DLLはレイトバインディングで参照しています。
Dim obj As Object
Set obj = CreateObject("Project2.Class1")
obj.fncAction ← このDLL側の関数の中でEXE側のフォームを操作。
このようなことが ActiveX DLL で実現できるのでしょうか?
それとも、やはりセキュリティ上実現できない仕様になっているのでしょうか?
ご教授お願いいたします。
【環境】
WIN2000 PRO SP4、WINXP HOME SP2
VB6.0 SP5
> obj.fncAction ← このDLL側の関数の中でEXE側のフォームを操作。
とりあえず、『obj.fncAction Me』などとして、DLL側に、
引数やプロパティなどで、フォームオブジェクトを渡してみるとか。
ただ、フォームそのものを渡すという設計は、
個人的にはあまりお奨めしませんけど。
魔界の仮面弁士 様 いつもお世話になっております。
>> 『obj.fncAction Me』
obj.fncAction Me
obj.fncAction frmMain
確かにいけました!
ありがとうござます。
>> 個人的にはあまりお奨めしませんけど。
確かにフォームのインスタンス(?)を丸ごと相手の関数に渡すのは怖いかもしれませんね。
DLL側関数の結果を判断してフォーム側の処理は本体EXEがやる方がいいのかも。
参考にさせていただきます。
ありがとうございました。
ツイート | ![]() |