List Info

Thread: Versioning PerlCtrls (revisit after some time...)




Versioning PerlCtrls (revisit after some time...)
country flaguser name
United Kingdom
2007-04-02 14:36:15

Hi,

 

Some time ago I asked the following question (http://aspn.activestate.com/ASPN/Mail/Message/2732322). No one answered then but I remain confused.

 

I am currently doing some maintenance on a PerlCtrl and I am little confused

at what I need to update in the TypeLib.

 

####

=begin PerlCtrl

 

    %TypeLib = (

        PackageName     => ; 'MyPackage::MyName',

        DocString    ;   => ; 'My very own control',

        HelpFileName    => ; 'MyControl.chm',

        HelpContext     => ; 1,

        TypeLibGUID     => ; '{C42CC1CF-4B4D-4944-9115-78D61B8FFB19}', # do

NOT edit this line

        ControlGUID     => ; '{705B2CC2-E404-4CA6-8EF9-E31342E3010D}', # do

NOT edit this line either

        DispInterfaceIID=>  '{846DC658-C2BB-454B-AE43-9CB3E4C2FB16}', # or

this one

        ControlName     => ; 'MyObject',

        ControlVer  ;    => ; 1,  # increment if new object with same ProgID

           ;                   ; # create new GUIDs as well

        ProgID          => ; 'MyApp.MyObject',

 

#####

 

Do I just increment the ControlVer to be 2 and leave it at that or do I

"create new GUIDs"; as the line below seems to indicate? If it is the later

do I do just need to update TypeLibGUID and ControlGUID and leave

DispInferaceIID alone?

 

Thanks in advance,

Dom.

RE: Versioning PerlCtrls (revisit after some time...)
country flaguser name
Canada
2007-04-03 02:31:02

Hi Dominic,

 

You should replace all 3 GUIDs *and* increment the control version.

 

Changing the GUIDs allows you to install both the old and the new control on the same machine.  The MyApp.MyObject will refer to the version that has been registered last, but you can also instantiate your control with a versioned ProgID, as “MyApp.MyObject.1” and “MyApp.MyObject.2”.

 

If you don’t use different GUIDs, then settings from one version will overwrite settings from the other version in the registry.

 

Here is a command to generate 3 new GUIDs for you:

 

perl -MWin32 -le"print Win32::GuidGen for 1..3"

 

Cheers,

-Jan

 

From: pdk-bounceslistserv.ActiveState.com [mailto:pdk-bounceslistserv.ActiveState.com] On Behalf Of Dominic Bush
Sent: April 2, 2007 12:36 PM
To: pdklistserv.ActiveState.com
Subject: Versioning PerlCtrls (revisit after some time...)

 

Hi,

 

Some time ago I asked the following question (http://aspn.activestate.com/ASPN/Mail/Message/2732322). No one answered then but I remain confused.

 

I am currently doing some maintenance on a PerlCtrl and I am little confused

at what I need to update in the TypeLib.

 

####

=begin PerlCtrl

 

    %TypeLib = (

        PackageName     => ; 'MyPackage::MyName',

        DocString    ;   => ; 'My very own control',

        HelpFileName    => ; 'MyControl.chm',

        HelpContext     => ; 1,

        TypeLibGUID     => ; '{C42CC1CF-4B4D-4944-9115-78D61B8FFB19}', # do

NOT edit this line

        ControlGUID     => ; '{705B2CC2-E404-4CA6-8EF9-E31342E3010D}', # do

NOT edit this line either

        DispInterfaceIID=>  '{846DC658-C2BB-454B-AE43-9CB3E4C2FB16}', # or

this one

        ControlName     => ; 'MyObject',

        ControlVer  ;    => ; 1,  # increment if new object with same ProgID

           ;                   ; # create new GUIDs as well

        ProgID          => ; 'MyApp.MyObject',

 

#####

 

Do I just increment the ControlVer to be 2 and leave it at that or do I

"create new GUIDs"; as the line below seems to indicate? If it is the later

do I do just need to update TypeLibGUID and ControlGUID and leave

DispInferaceIID alone?

 

Thanks in advance,

Dom.

RE: Versioning PerlCtrls (revisit after some time...)
country flaguser name
United Kingdom
2007-04-03 03:49:56

Hi Jan,

 

Many thanks for clearing that up for me.

 

Cheers,

Dom.

 

From: Jan Dubois [mailto:jandactivestate.com]
Sent: 03 April 2007 08:31
To: 'Dominic Bush'; pdklistserv.ActiveState.com
Subject: RE: Versioning PerlCtrls (revisit after some time...)

 

Hi Dominic,

 

You should replace all 3 GUIDs *and* increment the control version.

 

Changing the GUIDs allows you to install both the old and the new control on the same machine.  The MyApp.MyObject will refer to the version that has been registered last, but you can also instantiate your control with a versioned ProgID, as “MyApp.MyObject.1” and “MyApp.MyObject.2”.

 

If you don’t use different GUIDs, then settings from one version will overwrite settings from the other version in the registry.

 

Here is a command to generate 3 new GUIDs for you:

 

perl -MWin32 -le"print Win32::GuidGen for 1..3"

 

Cheers,

-Jan

 

From: pdk-bounceslistserv.ActiveState.com [mailto:pdk-bounceslistserv.ActiveState.com] On Behalf Of Dominic Bush
Sent: April 2, 2007 12:36 PM
To: pdklistserv.ActiveState.com
Subject: Versioning PerlCtrls (revisit after some time...)

 

Hi,

 

Some time ago I asked the following question (http://aspn.activestate.com/ASPN/Mail/Message/2732322). No one answered then but I remain confused.

 

I am currently doing some maintenance on a PerlCtrl and I am little confused

at what I need to update in the TypeLib.

 

####

=begin PerlCtrl

 

    %TypeLib = (

        PackageName     => ; 'MyPackage::MyName',

        DocString    ;   => ; 'My very own control',

        HelpFileName    => ; 'MyControl.chm',

        HelpContext     => ; 1,

        TypeLibGUID     => ; '{C42CC1CF-4B4D-4944-9115-78D61B8FFB19}', # do

NOT edit this line

        ControlGUID     => ; '{705B2CC2-E404-4CA6-8EF9-E31342E3010D}', # do

NOT edit this line either

        DispInterfaceIID=>  '{846DC658-C2BB-454B-AE43-9CB3E4C2FB16}', # or

this one

        ControlName     => ; 'MyObject',

        ControlVer  ;    => ; 1,  # increment if new object with same ProgID

           ;                   ; # create new GUIDs as well

        ProgID          => ; 'MyApp.MyObject',

 

#####

 

Do I just increment the ControlVer to be 2 and leave it at that or do I

"create new GUIDs"; as the line below seems to indicate? If it is the later

do I do just need to update TypeLibGUID and ControlGUID and leave

DispInferaceIID alone?

 

Thanks in advance,

Dom.

[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )