Sorry I send this to the e-mail address alone. it was asked for the
code.
Here we go:
Well if you insist ;-)
the code for the installer library
#include <windows.h>
// #include <strsafe.h>
#include <assert.h>
#include <msi.h>
#include <msiquery.h>
// #include <difxapi.h>
/* just for the DLL one might use a .def file instead */
#undef EXPORT
#define EXPORT __declspec(dllexport)
static void ShowSysErrMsg(DWORD err_code) {
TCHAR buf[512];
DWORD dw_rc;
dw_rc = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
NULL, err_code,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
buf, sizeof(buf), NULL );
if (dw_rc == 0) {
MessageBox(NULL, TEXT("Could not get Error message from
System"),
TEXT("FormatMessage failed"), MB_OK);
} else {
MessageBox(NULL, buf, TEXT("Error Message"), MB_OK
|MB_ICONERROR);
}
}
/* Helper function for printing to the setup.log file or the file
provieded on the command line like e.g
in msiexec /i some_msi_file.msi /* log_file_name.log
*/
static UINT InfoMessage(MSIHANDLE msiHandle, LPCTSTR msg) {
MSIHANDLE hRecord = MsiCreateRecord(1);
/* this magic one means that the record will just consist of
one element in our case just some string */
if (! hRecord) {
MessageBox(NULL, L"Installer", L"Failed to create record",
MB_OK |MB_ICONSTOP);
return 0;
}
MessageBox(NULL, msg, TEXT("Installer message"), MB_OK);
// MsiRecordSetString(hRecord, 0, msg);
// MsiProcessMessage(msiHandle, INSTALLMESSAGE_INFO, hRecord);
MsiCloseHandle(hRecord);
return ERROR_SUCCESS;
}
UINT EXPORT __stdcall Install(MSIHANDLE msiHandle){
InfoMessage(msiHandle, L"Just some text");
return ERROR_SUCCESS;
}
the wxs file
a bit messy because of all the tries to get that installed
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
<Product Id="{05D5A26B-0131-416f-81A6-DC813BA3696A}"
UpgradeCode="{1620D10A-CA26-47fe-AFBE-49CC218D21F8}"
Name="Test Installer" Version="1.0.0"
Manufacturer="Q-Software Solutions" Language="1033">
<Package Id="{22D82036-AEBE-4042-A338-94FA33EE49DB}"
Manufacturer="Q-Software Solutions GmbH"
InstallerVersion="300" Platforms="Intel" Languages="1033"
Compressed="yes" SummaryCodepage="1252" />
<Media Id="1" EmbedCab="yes" Cabinet="SafeFax.cab" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='qss_test' Name='QSSTest' LongName='QSS Test'>
<Component Id="c_dummy"
Guid="{A631B84A-7D5A-4580-9DAB-F7C759DC0C87}">
<File Id="README" Name="README" LongName="README"
Vital="yes" KeyPath="yes" DiskId="1"
Source="README"/>
</Component>
<!--
<Component Id="msvc8_libs"
Guid="{A61A830F-3AB6-4568-A61A-0BCF2E443008}">
<File Id="vc8_manifest" Name="vc8_1"
LongName="Microsoft.VC80.CRT.manifest"
Source="Microsoft.VC80.CRT.manifest"
DiskId="1" />
<File Id="msvcm80.dll" Name="vc8_2" LongName="msvcm80.dll"
Source="msvcm80.dll"
DiskId="1" />
<File Id="msvcp80.dll" Name="vc8_3" LongName="msvcp80.dll"
Source="msvcp80.dll"
DiskId="1" />
<File Id="msvcr80.dll" Name="vc8_2" LongName="msvcr80.dll"
Source="msvcr80.dll"
DiskId="1" />
-->
<!--
<Merge Id="vc8_runtime_policy"
Language="1033"
SourceFile="V:\Program Files\Common Files\Merge
Modules\policy_8_0_Microsoft_VC80_CRT_x86.msm"
DiskId="1" />
<Merge Id="vc8_runtime"
Language="1033"
SourceFile="V:\Program Files\Common Files\Merge
Modules\Microsoft_VC80_CRT_x86.msm"
DiskId="1" />
-->
</Directory>
</Directory>
</Directory>
<Feature Id="DefaultFeature" Level="1" ConfigurableDirectory="TARGETDIR">
<ComponentRef Id="c_dummy" />
<!--
<ComponentRef Id="msvc8_libs" />
<MergeRef Id="vc8_runtime_policy" />
<MergeRef Id="vc8_runtime" />
-->
</Feature>
<InstallExecuteSequence>
<Custom Action='ca_c1' After='InstallFiles'/>
</InstallExecuteSequence>
<Binary Id='ca_c1_dll' SourceFile='t2.dll' />
<CustomAction Id='ca_c1' BinaryKey='ca_c1_dll' DllEntry='[EMAIL PROTECTED]'
/>
</Product>
</Wix>
the marvellous README
Just a dummy file
Not of any use.
Ah yes just to mention it. I have linked the library later statically
and "of course" that has worked....
Howerver I really would like to understand this kind of "stuff".
System is Vista 32-bit (shame one me ;( )
Regards
Friedrich
-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users