Page 1 of 2

Where is the COM+ API?

Posted: Mon Aug 21, 2017 4:55 pm
by at2k21
I'm new to using the ProFormAPI. I have it installed on my development machine and can access ProForm using the classic interface. I am using C# and was thinking that using the strongly typed COM+ dll would be better but ProForm.ProFormAPI does not seem to be registered and calling dllregister on the dll fails. I have introspected into the dll and there don't seem to be any COM+ interfaces. Am I doing something wrong? TIA.

Re: Where is the COM+ API?

Posted: Mon Aug 21, 2017 5:21 pm
by BobRichards
The Select API is .NET compliant and is typically accessed by developers using the C# language. To effectively develop with Select, you need to get a copy of the API SDK from your SoftPro Customer Representative. In response to your desire for a COM interface, below is an excerpt from our SDK Help documentation.

EnvICE is the top level automation object. This is a COM friendly object that allows access to a limited number of shell features. The idea is to provide a simpler API into the shell that is geared towards a different development audience, specifically web developers that may be developing a custom state page. The shell provides a mechanism that allows package developers to contribute their own extension objects to the EnvICE model.

Re: Where is the COM+ API?

Posted: Mon Aug 21, 2017 5:48 pm
by at2k21
Bob,

Thank you for your reply. I think there is some confusion though. I am doing Enterprise development as opposed to Select and the documentation with the API I got is titled.
PROFORM CLASSIC API & COM+ INTERFACE
. It is laid out it three primary sections labeled
ProForm Classic API
,
COM+ Interface
and
Appendix
. The COM+ interface section describes the following:
This section describes the new COM+ interface for creating and manipulating ProForm data files. The
original API interface is also maintained in this new DLL. See the documentation above for a description
of that interface, this section only describes the COM+ interface. The COM+ Object containing the
method interfaces for the API is named “ProForm.ProFormAPI”.
My original question is that what I have doesn't seem to match the documentation and I am wondering if I have the wrong API or maybe it isn't installed correctly. Does this help clarify my question?

Re: Where is the COM+ API?

Posted: Tue Aug 22, 2017 9:19 am
by Gil McNeill
Hello...quick question...

What version of Classic (or STD) are you running? You can check the version by looking at the version info of the properties of softpro.dll.

The STD version does not support the COM+ interface...only the Classic version.

Thanks,

Gil McNeill
Software Engineer

Re: Where is the COM+ API?

Posted: Tue Aug 22, 2017 11:07 am
by at2k21
I checked the softpro.dll from the SDK and in my client folder and they appear to be the same. Neither indicates whether it is Classic or STD. The version number is 30.0.41004.32 and I have included a screenshot of the properties window in case I am missing something. Link to properties window image -->Image https://drive.google.com/file/d/0B3El0T ... sp=sharing

Re: Where is the COM+ API?

Posted: Tue Aug 22, 2017 12:03 pm
by Gil McNeill
Thanks. So..another question...

See attached screenshot. It shows a folder (and the list of files) where I have the API installed locally.

In the folder where you installed the API, do you see the same set of files?

Re: Where is the COM+ API?

Posted: Tue Aug 22, 2017 12:48 pm
by at2k21
Yes, I have the same files and the date modified stamps, sizes are the same.

Re: Where is the COM+ API?

Posted: Tue Aug 22, 2017 1:03 pm
by Gil McNeill
So...if you open a command prompt and navigate to your API folder...

Type regsvr32 ProFormAPI.dll

Does it succeed?

Re: Where is the COM+ API?

Posted: Tue Aug 22, 2017 1:57 pm
by at2k21
That did show a success message but I cannot find the class ProForm.ProFormAPI in the registry. What is the best way to reference this from my C# project? Maybe I am going about this all wrong.

Re: Where is the COM+ API?

Posted: Tue Aug 22, 2017 2:26 pm
by Gil McNeill
I would recommend bypassing COM and just using the DllImport attribute in your C# code. I have attached a sample project that you can use as an example.