Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to use classes from an Accpac DLL?
Message
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Title:
How to use classes from an Accpac DLL?
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01340203
Message ID:
01340203
Views:
274
I wonder if anyone can help me make use of classes in a DLL library?

I want to use the AccpacCOMAPI object, from the A4wcomex.dll, which has classes in it such as AccpacView, AccpacDBLink etc.

I can open the DLL in the Object browser to get this information - the object browser displays the following information about the DLL, together with a list of classes, and lists of methods and properties. Unfortunately I can only seem to find the methods and properties of the object when using it...

Library AccpacCOMAPI
ACCPAC COM API Object 1.0
File: C:\ACCPAC\AAS54A\PROGRAMS\RUNTIME\A4WCOMEX.DLL
Help File: This library doesn't have an associated help file.
GUID: {4E5368A1-A652-11D2-9B94-00104B71EB3F}

My first problem was how to create the AccpacCOMAPI object in VFP. By looking at the registry I figured out that I needed to use Accpac.Session.1, that is the ProgID of the DLL in the registry:

oSession = CREATEOBJECT("Accpac.Session.1")

But now I have my object, it only shows me the methods and properties of the AccpacCOMAPI library, I don't know how to see or use the library's classes, apart from the fact I can view them in the Object browser. For instance, I want to use the class AccpacDBLink, but the closest I can get to using it is to type myLink = oSession.GetDBLink(DBLINK_COMPANY, DBLINK_FLG_READWRITE) - where DBLINK_COMPANY and DBLINK_FLG_READWRITE constants I have defined by looking at the enums of the object.

Now GetDBLink is listed as a method of the class AccpacDBLink, therefore it is also a method of the AccpacCOMAPI library that I can see, and it works perfectly well for me to "bypass" the class and use this method directly, but I am coming unstuck when I want to use a class for which I cannot find a one-to-one relationship with one of the library's methods. I want to create a data object using the class AccpacView, but there is no single equivalent method of AccpacCOMAPI that I can figure out that returns this data object.

So, why can I see classes in the object browser, but they don't appear as classes/methods of the instance of the library that I have created? What vital piece of information do I need to make use of the library object classes, not just it's methods?

I have spent hours trying to figure this out, but I am stumped, and I may have to revert to using VB, where the classes are readily available...

Thanks,
Chris Palmer
Next
Reply
Map
View

Click here to load this message in the networking platform