MAKEMSI quickly and reliably creates MSI files in a non-programmatic way
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
[Bottom][Contents][Prev]: MSI Validation[Next]: ICE Messages and their Resolution
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Building or Updating MSIs->Validations->MSI Validation->MAKEMSI.FLT

MAKEMSI.FLT

The "makemsi.flt" file is used by MAKEMSI during MSI validation processing.

I recommend that it not be modified, if you examine its contents (below) you will see that if you have a "BuildMSI.MM" script then the contents of a file called "BuildMSI.FLT" will be included if it exists.

The "MsiValFilter" command provides an another alternative method for specifying filter lines.

As the "main" filter is identified by the "VALID_FILTER_FILE" macro if you wished to make a global change then copy this filter file to another location, give it a reasonable filename so its obvious what it is and then configure MAKEMSI to use this via the macro.

The following shows the files contents:

;----------------------------------------------------------------------------
;
;    MODULE NAME:   MAKEMSI.FLT
;
;        $Author:   USER "Dennis"  $
;      $Revision:   1.3  $
;          $Date:   07 May 2005 09:10:06  $
;       $Logfile:   C:/DBAREIS/Projects.PVCS/Win32/MakeMsi/MakeMsi.flt.pvcs  $
;----------------------------------------------------------------------------

;----------------------------------------------------------------------------
;--- Only Allow this to be included once ------------------------------------
;----------------------------------------------------------------------------
#ifdef MAKEMSI_FLT_VERSION
   ;--- Some how including it twice! ----------------------------------------
   #eof 1
#endif
#define MAKEMSI_FLT_VERSION 03.073


;----------------------------------------------------------------------------
;--- Process any user defined Filter ----------------------------------------
;----------------------------------------------------------------------------
#DefineRexx ''
   ;--- Get the name of any user filter -------------------------------------
   @@Look4   = '<?InputFile $$FilePart:w>.flt'
   @@UserFlt = FileQueryExists(@@Look4)

   ;--- For MAKEMSI only, a danger, we can include ourselves! ---------------
   if  translate(@@UserFlt) <> translate('<?InputComponent>') then
       @@UserFlt = '';
#DefineRexx
<?SemiColon>###
<?SemiColon>### START USER FILTER: "<??@@Look4>" #####################
<?SemiColon>###
#if [@@UserFlt <> ""]
   ;--- Include the users requirements --------------------------------------
   #if translate(@@UserFlt) <> translate(@@Look4)
       <?SemiColon>--- FULLNAME: "<??@@UserFlt>" ---
   #endif
   #include "<??@@UserFlt>"

   ;--- Display the user filter in the generated report ---------------------
   <$SourceForReport "<??@@UserFlt>">
#elseif
   <?Space>   <?SemiColon>--- No filter found ---
#endif
<?SemiColon>###
<?SemiColon>### END   USER FILTER: "<??@@Look4>" #####################<?NewLine>
<?SemiColon>###
<?NewLine>
<?NewLine>


;----------------------------------------------------------------------------
;--- HOOK before any other processing ---------------------------------------
;----------------------------------------------------------------------------
#ifdef FILTER_START
   ;--- User Hook -----------------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_START" ---
   <$FILTER_START>        ;;#EOF if user filter did everything...
   <?NewLine>
#endif


;----------------------------------------------------------------------------
;--- Ignore "internal errors" -----------------------------------------------
;----------------------------------------------------------------------------
#ifndef FILTER_SEE_ICE_INTERNAL_ERRORS
   <?NewLine>
   /-UNKNOWN   ICE Internal Error/
   /-Based on the tables and columns in your database, it should be marked with a schema between/
   <?NewLine>
   <?NewLine>
#endif


;----------------------------------------------------------------------------
;--- "darice.cub" specific (over W2K validations - "logo.cub") --------------
;----------------------------------------------------------------------------
<?NewLine>
<?NewLine>
/-has a directory that is a public property (ALL CAPS) and is under user profile directory./
/-Property `AdminUser` found in column `ControlCondition`.`Condition`/
/-Property `AdminUser` found in column `ControlEvent`.`Condition`/
/-This product should remove only older versions of itself. No Maximum version was detected for the current product./
/-Upgrade.VersionMin and Upgrade.VersionMax cannot both be null. UpgradeCode is /
;**    [CommentBlockStart     (January 18, 2005 6:14:45 PM EST, Dennis)
;**+----------------------------------------------------------------------
;**|/-WARNING   Mismatched component reference./
;**+----------------------------------------------------------------------
;**    CommentBlockEnd]       (January 18, 2005 6:14:45 PM EST, Dennis)
/-Complete functionality of the MsiFileHash table is only available with Windows Installer version 1.5. Your schema is/


;----------------------------------------------------------------------------
;--- We are just about to pass through ALL ERRORS ---------------------------
;----------------------------------------------------------------------------
<?NewLine>
<?NewLine>
#ifdef FILTER_BEFORE_ERROR_FILTER
   ;--- User filter hook ----------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_BEFORE_ERROR_FILTER" ---
   <$FILTER_BEFORE_ERROR_FILTER>
#endif

;----------------------------------------------------------------------------
;--- Pass through ALL ERRORS ------------------------------------------------
;----------------------------------------------------------------------------
<?NewLine>
<?NewLine>
/+ ERROR /


;----------------------------------------------------------------------------
;--- We just passed through ALL ERRORS --------------------------------------
;----------------------------------------------------------------------------
#ifdef FILTER_AFTER_ERROR_FILTER
   ;--- User filter hook ----------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_AFTER_ERROR_FILTER" ---
   <$FILTER_AFTER_ERROR_FILTER>
   <?NewLine>
#endif


;----------------------------------------------------------------------------
;--- Remove line added by the find.exe filter -------------------------------
;----------------------------------------------------------------------------
/----------/


;----------------------------------------------------------------------------
;--- Remove blank lines -----------------------------------------------------
;----------------------------------------------------------------------------
/-/


;----------------------------------------------------------------------------
;--- Ignore any hard coding of directory locations via property table -------
;----------------------------------------------------------------------------
#ifndef FILTER_NO_WARNING_FOR_HARDCODED_DIRECTORY_ENTRIES
   <?NewLine>
   /- appears to be hardcoded in the property table to a local drive/
#endif


;----------------------------------------------------------------------------
;--- We don't care about "REINSTALLMODE" being in the property table --------
;----------------------------------------------------------------------------
#ifndef FILTER_WANT_WARNING_FOR_RESINSTALLMODE_IN_PROP_TABLE
   <?NewLine>
   /-REINSTALLMODE is defined in the Property table./
#endif

;----------------------------------------------------------------------------
;--- Ignore ASSOCIATION type warnings ---------------------------------------
;----------------------------------------------------------------------------
#ifndef FILTER_NO_WARNING_FOR_SHOULD_BE_REGISTERED_VIA_PROGID
   <?NewLine>
   /- Icon associations should be registered via the ProgId and Icon tables/
   /- Shell extension verbs info should be registered via the Verb table./
   /- should be registered via the ProgId table/
   /-ProgId - CLSID associations should be registered via the ProgId and Class tables/
#endif
#ifndef FILTER_NO_WARNING_FOR_SHOULD_BE_REGISTERED_VIA_EXTENSION
   <?NewLine>
   /- should be registered via the Extension table/
#endif

;--- All other warnings to go through ---------------------------------------
#ifdef FILTER_BEFORE_WARNING_FILTER_ALL
   ;--- User filter hook ----------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_BEFORE_WARNING_FILTER_ALL" ---
   <$FILTER_BEFORE_WARNING_FILTER_ALL>
#endif
/+ WARNING/
#ifdef FILTER_AFTER_WARNING_FILTER_ALL
   ;--- User filter hook ----------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_AFTER_WARNING_FILTER_ALL" ---
   <$FILTER_AFTER_WARNING_FILTER_ALL>
#endif


;--- Probably should never get here... Pass anything else through -----------
<?NewLine>
/+*/


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: MSI Validation[Next]: ICE Messages and their Resolution


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Sunday February 28 2016 at 3:45pm
Visit MAKEMSI's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.