Thanks for the advice Rob.  I've got the directory browsing dialog in
place, but I'm having issues getting my dll to work.

When I hit the Next button in my dialog, I get an 'installer
information' message window that says "There is a problem with this
Windows Installer package.  A DLL required for this install to complete
could not be run."

My dll is mostly a duplicate of the sample custom action example in the
tutorial (http://www.tramontana.co.hu/wix/lesson3.php )

#include "stdafx.h" 
#include <windows.h>
#include <msi.h>
#include <msiquery.h>

#pragma comment(linker,
"/EXPORT:[EMAIL PROTECTED]")
#pragma comment(lib, "msi.lib")

extern "C" UINT __stdcall CheckLicenseFiles (MSIHANDLE hInstall) {
  char Pid[MAX_PATH];
  DWORD PidLen = MAX_PATH;

  MsiGetProperty (hInstall, "MYFOLDER", Pid, &PidLen);
  MsiSetProperty (hInstall, "LicenseFilesFound", "true");
  return ERROR_SUCCESS;
} // CheckLicenseFiles


I have a property MYFOLDER defined, as well as LicenseFilesFound
<Property Id='MYFOLDER' Value='c:\'/>
<Property Id="LicenseFilesFound" Value='false' />



Here's snippet from my dialog:

        <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56"
Height="17" Default="yes" Text="Next">
        <Publish Event="DoAction"
Value="CheckForLicenseFiles">1</Publish>
          <Publish Event="SpawnDialog"
Value="InvalidDirDlg">LicenseFilesFound = "false"</Publish>
        <Publish Event="NewDialog"
Value="SetupTypeDlg">LicenseFilesFound = "true"</Publish>
      </Control>


I have noticed that in Visual Studio the source platform for the dll is
"Win32" as opposed to .NET.  Could that be an issue? I'm entirely
unexperienced with the .NET platform.

Thanks again,
Chris
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Rob
Hamflett
Sent: Tuesday, March 13, 2007 12:47 PM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Locate a required file during an install

Here's a sample of what you're (hopefully) looking for.  As I understand
it, you want the user to 
browse to a directory where getyour existing files are, and then you
want to verify them.  The 
attached include files are put together from a couple of our products,
and have had the usual secret 
stuff sanitised.  So they might not work as-is, but will at least give
you an idea of what you're 
looking for.

In GetExistingFilesDlg the user is prompted for a path.  This value will
be stored in the property 
MYFOLDER.  When they click next, this will call a custom action called
checkFiles.  This will have 
to be a DLL custom action which you need to write.  It will need to get
the MYFOLDER property, look 
for the files, and then write back a property called FILES_EXIST with
"yes" if they exist, and 
something else if they don't.  You need to set [EMAIL PROTECTED] to
'check' or 'ignore' because 
you need the action to finish before the installer continues.  The other
actions attached to the 
'Next' button are based on  the value of FILES_EXIST which you've just
written.  The installation 
will either continue, or the user will get a pop-up dialog.  This is
FilesAbsentDlg.  The user is 
told the files are not there, and clicks OK to go back to
GetExistingFilesDlg.

The mailing list appears to be banning zip files, so I've renamed the
extension to .piz

Rob

P.S. I've not attached the binary files for the background images.

[EMAIL PROTECTED] wrote:
> I'm working on an installer that depends upon files that the user has
> received prior to performing the installation.
> 
> Our current installer (not windows installer based) prompts the user
to
> browse for the location of the files... I'm trying to replicate this,
> but I'm not exactly sure how to go about it.
> 
> On one hand I think I might need a custom action, on the other hand,
> that functionality is already part of WiX (i.e. using
> ConfigurableDirectory in a Feature) I'm not sure if it's accessible in
> the context I'd like, a separate step in the install sequence.
> 
> Can anyone offer a suggestion on the correct course of action?
> 
>
------------------------------------------------------------------------
-
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to
share your
> opinions on IT & business topics through brief surveys-and earn cash
>
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDE
V

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to