Dmitry Timoshkov [mailto:[EMAIL PROTECTED] wrote:
> "ilmcuts" <[EMAIL PROTECTED]> wrote: > > > Check a Win9x version of shell32.dll; also check > shdocvw.dll (ordinal 118) > > and shdocvw401.dll. One of them exports the function by name on some Win9x > > version. The correct name is "ShellDDEInit". I'm not sure where the true > > implementation is located, but using ordinal 118 from shdocvw.dll works > > beautifully on every windows version which has that DLL. I suspect however > > that it is only a redirect to the true implementation which may be inside > > shell32.dll or somewhere else. *shrug* > > After looking again at the shell32 from win2k SP4 I've found that it really > has the strings used by the progman DDE interface. The reason why I didn't > find the first time is that strings are spread over the code section. So, > yes, it seems that at least the progman DDE interface handler is residing > in shell32. Now the question is: how we should implement it? Just add a > necessary atom "progman" and create a hidden window on dll load event, or > wait for some apparently undocumented API call and initialize only then? Well, I suspect that the first Explorer instance implementing the desktop is probably expected to call that API as well as several others. Ordinal 200 (its current name SHLocalAlloc() is a little bit misleading here) for instance registers a Progman window class and creates a Program Manager window which presumably serves as desktop. It also establishes a link to OLE32 by loading it for later weak linking to its functionality and initializes it by calling OleInitialize() Ordinal 188 as explained earlier registers a GlobalAtom "PROGMAN" as well as registering DDE services for "Progman", "Shell", and "Folders". > P.S. > Rolf, my apologies for not looking carefully enough first time around. No offense taken. I just wondered if I had gotten a special W2K build somehow ;-) Rolf Kalbermatter
