Started by Frederick J. Harris, December 30, 2011, 08:11:55 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Frederick J. Harris

I only search for external interfaces if the interface that I'm parsing does not inherit directly from IUnknown or IDispatch. For PowerBASIC, I need to parse the external interface because I can't do INHERIT <external interface>, but have to include the methods of that external interface inline.

Also, the function must be recursive because that external interface could inherit from another internal or external interface.

Yes, its slowly becomming clearer to me now.  What you said above would certainly narrow down the amount of searching needing to be done.  You also seem to be saying its not necessary to check interface method parameters to be sure one hasn't come through defined elsewhere?

I believe the question now occurring to me is whether the entirety of the referenced type lib needs to be output, or whether one can just pick and choose from the missing interfaces encountered in the type lib presently being processed?  For example, in the case of index 0 object in the Excel TypeLib which is an IDispatch based interface named Adjustments, its base interface is _IMsoDispObj, as previously described.  And that object is in the Office Dll or type lib, which apparently services in one way or another all or some of the other Office products such as Access, Word, etc.  So its likely there are things in there that have nothing to do with Excel.  If this is the case it doesn't make much sense outputting the entirety of the referenced typelib.  But, what if Interface _IMsoDispObj has a method with a parameter (be it another interface, an enum, or an alias) defined elsewhere in the Office typelib, but not in the Excel typelib?  Then that interface would not compile when its methods were put 'in line' in the Adjustments Interface in the Excel output?  I don't believe that's the case in that specific circumstance, but it appears to me it could happen?