views:

632

answers:

1

Hi,

I having problems in calling webservice from delphi 7 activex control in Internet Explore 8 while running on machines having window XP service pack 3 .

the active X control works in the following combination

Window XP service pack 3 with IE7 or lower Windows XP service pack 2 with IE 8

currently i use the delphi 7 SOAPHTTPClient.

please help,

thanks in advance

richy

A: 

Hi,

I had same trouble.

On windows XP SP3 Microsoft has increase level of "Data execution prevention" process.

You have 2 solutions :

  • Modify Windows.pas and incluse a new export function SetProcessDEPPolicy from kernel32 and in initialisation function of your activex add SetProcessDEPPolicy(0). But then your activex will worl only if client os is XP SP3, Vista SP1 or W2K8....

  • Or complety disable DEP in boot.ini using "AlwaysOff" flag.

/NOExecute=AlwaysOff. I choosed this solution and now my active x is running good no trouble to call webservices with Httpsoapclient.pas.

Well, if the setProcessDEPPolicy call really helps, you could ofcourse use dynamic loading (loadLibrary, getProcAddress et al) to load it. As opposed to modifying windows.pas, this would make your ActiveX run on both <= XP SP2 and >= XP SP3 OS's.
Paul-Jan