Skip to main content

COM overload methods, and signatures

  • April 17, 2020
  • 2 replies
  • 0 views

Iain Sharp
Forum|alt.badge.img+5

We are trying to add parameters to an existing method in a COM DLL we have written to interface with ms exchange web services. 

In order to preserve compatibility with previous versions of our app, I have tried writing an overlay method, One with the new parameters and one without. 

However, the older versions of the app now return a -150 procerror. 

Is it possible to use overlay methods with the Uniface COM interface? 

Regards, 

Iain

2 replies

Iain Sharp
Forum|alt.badge.img+5
  • Author
  • Inspiring
  • April 17, 2020

We are trying to add parameters to an existing method in a COM DLL we have written to interface with ms exchange web services. 

In order to preserve compatibility with previous versions of our app, I have tried writing an overlay method, One with the new parameters and one without. 

However, the older versions of the app now return a -150 procerror. 

Is it possible to use overlay methods with the Uniface COM interface? 

Regards, 

Iain

I think I've found the answer to this, which is, "yes, if you can work out the mangled function name", which I can't and I suspect I would have to change the code in the old versions of the app to cope. 

So instead, I have renamed the new function in the vb solution, and then changed the literal function name in the signature in the newer version of the app. I've already implemented a code change to call the old function name with the old arguments if the newer DLL is not registered, so it should now allow us to ship either the uniface app or the dll indepentently, with the new function only kicking in when both are shipped. 


Iain



Ingo Stiller
Forum|alt.badge.img+3
  • Participating Frequently
  • April 19, 2020

We are trying to add parameters to an existing method in a COM DLL we have written to interface with ms exchange web services. 

In order to preserve compatibility with previous versions of our app, I have tried writing an overlay method, One with the new parameters and one without. 

However, the older versions of the app now return a -150 procerror. 

Is it possible to use overlay methods with the Uniface COM interface? 

Regards, 

Iain

Hi Iain

here a few basic about name mangeling:

http://www.kegel.com/mangle.html

I do this (mangeling, demangeling of function names) e.g. to help other programers to understand software 🙂

Ingo