-1

I need to create COM object that will be use by Navision in general. I don't want to make dll since I expect better stability and following architecture looks nice for me.

First of all I was confused by selecting executable/service_executable:

enter image description here

When is better to use one and when another?

Then I need to add ATL object. In service case I have:

enter image description here

What is Custom Interface? Is it ok for Navision? Usually I choose Dual. I suppose I need to check "Automation compatible"

I have following menu when selecting simple executable:

enter image description here

vico
  • 17,051
  • 45
  • 159
  • 315
  • "Custom interface" here means "not derived from `IDispatch`". "Automation compatible" means "method parameters still limited to types that would be valid for an `IDispatch`-based interface": some, but not all, automation clients can still consume such interfaces. What kind of interface Navision needs, I have no idea. – Igor Tandetnik Jan 30 '17 at 15:41

1 Answers1

0
  • Executable(EXE): you need to open a Windows session in order to launch it
  • Service(EXE): service is launched at startup of host (no need to open a Windows session)
  • Dual: inherit from IDispath interface (COM instance can be called with late binding) + vtbl binding. That's why it is called Dual.
  • Custom: user defined interface that uses vtbl binding.(To be called, a proxy/stub has to be provided to the client)
  • Automation interface: inherit from IDispath interface (COM instance can be called with late binding (dynamic invocation))
Jeandey Boris
  • 743
  • 4
  • 9