Avatar of enigmasolutions
enigmasolutions
 asked on

Using CreateOleObject('Outlook.Application') causes “Server execution failed” error

Hi,

We have written an application in Delphi XE3 that sends emails via Outlook OLE.  FYI - see source code.

It has been working perfectly well for years until I upgraded to Windows 10.

Now I get "Server execution failed" whenever my Outlook 2013 is running.  
Of course it works when Outlook is not running.

It also works when I run both my EXE as well as Outlook as Administrator.  BUT, when I do this outlook complains when I try to create emails (Outlook doens't like being run as Administrator).

Here is a link which explains a lot about what is happening.  http://stackoverflow.com/questions/29338902/using-createoleobjectoutlook-application-causes-server-execution-failed-er

I just want to run my EXE as "normal" and Outlook as "normal" - ie not as administrator.  
But it is not working.  Why?

How can I make sure both processes run in the same security context?
xxx.txt
Windows 10Programming.NET ProgrammingDelphiOutlook

Avatar of undefined
Last Comment
Anastasia D. Gavanas

8/22/2022 - Mon
Anastasia D. Gavanas

Maybe this documentation can help you out:
https://support.microsoft.com/en-us/kb/257757
enigmasolutions

ASKER
Hi xtermie, I couldn't see anything that would help.

How can I determine or set the security context that my program and outlook run in?
ASKER CERTIFIED SOLUTION
Sinisa Vuk

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
enigmasolutions

ASKER
Hi Sinisa,  Your comment looks very good.  My first test to do similar to your idea still did not work.  But I will further investigate the other ideas / links.  Thank you.

This still did not work - the GetActiveOleObject failed.

try
    OutlookApp := GetActiveOleObject('Outlook.Application');
  except
    OutlookApp := CreateOleObject('Outlook.Application');
  end;
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
Anastasia D. Gavanas

Solution provided by experts along with valid suggestions