Jump to page: 1 2
Thread overview
Embedding DWT
Oct 08, 2008
sleek
Oct 08, 2008
Frank Benoit
Oct 08, 2008
Robert Fraser
Oct 08, 2008
sleek
Oct 08, 2008
Michael Robellard
Oct 08, 2008
Frank Benoit
Oct 10, 2008
Frank Benoit
Oct 10, 2008
sleek
Oct 14, 2008
sleek
Oct 15, 2008
yidabu
Oct 16, 2008
sleek
October 08, 2008
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


October 08, 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. Thanks
> 
> 

Well, 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?
October 08, 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.
October 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. Thanks
>>
>>
>
> Well, 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?


October 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. Thanks
>>>
>>>
>>
>> Well, 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?
>
> 


October 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
October 10, 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/
October 10, 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/


October 14, 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/
>
> 


October 15, 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 again

How 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/


« First   ‹ Prev
1 2