en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en nl en en en en en de en en en en en nl en en en ja de hu en hu de en en en en en en en en en en en en nl en en en en en en en en en en en en en en en en en nl en en en en en en en en en en en nl en en en en en en en en en en en en nl en en en en en en en en en en en nl vi en en en en en en en en en en en en nl en en en en en en en en en en en nl fr en en en en en en en en en de en en en fr en en en en en en en en en pt en en en en en en
By logging into your account, you agree to our Privacy Policy, personal data processing and storage practices as described therein.
Forgot password or user name?
Search in titles only Search in Working with Objects only
You are not logged in. You can browse in the PowerBASIC Community, but you must click Login (top right) before you can post. If this is your first visit, check out the FAQ or Sign Up.
All Time Today Last Week Last Month
All Discussions only Photos only Videos only Links only Polls only Events only
registering a com server
11 Feb 2009, 11:02 AM
What actually is saved in the registry when your register a com server with regsvr32
Join Date: Jan 2000
11 Feb 2009, 12:29 PM
In general, that depends on what code executes in DllRegisterServer. PowerBASIC seems to add this...
Join Date: Jan 2000
11 Feb 2009, 12:35 PM
It seems more standard though to register both a versioned and version independent ProgID. Also, the ProgIDs PowerBASIC puts in the registry don't exactly follow the standard convention of...
This isn't an absolute requirement though, and if you search through the registry you'll find a lot of components that don't follow it. Most do though.
If you look at that CA component James that we were fooling around with a few weeks ago, and you still have it registered, you'll see what I mean. With that component I didn't register a type lib though - just a Clsid, a version independent ProgID, and a versioned ProgID.
The absolute bare minimum though if you want COM Services (SCM) to be able to load it though is a CLSID with a key holding the path to the dll/exe, and a ProgID holding the CLSID key. With only that info though (lacking a typelib entry & typelib), you'll only be able to access it through a vtable.
Last edited by Fred Harris; 11 Feb 2009, 12:46 PM.
Join Date: Aug 1998
11 Feb 2009, 12:47 PM
Ok. thanks Fred. Why I'm asking is when do I actually have to unregister and then register again while I am developing a server. Do I have to if I add or remove methods and properties or only if I add or remove Class/Interfaces?
Join Date: Jan 2000
11 Feb 2009, 01:05 PM
That's a good question. I frequently add and move around debug code without unregistering/re-registering, but that doesn't really change anything critical. I think the answer depends somewhat on the type of access you are making, i.e., early bound / late bound or direct vtable access. Clearly, if you add a interface member, and you are doing early bound or direct vtable calls, that interface description will need to be forward declared and match what is in the dll or naturally you'll get a gpf pretty quick. My guess is that with direct access, if you recompile and call existing interfaces or methods, you won't need to re-register. Try and see.
Join Date: Aug 1998
11 Feb 2009, 01:28 PM
There's the gotcha. Are the problems I encounter during development server side or Client side?? I am aware of vtable order and don't believe that has anything to do with the registry. I just wanted to know what I can change in my server without having to do the un - re .
Join Date: Jan 1980
11 Feb 2009, 03:02 PM
The only thing in the registry that really matters is the ProgID (Class name in PB) and the associated CLSID (GUID). Everything else is defined in the Type Library, not the registry.
Join Date: Aug 1998
11 Feb 2009, 03:14 PM
Join Date: Jan 2000
11 Feb 2009, 04:27 PM
So if you add a class to a pre-existing registered server, then the CLSID for that new class won't be in the registry, nor the ProgID. COM services ( SCM) won't be able to find it. It would be just like when you first compile a dll but don't have it registered yet.
However, if you were doing the LoadLibrary() / GetProcAddress() thing like we were playing with last week or so, you would be able to load it that way, and the CLSID is a parameter to DllGetClassObject(), so you would be 'in like flint'.
Copyright © 1998-2022 PowerBASIC Tools, LLC - All Rights Reserved.
Powered by vBulletin® Version 5.7.0
Copyright © 2022 vBulletin Solutions, Inc. All rights reserved.
All times are GMT-5. This page was generated at 05:10 AM.
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, and to analyze site activity. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.