[shell-coding] Re: Newbie question : Use Microsoft's DDE server

I have been working on my own shell, and I've noticed that certain control
panel applets also didn't work under my shell, when trying to launch them
using rundll32.exe. I also noticed that the windows Search doesn't work. If
you have an instance of windows explorer open, and right clicking the folder
choose the Search option should bring up the Search dialog. However, at
least with my shell it doesn't, it just errors out, and says it can't find
the path specified... now i just coded up a little test app to call the code
below, i was really hopefull that something like this would take care of my
problem. It didn't, with this code below running, the Search dialog still
doesn't come up, except this time there is nothing... no error messages or
dialogs... lol.
Does anyone have any thoughts on this? Has anyone else run into other things
that don't run correctly under a third party shell?
  -----Original Message-----
  From: shell-coding-bounce@xxxxxxxxxxxxx
[mailto:shell-coding-bounce@xxxxxxxxxxxxx]On Behalf Of Jaykul
  Sent: Thursday, May 01, 2003 9:40 PM
  To: shell-coding@xxxxxxxxxxxxx
  Subject: [shell-coding] Re: Newbie question : Use Microsoft's DDE server


  > ncpa.cpl seems to be the only control panel applet that is affected by
the new shell.


  I can ABSOLUTELY confirm that what you need is a DDE server ...
  However, thanks to tdewolf, I have a better solution ...


  Just run Microsoft's DDE server!
  NOTE: this source is Copyright Tim DeWolf and the GeoShell development
team, 2003
  It is released ONLY under the GPL license, if you want to use it in a NON
GPL shell, you MUST get permission from tdewolf. (#geodev on
irc.freenode.net, or timdewolf [at] hotmail [dot] com )




  // Declares
  HMODULE hmodShDocVw;
  void (__stdcall *ShellDDEInit_shdocvw)(bool bInit) = 0;


  // Initialize DDE
  hmodShDocVw = LoadLibrary("SHDOCVW.DLL");
  if(hmodShDocVw) {
     ShellDDEInit_shdocvw = (void (__stdcall *)(bool))
GetProcAddress(hmodShDocVw, (LPSTR) 118);
  }
  if(ShellDDEInit_shdocvw) {
     ShellDDEInit_shdocvw(true);
  } else {
     MessageBox(NULL, "Unable to start shell DDE.  Can't find procedure",
"Error", MB_ICONERROR);
  }




  // Shutdown DDE
  if(ShellDDEInit_shdocvw)
  {
      ShellDDEInit_shdocvw(false);
      FreeLibrary(hmodShDocVw);
  }




  --
  qotd: Only those who attempt the absurd can achieve the impossible.
  :: Jaykul


  --
  ::Jaykul
  Jaykul@xxxxxxxxxxxxx
  http://fragmentized.com/jaykul

Other related posts: