digitalmars.D.dwt - Embedding DWT
- sleek (13/13) Oct 07 2008 I have created an IE toolbar by creating a COM server and then using DWT...
- Frank Benoit (7/26) Oct 07 2008 Well, a IE toolbar will never be X-platform, so I think it is OK to rely
- Robert Fraser (3/5) Oct 08 2008 IE is available for mac & Windows Mobile. Whether the toolbars will work...
- sleek (11/42) Oct 08 2008 Frank,
- Michael Robellard (11/61) Oct 08 2008 Hello,
- Frank Benoit (3/15) Oct 08 2008 Thanks for the update and also thanks for using DWT.
- Frank Benoit (2/4) Oct 09 2008 If there is still the need, there is IRC freenode #DWT
- sleek (10/14) Oct 10 2008 Frank,
I have created an IE toolbar by creating a COM server and then using DWT for the interface. I'm able to get everything to display properly, but when I open windows and then close them, it seems like DWT is crashing somewhere because the parent windows disappear as well. I'm using Shell.win32_new to create my Shell because I need it to use the IE hwnd as it's parent. I know that win32_new is makred as something that is not part of the public API, but I'm not sure how else I can solve my problem. Are there any other ways that I can create a shell that has an HWND parent? Lastly, are there any recommended ways of debugging a D dll? I'm having a hell of a time right now and frankly it seems that adding logging to a file is the only way that I can do it (ewwww). Any help is _GREATLY_ appreciated. Thanks
Oct 07 2008
sleek schrieb:I have created an IE toolbar by creating a COM server and then using DWT for the interface. I'm able to get everything to display properly, but when I open windows and then close them, it seems like DWT is crashing somewhere because the parent windows disappear as well. I'm using Shell.win32_new to create my Shell because I need it to use the IE hwnd as it's parent. I know that win32_new is makred as something that is not part of the public API, but I'm not sure how else I can solve my problem. Are there any other ways that I can create a shell that has an HWND parent? Lastly, are there any recommended ways of debugging a D dll? I'm having a hell of a time right now and frankly it seems that adding logging to a file is the only way that I can do it (ewwww). Any help is _GREATLY_ appreciated. ThanksWell, a IE toolbar will never be X-platform, so I think it is OK to rely on win32 only features. Another good resource to get answers is eclipse.org/platform/swt newsgroup. Debugging: well you can load it and then "attach to the process". I am curious, how did you do the COM server? Did you use the DWT ole package or dwin or something else?
Oct 07 2008
Frank Benoit wrote:Well, a IE toolbar will never be X-platform, so I think it is OK to rely on win32 only features.IE is available for mac & Windows Mobile. Whether the toolbars will work is a different story.
Oct 08 2008
Frank, So we are using win32_new which seems to be correctly creating the root shell for us. However, if we open any child windows that parent this root shell and then close those windows, it seems like something is crashing because the window _and_ the root window (in this case IE) go away. Any ideas? As to the COM server, we used dwin. The activex control we created used DWT. I'd be more than happy to share this code with you. Do you have an IM account that we can chat live? "Frank Benoit" <keinfarbton googlemail.com> wrote in message news:gchleo$10mk$1 digitalmars.com...sleek schrieb:I have created an IE toolbar by creating a COM server and then using DWT for the interface. I'm able to get everything to display properly, but when I open windows and then close them, it seems like DWT is crashing somewhere because the parent windows disappear as well. I'm using Shell.win32_new to create my Shell because I need it to use the IE hwnd as it's parent. I know that win32_new is makred as something that is not part of the public API, but I'm not sure how else I can solve my problem. Are there any other ways that I can create a shell that has an HWND parent? Lastly, are there any recommended ways of debugging a D dll? I'm having a hell of a time right now and frankly it seems that adding logging to a file is the only way that I can do it (ewwww). Any help is _GREATLY_ appreciated. ThanksWell, a IE toolbar will never be X-platform, so I think it is OK to rely on win32 only features. Another good resource to get answers is eclipse.org/platform/swt newsgroup. Debugging: well you can load it and then "attach to the process". I am curious, how did you do the COM server? Did you use the DWT ole package or dwin or something else?
Oct 08 2008
Hello, I am working with sleek on this project and just wanted to update the newsgroup that we found the problem that was causing our crash. The bug has nothing at all to do with dwt. It ends up that DWT call CoFreeUnusedLibraries every time it does a release of a COM object. It ends up that our COM server was set up incorectelly. DllCanUnloadNow was returning true because we were not incrementing the Module lock count each time we created a COM object. After fixing this things started working much better. "sleek" <cslush gmail.com> wrote in message news:gcian7$2kvg$1 digitalmars.com...Frank, So we are using win32_new which seems to be correctly creating the root shell for us. However, if we open any child windows that parent this root shell and then close those windows, it seems like something is crashing because the window _and_ the root window (in this case IE) go away. Any ideas? As to the COM server, we used dwin. The activex control we created used DWT. I'd be more than happy to share this code with you. Do you have an IM account that we can chat live? "Frank Benoit" <keinfarbton googlemail.com> wrote in message news:gchleo$10mk$1 digitalmars.com...sleek schrieb:I have created an IE toolbar by creating a COM server and then using DWT for the interface. I'm able to get everything to display properly, but when I open windows and then close them, it seems like DWT is crashing somewhere because the parent windows disappear as well. I'm using Shell.win32_new to create my Shell because I need it to use the IE hwnd as it's parent. I know that win32_new is makred as something that is not part of the public API, but I'm not sure how else I can solve my problem. Are there any other ways that I can create a shell that has an HWND parent? Lastly, are there any recommended ways of debugging a D dll? I'm having a hell of a time right now and frankly it seems that adding logging to a file is the only way that I can do it (ewwww). Any help is _GREATLY_ appreciated. ThanksWell, a IE toolbar will never be X-platform, so I think it is OK to rely on win32 only features. Another good resource to get answers is eclipse.org/platform/swt newsgroup. Debugging: well you can load it and then "attach to the process". I am curious, how did you do the COM server? Did you use the DWT ole package or dwin or something else?
Oct 08 2008
Michael Robellard schrieb:Hello, I am working with sleek on this project and just wanted to update the newsgroup that we found the problem that was causing our crash. The bug has nothing at all to do with dwt. It ends up that DWT call CoFreeUnusedLibraries every time it does a release of a COM object. It ends up that our COM server was set up incorectelly. DllCanUnloadNow was returning true because we were not incrementing the Module lock count each time we created a COM object. After fixing this things started working much better.Thanks for the update and also thanks for using DWT. Frank
Oct 08 2008
Do you have an IM account that we can chat live?If there is still the need, there is IRC freenode #DWT http://mibbit.com/
Oct 09 2008
Frank, We are having an issue right now that we can't debug. In particular, it has to do with multiple IE windows opening. When a single IE window is open, all works great. However, if a new one opens up, we get a crash. We have log statements in the code, but none of them are even getting hit, which leads us to believe that this probably is happening somewhere in the DLL attach. We have trying use windbg and ddbg to track down the issue, but we're at a loss here. Any ideas what we can look at to try and track this thing down? "Frank Benoit" <keinfarbton googlemail.com> wrote in message news:gcmugi$2jn0$1 digitalmars.com...Do you have an IM account that we can chat live?If there is still the need, there is IRC freenode #DWT http://mibbit.com/
Oct 10 2008
Threading issues have been resolved. Basically we needed to create a shell that parented an HWND we were provided. We tried using display.syncExec which worked until we attempted the Shell.win32_new ... apparantly you can't create a window that parents an HWND from a different thread. So instead, in the syncExec, we create a new normal shell, create an OleFrame that parents the shell. After the syncExec, we now have a shell object with a bogus hwnd. So what we do is a simple Windows function call: SetParent(shell.handle, hwndParent). voila, problem solved. DWT is making me happy again "sleek" <cslush gmail.com> wrote in message news:gcnko8$25d6$1 digitalmars.com...Frank, We are having an issue right now that we can't debug. In particular, it has to do with multiple IE windows opening. When a single IE window is open, all works great. However, if a new one opens up, we get a crash. We have log statements in the code, but none of them are even getting hit, which leads us to believe that this probably is happening somewhere in the DLL attach. We have trying use windbg and ddbg to track down the issue, but we're at a loss here. Any ideas what we can look at to try and track this thing down? "Frank Benoit" <keinfarbton googlemail.com> wrote in message news:gcmugi$2jn0$1 digitalmars.com...Do you have an IM account that we can chat live?If there is still the need, there is IRC freenode #DWT http://mibbit.com/
Oct 14 2008
On Tue, 14 Oct 2008 18:28:26 -0400 "sleek" <cslush gmail.com> wrote:Threading issues have been resolved. Basically we needed to create a shell that parented an HWND we were provided. We tried using display.syncExec which worked until we attempted the Shell.win32_new ... apparantly you can't create a window that parents an HWND from a different thread. So instead, in the syncExec, we create a new normal shell, create an OleFrame that parents the shell. After the syncExec, we now have a shell object with a bogus hwnd. So what we do is a simple Windows function call: SetParent(shell.handle, hwndParent). voila, problem solved. DWT is making me happy againHow about post simple sample code for the trick? -- yidabu <yidabu.spam gmail.com> http://www.dsource.org/projects/dwin D ÓïÑÔ-ÖÐÎÄ(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/
Oct 15 2008
We will be contributing both the in-place COM server implementation as well as our trick to allow for embedding DWT. I'll try to put some stuff together before the weekend. I just need to make sure I exclude work-specific code so I'm not violating any policies at the job. "yidabu" <yidabu.spam gmail.com> wrote in message news:20081015192013.3d783c34.yidabu.spam gmail.com...On Tue, 14 Oct 2008 18:28:26 -0400 "sleek" <cslush gmail.com> wrote:Threading issues have been resolved. Basically we needed to create a shell that parented an HWND we were provided. We tried using display.syncExec which worked until we attempted the Shell.win32_new ... apparantly you can't create a window that parents an HWND from a different thread. So instead, in the syncExec, we create a new normal shell, create an OleFrame that parents the shell. After the syncExec, we now have a shell object with a bogus hwnd. So what we do is a simple Windows function call: SetParent(shell.handle, hwndParent). voila, problem solved. DWT is making me happy againHow about post simple sample code for the trick? -- yidabu <yidabu.spam gmail.com> http://www.dsource.org/projects/dwin D ÓïÑÔ-ÖÐÎÄ(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/
Oct 15 2008