Jump to content

Daedalus Service - Alpha Blending Icons for NT4/2000


Recommended Posts

Hello, folks :hello: I've been working intensely on the next version of SmoothText, and I've run into a situation where I really need support for 32-bit icons. So, I've download the Daedalus source and after a lot of Googling I've manged to find the files I need to get it to recompile. I have it running, though so far all I've done is perform a MASSIVE cleanup of the code (and add things like try...finally blocks to try to make it more bulletproof). I don't have much experience with Daedalus but I know that there are some issues with it. If some kind soul would care to put together a concise list of the issues and what I would have to do to reproduce them, maybe I can improve it a bit. I'm still trying to understand how the code works, but now that it's all cleaned up I hope to be able to do something with it.

Why do I need it for SmoothText? I want to add support for custom Explorer toolbar icons, and the ones I want to test with use alpha blending. So this is something I have to deal with.

Link to comment
Share on other sites

Just as an FYI, I've found a couple of bugs in daedalus:

1. In the override for ImageList_Create, the line that changes the flags should read:

Flags := (Flags And (Not ILC_COLORDDB)) Or ILC_COLOR32;

This is because you can use only one ILC_COLORx flag at a time.

2. In TOOLBAR_DrawGrayImage, the line that reads "DeleteObject($FFFFFF);" should read "DeleteObject(timl);".

I'm still tracking down other issues, but fixing those fixed some problems with Windows Explorer.

Link to comment
Share on other sites

In using it I found myself running into the memory leak that people have mentioned that arises when both Daedalus and SmoothText are running. I made another change to Daedalus that I hope will fix the problem. It certainly sped it up considerably. Here's hoping that the leak is gone for good :rolleyes:


Link to comment
Share on other sites

  • 2 weeks later...

It's much faster now. Thanks!

I'd like to point out two bugs i've found.

1) If both 32-bit AND 8-bit images are present inside an icon, Places Bar prefers the 8-bit version no matter what.

2) Title bars in MDI appz like Adobe Photoshop show messed-up icons.

Link to comment
Share on other sites

  • 2 weeks later...

Would you mind posting screenshots?

Here they are:


1) Places bar showing 8-bit icons only.

2) Corrupted child window icon in an MDI app (Photoshop in this case)

3) Folder icons looking weird in taskbar. So far this is the only icon that shows up wrong the whole time, but sometimes icons in taskbar lose their alpha channels for a less than a second when you click them.

Link to comment
Share on other sites

  • 2 weeks later...

I'm doing some digging and it looks like I need to override DefMDIChildProcA/W to get MDI child window icons to render properly. When I override it in SmoothText the icons show up properly, but if I exit SmoothText and only have Daedalus running they get messed up like in your screen shot. Before I release SmoothText 1.0.5, I'll see if overriding it in Daedalus fixes the problem...I want to include Daedalus2 with SmoothText since 32-bit icons in SmoothText skins won't render properly without it.

I almost released SmoothText 1.0.5 last night, but I decided to do some taskbar testing and ran into one more showstopper. Still, it's nearly there. I typed up the change log last night and it's just huge.

Link to comment
Share on other sites

I put Virtual PC 2007 on my Win2k box and installed Windows NT 4.0 on it. With this setup I was able to get Daedalus2 running on it. It was a problem with MMX/SSE/SSE2 support. Apparently NT4 doesn't like using those, so if you have NT4 it uses basic 80406 code instead of the MMX, etc. stuff. The only concern I have is that I'm not seeing Daedalus having any effect on my virtual NT4 installation. Would someone with a real NT4 installation mind testing it out?

I also added some code to trap DefMDiChildProcA/W, and this seems to fix title bar icons on MDI child windows.

The link to Daedalus2 0.0.6 is here:


Link to comment
Share on other sites

Major OOPS! with the last version. Not only didn't I add MDI support properly, it actually broke the Services control panel applet so that you can't stop the service!

I've posted a new version 0.0.7 that has the bug fixed, and it includes instructions for stopping 0.0.6 so you can replace it.

Here is the link to version 0.0.7:


And here are the 0.0.6 uninstall instructions:

To stop the 0.0.6 service, perform the following steps:

a. From the Start Menu, click Run...

b. Enter "cmd" and click Ok. A command prompt window will appear.

c. At the command prompt, type "net stop daedsrvc".

d. Now replace daedalus.dll in your Windows\System32 folder (or WINNT\System32 if that's the case).

e. The Services control panel plugin will be able to start. Start the Daedalus service normally. Optionally, type "net start daedsrvc" at the command prompt you already have open.

Edited by WildBill
Link to comment
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
  • Recently Browsing   0 members

    • No registered users viewing this page.

  • Create New...