[vwnc] Question regarding COM registration of interfaces

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] Question regarding COM registration of interfaces

Thomas Brodt
Hi all

I currently struggle with the fact that COM interfaces are not
initialized properly for deployment loading. I want to load my Com
extensions into a development image, but without requiring the
Com-Ole-Development packages. COM should just load COM deployment
packages, while the image itself is a development image.

I have several interfaces defined in my packages, but of course
implicitly also use basic types as IAnonymous or IUnknown. As
prerequisites I have defined Com-Ole amongst others. Several basic COM
Implementation classes as e.g. IUnknown are packaged in Com-Ole which
seems to be a deployment package in my eyes.

Internal methods like #constructVTableDescription in Com-Ole however use
the shared var VTableSignaturesPool on class COMInterfaceImplementation,
defined in Com-Ole. This shared var is not initialized from within
Com-Ole, but from Com-Ole-Development which contains the Vtbl
descriptions for these IUnknown, etc. So Vtbl descriptions are only
present with Com-Ole-Development loaded. But constructVtableDescription
needs it. Also, class COMInterfaceVTableSignatures should, according to
the docs, contain additional custom interface vtbl, but the class is
defined in Com-Ole-Development. It is therefore not available if only
COM-Ole is loaded. Where do I store my vtbl descriptions at runtime?

Invocations of e.g. the mandatory createInnerUnknown runtime method for
COMObjects invoke a validation that requires the Vtbl descriptions. The
validation has a guard clause of "ImageConfiguration isDevelopment"
which seems insufficient in my case. ImageConfiguration reflects the
global image state of being runtime or development, but does not check
if Com-Development is available.

Now the question: Am I wrong with any of my assumptions above? or are
the Com classes packaged inappropriately? Or am I missing some
pre-deployment step?

Thanks for any comments

Thomas



_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc