[vwnc] [Fwd: Re: 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] [Fwd: Re: Question regarding COM registration of interfaces]

Thomas Brodt
This is a summary of a private communication I had with Josef Springer
from JOOPS that I want to share regarding my initial request.

THomas


> So you just unload the examples, but not the development packages.
> That is the point I wanted to show, that development packages are
> required for deployment of COM interfaces which seems
> counter-intuitive to me.
>
> Would you mind citing this mail in public so that others may profit
> from that, too?
>
> Thanks for sharing your COM knowledge
>
> Thomas
>
>
> Josef Springer schrieb:
>> Hi Thomas,
>>
>> we use COM heavily too. For deployment we unload some defined parcels
>> only with:
>> /Parcel unloadParcelNamed: 'Com- Automation Examples'.
>> Parcel unloadParcelNamed: 'Com- Automation Examples Pools'.
>> Parcel unloadParcelNamed: 'Com- Ole Examples'./
>> We leave the other classes in the image and it works with our
>> interfaces, whitch are loaded in deployment as parcels. From Cincom
>> we got the hint to set the optimazion level for deployment.
>>
>> Best Regrards,
>> Josef Springer
>>
>> Thomas Brodt wrote:
>>> Thanks for the answer, but the problem is not the external interface
>>> class itself, but that I should extend an external interface class
>>> with my vtbl definitions that is in development packages, so the
>>> whole class isn't available in runtime/deployment.
>>>
>>> Thomas
>>>
>>>
>>> Josef Springer schrieb:
>>>> Hi Thomas,
>>>>
>>>> may be you must prepeare the external interfaces for deployment with:
>>>>
>>>> *(Metaclass allInstances select: [:aClass| aClass inheritsFrom:
>>>> ExternalInterface class]) do: [:aClass| aClass soleInstance
>>>> optimizationLevel: #full; fillDefineCachesWithValues].
>>>> *
>>>> Best Regards,
>>>> Josef Springer
>>>>
>>>> Thomas Brodt wrote:
>>>>>
>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>> --
>>
>> mit freundlichen Grüßen / best regards,
>> Josef Springer
>> (Geschäftsleitung/Management)
>>
>> Postal
>>     Address
>>     _Josef.Springer@joops.com_
>>     Orlando-di-Lasso Str. 2
>>     D-85640 Putzbrunn
>> Phone
>>     Office
>>     +49 (0)89 600 6920
>>    
>>    
>> Phone     Fax
>>     +49 (0)89 600 69220
>>    
>>    
>> Web
>>     Web
>>     http://www.joops.com
>>    
>>    
>>
>> JOOPS
>>     (HRB München 86239)
>>
>> *-- the software company --*
>>
>
>
>

--

mit freundlichen Grüßen / best regards,
Josef Springer
(Geschäftsleitung/Management)

Postal
        Address
        _Josef.Springer@joops.com_
        Orlando-di-Lasso Str. 2
        D-85640 Putzbrunn
Phone
        Office
        +49 (0)89 600 6920
       
       
Phone Fax
        +49 (0)89 600 69220
       
       
Web
        Web
        http://www.joops.com
       
       

JOOPS
        (HRB München 86239)

*-- the software company --*


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