public properties in deferred

Discussion in 'Microsoft Windows 2000 MSI' started by EP, Dec 9, 2003.

  1. EP

    EP Guest

    Ok, there's tons of posts about this and every answer is "use
    customactiondata".

    I'm working within a merge module. In the InstallUI sequence I have a Set
    Property custom action that sets a public property "DESIGNER_ISDIR".
    Intended to be set to the retargetable directory, for testing I'm giving it
    a string value "TestValue". I've also taken off the module guid a the end
    so in every table it shows up as "DESIGNER_ISDIR". It's got a default init
    value of "9"

    I've inserted it into the installUI sequence, base=ExecuteAction, After=0
    (in moduleinstalluisequence)


    Now I've got a deferred custom action in the installExecute sequence. When
    I call Session.Property("DESIGNER_ISDIR") I am always given a blank value.

    Should I be able to get this value? By naming it as I have it is
    automatically a public property, right?
     
    EP, Dec 9, 2003
    #1
    1. Advertisements

  2. EP

    EP Guest

    by the way, no I can't use the global property "CustomActionData" because
    this is a merge module and it can't interfere with any other custom actions
    that may want to use CustomActionData, and when I get this to work it will
    be done in more than one merge module for a large msi.


    "EP" <> wrote in message
    news:...
    > Ok, there's tons of posts about this and every answer is "use
    > customactiondata".
    >
    > I'm working within a merge module. In the InstallUI sequence I have a Set
    > Property custom action that sets a public property "DESIGNER_ISDIR".
    > Intended to be set to the retargetable directory, for testing I'm giving

    it
    > a string value "TestValue". I've also taken off the module guid a the end
    > so in every table it shows up as "DESIGNER_ISDIR". It's got a default

    init
    > value of "9"
    >
    > I've inserted it into the installUI sequence, base=ExecuteAction, After=0
    > (in moduleinstalluisequence)
    >
    >
    > Now I've got a deferred custom action in the installExecute sequence.

    When
    > I call Session.Property("DESIGNER_ISDIR") I am always given a blank value.
    >
    > Should I be able to get this value? By naming it as I have it is
    > automatically a public property, right?
    >
    >
     
    EP, Dec 9, 2003
    #2
    1. Advertisements

  3. you're misunderstanding ... each custom action's input data
    is passed from the MSI as a different name ... it's only
    when the property is read by the deferred CA that
    it's called CustomActionData.

    That is, when your deferred Custom Action (dll or whatever)
    gets CustomActionData, the info it gets has been passed
    from the MSI as a property whose name is the same as the
    name of the Custom Action.

    Sorry. muddled explanation... let me try to clarify ...

    1. the MSI sets a property called e.g. "AlansCustomData"

    2. then the MSI calls a deferred Custom Action called
    "AlansCustomData" (i.e tha SAME name)

    3. the code inside the deferred custom action (inside
    the dll or whatever) calls the MSI API to get
    the value of the property called CustomActionData
    e.g.
    GetProperty(a_hSession, TEXT("CustomActionData"))

    hth
    alan


    "EP" <> wrote in message news:...
    > Ok, there's tons of posts about this and every answer is "use
    > customactiondata".
    >
    > I'm working within a merge module. In the InstallUI sequence I have a Set
    > Property custom action that sets a public property "DESIGNER_ISDIR".
    > Intended to be set to the retargetable directory, for testing I'm giving it
    > a string value "TestValue". I've also taken off the module guid a the end
    > so in every table it shows up as "DESIGNER_ISDIR". It's got a default init
    > value of "9"
    >
    > I've inserted it into the installUI sequence, base=ExecuteAction, After=0
    > (in moduleinstalluisequence)
    >
    >
    > Now I've got a deferred custom action in the installExecute sequence. When
    > I call Session.Property("DESIGNER_ISDIR") I am always given a blank value.
    >
    > Should I be able to get this value? By naming it as I have it is
    > automatically a public property, right?
    >
    >
     
    alan sinclair, Dec 10, 2003
    #3
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. EP
    Replies:
    1
    Views:
    489
    Kallely Sajan
    Dec 9, 2003
  2. Glenn M

    execute deferred and properties

    Glenn M, Feb 24, 2004, in forum: Microsoft Windows 2000 MSI
    Replies:
    1
    Views:
    2,094
    Stefan Krueger [MVP]
    Feb 26, 2004
  3. Replies:
    4
    Views:
    16,557
    Boris13
    Jul 18, 2008
  4. Viviana Vc

    cancel the uninstaller after a deferred custom action

    Viviana Vc, Nov 24, 2005, in forum: Microsoft Windows 2000 MSI
    Replies:
    8
    Views:
    1,327
    Kalle Olavi Niemitalo
    Nov 28, 2005
  5. Viviana Vc

    install per-machine and Privileged and AdminUser properties

    Viviana Vc, Dec 8, 2005, in forum: Microsoft Windows 2000 MSI
    Replies:
    5
    Views:
    1,573
    Viviana Vc
    Dec 13, 2005
Loading...

Share This Page