Sign in to follow this  
Followers 0
Valuater

Problem with 2 IE Objects

18 posts in this topic

can't seem to get this one...

per help, I read the object create as.. "Use ObjCreate if you want to have a new instance of the referring application."

here is an example... it gives an error

#include <GUIConstants.au3>

$gui = GUICreate ( "Embedded Web control Test", 630, 580,(@DesktopWidth-640)/2, (@DesktopHeight-580)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
$GUI_Button_Back    = GuiCtrlCreateButton   ("Back",     10, 420, 100,  30)
$GUI_Button_Forward = GuiCtrlCreateButton   ("Forward", 120, 420, 100,  30)
$GUI_Button_Home    = GuiCtrlCreateButton   ("Home",    230, 420, 100,  30)
$GUI_Button_Stop    = GuiCtrlCreateButton   ("Stop",    340, 420, 100,  30)
$GUI_Button_win1    = GuiCtrlCreateButton   ("IE One",  120, 520, 100,  30)
$GUI_Button_win2    = GuiCtrlCreateButton   ("IE Two",  230, 520, 100,  30)
GUISetState ()    ;Show GUI

$oIE = ObjCreate("Shell.Explorer.2")

; Create a simple GUI for our output
$win1 = GUICreate ( "Embedded Web control Test", 600, 360, 10, 40, $WS_CHILD + $WS_BORDER, "", $gui)
$GUIActiveX         = GUICtrlCreateObj      ( $oIE,     -1, -1, 600 , 360 )
GUISetState ()    ;Show GUI

$oIE.navigate("http://www.autoitscript.com")

$0Control = $oIE

; create second explorer
$oIE2 = ObjCreate("Shell.Explorer.2")

; Create a simple GUI for our output
$win2 = GUICreate ( "Embedded Web control Test2", 600, 360, 10, 40, $WS_CHILD + $WS_BORDER, "", $gui)
$GUIActiveX2            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )

GUISetState (@SW_HIDE)    ;Show GUI

$oIE2.navigate("http://www.autoit3.com")

; Waiting for user to close the window
While 1
    $msg = GUIGetMsg()
    
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $GUI_Button_Home
            $0Control.navigate("http://www.autoitscript.com")
        Case $msg = $GUI_Button_Back
            $0Control.GoBack
        Case $msg = $GUI_Button_Forward
            $0Control.GoForward
        Case $msg = $GUI_Button_Stop
            $0Control.Stop
        Case $msg = $GUI_Button_win1
            GUISetState(@SW_HIDE, $win2)
            GUISetState(@SW_SHOW, $win1)
            $oControl = $oIE
        Case $msg = $GUI_Button_win2
            GUISetState(@SW_HIDE, $win1)
            GUISetState(@SW_SHOW, $win2)
            $oControl = $oIE2
    EndSelect
    
Wend

GUIDelete ()

Exit

been struggling with this for a while now

thx

8)


NEWHeader1.png

Share this post


Link to post
Share on other sites



For some reason, both embedded controls are being added to the first child GUI. The window Z-order is:

"Embedded Web control Test"
    "Embedded Web control Test"
        "Shell Embedding"
        "Shell Embedding"
    "Embedded Web control Test2"

It needs to be:

"Embedded Web control Test"
    "Embedded Web control Test"
        "Shell Embedding"
    "Embedded Web control Test2"
        "Shell Embedding"

Seems like a bug in AutoIt to me but I could be wrong. I tried inserting GUISwitch() statements to make sure the right window was last active but that was to no avail. Perhaps JP can comment further as to whether or not this is a bug.

That being said, I wouldn't use 2 child GUI's at all. I would create however many IE objects I needed and place them all on the 1 child GUI. Then I would use the Visible property of IE to show the correct instance on the fly.

Share this post


Link to post
Share on other sites

i say just make 2 seperate ones and when $win2 is clicked it runs the other browser whcih could be installed in the temp or something thats if u cant get this to work :P

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

thanks Valik...

I will give that a try

8)

EDIT

Looks like that works

#include <GUIConstants.au3>

$gui = GUICreate ( "Embedded Web control Test", 630, 580,(@DesktopWidth-640)/2, (@DesktopHeight-580)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
$GUI_Button_Back    = GuiCtrlCreateButton   ("Back",     10, 420, 100,  30)
$GUI_Button_Forward = GuiCtrlCreateButton   ("Forward", 120, 420, 100,  30)
$GUI_Button_Home    = GuiCtrlCreateButton   ("Home",    230, 420, 100,  30)
$GUI_Button_Stop    = GuiCtrlCreateButton   ("Stop",    340, 420, 100,  30)
$GUI_Button_win1    = GuiCtrlCreateButton   ("IE One",  120, 520, 100,  30)
$GUI_Button_win2    = GuiCtrlCreateButton   ("IE Two",  230, 520, 100,  30)
GUISetState ()    ;Show GUI

$oIE = ObjCreate("Shell.Explorer.2")
$oIE2 = ObjCreate("Shell.Explorer.2")
; Create a simple GUI for our output
$win1 = GUICreate ( "Embedded Web control Test", 600, 360, 10, 40, $WS_CHILD + $WS_BORDER, "", $gui)
$GUIActiveX         = GUICtrlCreateObj      ( $oIE,     -1, -1, 600 , 360 )
$GUIActiveX2            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )
GUICtrlSetState( -1, $GUI_HIDE )
GUISetState ()    ;Show GUI

$oIE.navigate("http://www.autoitscript.com")
$oIE2.navigate("http://www.autoit3.com")
$0Control = $oIE

; Waiting for user to close the window
While 1
    $msg = GUIGetMsg()
    
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $GUI_Button_Home
            $0Control.navigate("http://www.autoitscript.com")
        Case $msg = $GUI_Button_Back
            $0Control.GoBack
        Case $msg = $GUI_Button_Forward
            $0Control.GoForward
        Case $msg = $GUI_Button_Stop
            $0Control.Stop
        Case $msg = $GUI_Button_win1
            GUICtrlSetState($GUIActiveX2    , $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_SHOW)
            $oControl = $oIE
        Case $msg = $GUI_Button_win2
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_SHOW)
            $oControl = $oIE2
    EndSelect
    
Wend

GUIDelete ()

Exit

thx again

8)

Edited by Valuater

NEWHeader1.png

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

ooops..........

spoke to soon...

seems the "navigate" for the object only works with 2 objects

i placed a large sleep to give load time... but nope...

#include <GUIConstants.au3>

$gui = GUICreate ( "Embedded Web control Test", 630, 580,(@DesktopWidth-640)/2, (@DesktopHeight-580)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
$GUI_Button_Back    = GuiCtrlCreateButton   ("Back",     10, 420, 100,  30)
$GUI_Button_Forward = GuiCtrlCreateButton   ("Forward", 120, 420, 100,  30)
$GUI_Button_Home    = GuiCtrlCreateButton   ("Home",    230, 420, 100,  30)
$GUI_Button_Stop    = GuiCtrlCreateButton   ("Stop",    340, 420, 100,  30)
$GUI_Button_win1    = GuiCtrlCreateButton   ("IE One",  10, 520, 100,  30)
$GUI_Button_win2    = GuiCtrlCreateButton   ("IE Two",  120, 520, 100,  30)
$GUI_Button_win3    = GuiCtrlCreateButton   ("IE Twee", 230, 520, 100,  30)
$GUI_Button_win4    = GuiCtrlCreateButton   ("IE Fore", 340, 520, 100,  30)
GUISetState ()  ;Show GUI

; create IE Objects
$oIE = ObjCreate("Shell.Explorer.2")
$oIE2 = ObjCreate("Shell.Explorer.2")
$oIE3 = ObjCreate("Shell.Explorer.2")
$oIE4 = ObjCreate("Shell.Explorer.2")

; Create a simple GUI for our output
$win1 = GUICreate ( "Embedded Web control Test", 600, 360, 10, 40, $WS_CHILD + $WS_BORDER, "", $gui)
$GUIActiveX         = GUICtrlCreateObj      ( $oIE,     -1, -1, 600 , 360 )
$GUIActiveX2            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )
GUICtrlSetState( -1, $GUI_HIDE )
$GUIActiveX3            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )
GUICtrlSetState( -1, $GUI_HIDE )
$GUIActiveX4            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )
GUICtrlSetState( -1, $GUI_HIDE )
GUISetState ()  ;Show GUI

; Navigate IE Objects
$oIE.navigate("http://www.autoitscript.com")
Sleep(5000)
$oIE2.navigate("http://www.autoitscript.com/forum/index.php?showforum=2")
Sleep(5000)
$oIE3.navigate("http://www.autoit3.com")
Sleep(5000)
$oIE4.navigate("http://www.autoitscript.com/forum/index.php?showtopic=19988")
Sleep(5000)
$0Control = $oIE

; Waiting for user to close the window
While 1
    $msg = GUIGetMsg()
    
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $GUI_Button_Home
            $0Control.navigate("http://www.autoitscript.com")
        Case $msg = $GUI_Button_Back
            $0Control.GoBack
        Case $msg = $GUI_Button_Forward
            $0Control.GoForward
        Case $msg = $GUI_Button_Stop
            $0Control.Stop
        Case $msg = $GUI_Button_win1
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_SHOW)
            $oControl = $oIE
        Case $msg = $GUI_Button_win2
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_SHOW)
            $oControl = $oIE2
        Case $msg = $GUI_Button_win3
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_SHOW)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            $oControl = $oIE3
        Case $msg = $GUI_Button_win4
            GUICtrlSetState($GUIActiveX4, $GUI_SHOW)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            $oControl = $oIE4
    EndSelect
    
Wend

GUIDelete ()

Exit

it continually crashes at the 3rd "navigate"...??????

8)

Edited by Valuater

NEWHeader1.png

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

not this either.... still crashes on third navigate

#include <GUIConstants.au3>

$gui = GUICreate ( "Embedded Web control Test", 630, 580,(@DesktopWidth-640)/2, (@DesktopHeight-580)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
$GUI_Button_Back    = GuiCtrlCreateButton   ("Back",     10, 420, 100,  30)
$GUI_Button_Forward = GuiCtrlCreateButton   ("Forward", 120, 420, 100,  30)
$GUI_Button_Home    = GuiCtrlCreateButton   ("Home",    230, 420, 100,  30)
$GUI_Button_Stop    = GuiCtrlCreateButton   ("Stop",    340, 420, 100,  30)
$GUI_Button_win1    = GuiCtrlCreateButton   ("IE One",  10, 520, 100,  30)
$GUI_Button_win2    = GuiCtrlCreateButton   ("IE Two",  120, 520, 100,  30)
$GUI_Button_win3    = GuiCtrlCreateButton   ("IE Twee", 230, 520, 100,  30)
$GUI_Button_win4    = GuiCtrlCreateButton   ("IE Fore", 340, 520, 100,  30)
GUISetState ()   ;Show GUI


; Create a simple GUI for our output
$win1 = GUICreate ( "Embedded Web control Test", 600, 360, 10, 40, $WS_CHILD + $WS_BORDER, "", $gui)
$oIE = ObjCreate("Shell.Explorer.2")
$GUIActiveX         = GUICtrlCreateObj      ( $oIE,     -1, -1, 600 , 360 )
$oIE.navigate("http://www.autoitscript.com")
Sleep(5000)

$oIE2 = ObjCreate("Shell.Explorer.2")
$GUIActiveX2            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )
$oIE2.navigate("http://www.autoitscript.com/forum/index.php?showforum=2")
Sleep(5000)
GUICtrlSetState( -1, $GUI_HIDE )

$oIE3 = ObjCreate("Shell.Explorer.2")
$GUIActiveX3            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )
$oIE3.navigate("http://www.autoit3.com")
Sleep(5000)
GUICtrlSetState( -1, $GUI_HIDE )

$oIE4 = ObjCreate("Shell.Explorer.2")
$GUIActiveX4            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )
$oIE4.navigate("http://www.autoitscript.com/forum/index.php?showtopic=19988")
Sleep(5000)
GUICtrlSetState( -1, $GUI_HIDE )
GUISetState ()   ;Show GUI

$0Control = $oIE

; Waiting for user to close the window
While 1
    $msg = GUIGetMsg()
    
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $GUI_Button_Home
            $0Control.navigate("http://www.autoitscript.com")
        Case $msg = $GUI_Button_Back
            $0Control.GoBack
        Case $msg = $GUI_Button_Forward
            $0Control.GoForward
        Case $msg = $GUI_Button_Stop
            $0Control.Stop
        Case $msg = $GUI_Button_win1
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_SHOW)
            $oControl = $oIE
        Case $msg = $GUI_Button_win2
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_SHOW)
            $oControl = $oIE2
        Case $msg = $GUI_Button_win3
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_SHOW)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            $oControl = $oIE3
        Case $msg = $GUI_Button_win4
            GUICtrlSetState($GUIActiveX4, $GUI_SHOW)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            $oControl = $oIE4
    EndSelect
    
Wend

GUIDelete ()

Exit

???????????

8)

Edited by Valuater

NEWHeader1.png

Share this post


Link to post
Share on other sites

not this either.... still crashes on third navigate

#include <GUIConstants.au3>

$gui = GUICreate ( "Embedded Web control Test", 630, 580,(@DesktopWidth-640)/2, (@DesktopHeight-580)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
$GUI_Button_Back    = GuiCtrlCreateButton   ("Back",     10, 420, 100,  30)
$GUI_Button_Forward = GuiCtrlCreateButton   ("Forward", 120, 420, 100,  30)
$GUI_Button_Home    = GuiCtrlCreateButton   ("Home",    230, 420, 100,  30)
$GUI_Button_Stop    = GuiCtrlCreateButton   ("Stop",    340, 420, 100,  30)
$GUI_Button_win1    = GuiCtrlCreateButton   ("IE One",  10, 520, 100,  30)
$GUI_Button_win2    = GuiCtrlCreateButton   ("IE Two",  120, 520, 100,  30)
$GUI_Button_win3    = GuiCtrlCreateButton   ("IE Twee", 230, 520, 100,  30)
$GUI_Button_win4    = GuiCtrlCreateButton   ("IE Fore", 340, 520, 100,  30)
GUISetState ()  ;Show GUI
; Create a simple GUI for our output
$win1 = GUICreate ( "Embedded Web control Test", 600, 360, 10, 40, $WS_CHILD + $WS_BORDER, "", $gui)
$oIE = ObjCreate("Shell.Explorer.2")
$GUIActiveX         = GUICtrlCreateObj      ( $oIE,     -1, -1, 600 , 360 )
$oIE.navigate("http://www.autoitscript.com")
Sleep(5000)

$oIE2 = ObjCreate("Shell.Explorer.2")
$GUIActiveX2            = GUICtrlCreateObj      ( $oIE2,        -1, -1, 600 , 360 )
$oIE2.navigate("http://www.autoitscript.com/forum/index.php?showforum=2")
Sleep(5000)
GUICtrlSetState( -1, $GUI_HIDE )

$oIE3 = ObjCreate("Shell.Explorer.2")
$GUIActiveX3            = GUICtrlCreateObj      ( $oIE3,        -1, -1, 600 , 360 )
$oIE3.navigate("http://www.autoit3.com")
Sleep(5000)
GUICtrlSetState( -1, $GUI_HIDE )

$oIE4 = ObjCreate("Shell.Explorer.2")
$GUIActiveX4            = GUICtrlCreateObj      ( $oIE4,        -1, -1, 600 , 360 )
$oIE4.navigate("http://www.autoitscript.com/forum/index.php?showtopic=19988")
Sleep(5000)
GUICtrlSetState( -1, $GUI_HIDE )
GUISetState ()  ;Show GUI

$0Control = $oIE

; Waiting for user to close the window
While 1
    $msg = GUIGetMsg()
    
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $GUI_Button_Home
            $0Control.navigate("http://www.autoitscript.com")
        Case $msg = $GUI_Button_Back
            $0Control.GoBack
        Case $msg = $GUI_Button_Forward
            $0Control.GoForward
        Case $msg = $GUI_Button_Stop
            $0Control.Stop
        Case $msg = $GUI_Button_win1
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_SHOW)
            $oControl = $oIE
        Case $msg = $GUI_Button_win2
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_SHOW)
            $oControl = $oIE2
        Case $msg = $GUI_Button_win3
            GUICtrlSetState($GUIActiveX4, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX3, $GUI_SHOW)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            $oControl = $oIE3
        Case $msg = $GUI_Button_win4
            GUICtrlSetState($GUIActiveX4, $GUI_SHOW)
            GUICtrlSetState($GUIActiveX3, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX2, $GUI_HIDE)
            GUICtrlSetState($GUIActiveX , $GUI_HIDE)
            $oControl = $oIE4
    EndSelect
    
Wend

GUIDelete ()

Exit

???????????

8)

It works better when you connect $GUIActiveX3 to $oIE3 and $GUIActiveX4 to $oIE4.

look at the GUICtrlCreateObj.

Hope this helps.

Probably not an AutoIt bug but a Programmer bug :P

Share this post


Link to post
Share on other sites

It works better when you connect $GUIActiveX3 to $oIE3 and $GUIActiveX4 to $oIE4.

look at the GUICtrlCreateObj.

Hope this helps.

Probably not an AutoIt bug but a Programmer bug :P

rightio....

thx

but i still would like to know about the two+ child gui's with objects

8)


NEWHeader1.png

Share this post


Link to post
Share on other sites

For some reason, both embedded controls are being added to the first child GUI. The window Z-order is:

"Embedded Web control Test"
    "Embedded Web control Test"
        "Shell Embedding"
        "Shell Embedding"
    "Embedded Web control Test2"

It needs to be:

"Embedded Web control Test"
    "Embedded Web control Test"
        "Shell Embedding"
    "Embedded Web control Test2"
        "Shell Embedding"

Seems like a bug in AutoIt to me but I could be wrong. I tried inserting GUISwitch() statements to make sure the right window was last active but that was to no avail. Perhaps JP can comment further as to whether or not this is a bug.

That being said, I wouldn't use 2 child GUI's at all. I would create however many IE objects I needed and place them all on the 1 child GUI. Then I would use the Visible property of IE to show the correct instance on the fly.

I do my best to correct what's reproducible. I always need the most simpler script that can be reproduced the behaviour. don't expect to much as the comp /object code is beyond my understanding/knowledge.

With the SvenP silence is difficult to answer positively to com/object request. :P

Share this post


Link to post
Share on other sites

I correct(?) the Autoit crash of the first script for 3.1.1.101 just avoiding the crash.

Certainly it is an ostrich approach perhaps the real correction has to be different. :P

Share this post


Link to post
Share on other sites

With the SvenP silence is difficult to answer positively to com/object request. :P

Sad, Com will die with his silence? :lmao:

Share this post


Link to post
Share on other sites

Sad, Com will die with his silence? :lmao:

I hope no. Somebody will takeover if needed :P

Share this post


Link to post
Share on other sites

I do my best to correct what's reproducible. I always need the most simpler script that can be reproduced the behaviour. don't expect to much as the comp /object code is beyond my understanding/knowledge.

With the SvenP silence is difficult to answer positively to com/object request. :P

I was leaning more towards a GUI-related problem with how GUICtrlCreateObj() is setting the parent to the wrong HWND. However, I've not looked at the function so perhaps it is 99% COM based.

Share this post


Link to post
Share on other sites

#14 ·  Posted (edited)

I just looked at the code and I see the problem right off. For some reason, Sven made the decision that only one ActiveX control container would be created. That means you can create 1 object or 100 and they will all end up on the same container which means whichever window you create the first ActiveX control on will have the container.

I'm not sure of the logic behind this. This logic definitely does not support multiple windows, however (As evidenced by the original code). Migrating the code to support multiple windows shouldn't be too hard but it might take awhile to look over the code and figure out just why Sven implemented things the way he did.

JP, where can I find all the documentation Sven wrote while he was developing COM? I remember he used to have a bunch of files describing what he had implemented and what needed implemented and things like that. Those are the closest thing to technical documents for COM that we have and I'd like to go over them before I start butchering this code too much.

Edited by Valik

Share this post


Link to post
Share on other sites

I just looked at the code and I see the problem right off. For some reason, Sven made the decision that only one ActiveX control container would be created. That means you can create 1 object or 100 and they will all end up on the same container which means whichever window you create the first ActiveX control on will have the container.

I'm not sure of the logic behind this. This logic definitely does not support multiple windows, however (As evidenced by the original code). Migrating the code to support multiple windows shouldn't be too hard but it might take awhile to look over the code and figure out just why Sven implemented things the way he did.

JP, where can I find all the documentation Sven wrote while he was developing COM? I remember he used to have a bunch of files describing what he had implemented and what needed implemented and things like that. Those are the closest thing to technical documents for COM that we have and I'd like to go over them before I start butchering this code too much.

I uploaded under SvenP what I have archived. :P

Share this post


Link to post
Share on other sites

I uploaded under SvenP what I have archived. :P

Unfortunately, I saw no detailed texts on the ActiveX container implementation so I will essentially be flying blind with regards to his design decisions.

Share this post


Link to post
Share on other sites

You are certainly the less blind of us :P

Share this post


Link to post
Share on other sites

You are certainly the less blind of us :lmao:

I've upgraded GUICtrlCreateObj() so it will support multiple GUIs. The example scripts ran with no error.

It should be available in the next beta version.

Valik: I will start making some documentation for developers about GUICtrlCreateObj().

Regards,

-Sven

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0