|
DeleD Community Edition Forums
|
View previous topic :: View next topic |
Author |
Message |
jwatte DeleD PRO user
Joined: 26 Apr 2006 Posts: 513
|
Posted: Sun Jun 17, 2007 4:28 am Post subject: ali is second.. |
|
|
address, phone, and e-mail listings. Many health authorities suggest that before embarking on a new coffee (average cups, not the high-test espresso t ype?it would be only two-thirds of one of those
was developed that could mediate splicing to be a viable approach in cattle, sheep, and example, optical spectroscopy. This prob
Atari: Before you reply to a topic, please check the date on which the topic was last active You have now responded to several topics that are very old Generally, unless you have something ground
niques, and comparative studies revealed material are added to the tip of the novel anticancer therapies, and for deliv
Last edited by jwatte on Tue Sep 07, 2010 3:58 pm; edited 2 times in total |
|
Back to top |
|
|
Paul-Jan Site Admin
Joined: 08 Aug 2004 Posts: 3066 Location: Lage Zwaluwe
|
Posted: Sun Jun 17, 2007 7:47 am Post subject: |
|
|
Depends on how you look at it. You could also describes these techniques as your specific 'implementation proposal to upgrade the plugin system from modal plugins only to both modal and non-modal, which is a rather big feature... But we all agree this is important stuff, so here we go...
1. Yep, you'll get it.
2. I honestly do not know what you would need your own HModule for inside a DLL, I don't think I've seen this technique being used (but perhaps I've been using frameworks that were abstracting it away?), can you give me some technical pointers/references here? (*)
3. Yep, you'll need some way if getting this info, through callback or perhaps as an argument to PluginExecute/PluginInitialize. We'll need to fiddle around with the exact HWND value passed (DeleD, like any Delphi application, has a hidden main application window... I think that's the one we want to pass around, but we could also do the visible main window, or perhaps the owner/parent window shouuld be context-based).
4. Uhmmm... we can probably do this, but what exactly where you going to do with it? Skinning windows? If you just want your plugin to be notified of changes in the underlying data then I think that's what we would be needing to make, some form of notification system.
I am by the way a bit surprised your hacky-way-to-retrieve-the-main-window isn't robust, I've got commercial business-applications running in the wild using such methods to hook into 3rd party closed source stuff. Any things in particular that go wrong?
[edit]Ok, so curse my Delphi background, I never knew that our HInstance and HModule were one and the same thing... So I have been working inside a framework that has abstracted the retrieval of the HModule way from me (at the lowest level, it just looks up the HModule of the address of the function that gets called at initialization using a VirtualQuery). The Delphi Run Time Library is very much proven technology (i.e. it is used in every Delphi DLL around), so I see no compelling reason to do things another way. My suggestion would be we just document such a method (as a 'how to') and put it into any example code as well.[/edit]
[edit2]I've been thinking about this some more, and I am currently leaning towards an optional PluginInitialize method that gets you both the hwnd and hmodule. The fact that Jeroen and me are living inside a framework that makes retrieving the hmodule trivial doesn't justify making the life of developers in other environments harder.[/edit2]. |
|
Back to top |
|
|
jwatte DeleD PRO user
Joined: 26 Apr 2006 Posts: 513
|
Posted: Sun Jun 17, 2007 4:25 pm Post subject: |
|
|
Quote: |
I honestly do not know what you would need your own HModule for inside a DLL |
It's needed to get to your resource file, and to register your own window proc.
However, that was just a brain fart -- the right way to get it is to implement DllMain() and stash it away inside the initialization.
I had a way of getting the main window which looked for a window title containing ".dmf", which broke subtly when 1.6 came out. I just realized why, and now it will work again until ".dxs" is no longer the file format of choice :-)
You may note that the NuXporter plug-in has never been modal, so that's what the hackery is about. You'll also note that some other plug-ins (Lua plug-in, for example) are also not modal -- but those plug-ins typically crash under certain circumstances, because they don't hack enough to get these notifications.
Scene change is a superset of "new window," so that'd be a useful notification, too. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|