Stub DDE interface for Progman.exe

Jeremiah Flerchinger jeremiah.flerchinger at
Fri Feb 6 18:03:14 CST 2009

> Shell32 implements a DDE server that supports the progman interface
> among other things. Explorer or any properly operating shell desktop
> replacement will call the according shell32 export that initializes
> that server. If the progman DDE interface is not available under
> Windows you are not running any proper shell desktop process. Much
> like in Windows 3.1 days where you could replace the progman.exe with
> your own executable too but unless it implemented the progman DDE
> interface too, no progman DDE was available.

Yes you're right. Originally I was wanting to add a shell DDE server to
progman.exe, so it could provide that interface as a shell replacement.
I thought that explorer.exe should have this similarly. I was trying to
think of how Wine's explorer.exe and progman.exe would/could update each
other if both were run at the same time. I doubt there would be many
instances of this being tried & would like to see a single and
persistent shell DDE interface that works first.

> Now if you want to add support for the progman DDE server to Wine
> you will have to improve the stubs in shell32/dde.c. The ShellDDEInit()
> function is already there and the initialization for the "progman",
> "shell" and "folder" service too, but it is missing the implementation
> for all the DDE operations on these services.

Yes, this would be a fine place since the ShellDDEInit in Wine starts a
DDE server that stubs these services. The DDE server has to be running
though. The built-in explorer shell process does not start (or stop) it.
If the server were actually started, then the stubs would actually run &
we could work on fixing them. I'd be happy if we get this single DDE
interface started on initialization so we can work on patching it and
worry about how other replacement shells would interact later.

More information about the wine-devel mailing list