does anyone have any ideas on how i could convert this over to masm compatable? another non related question is will iczelions LIB2DEF and MLIB utilities do a good job of creating a lib for me. or will i have to assemble one manually?
typedef enum tagINSTALLOGMODE  // bit flags for use with MsiEnableLog and MsiSetExternalUI
{
	INSTALLLOGMODE_FATALEXIT      = (1 << (INSTALLMESSAGE_FATALEXIT      >> 24)),
	INSTALLLOGMODE_ERROR          = (1 << (INSTALLMESSAGE_ERROR          >> 24)),
	INSTALLLOGMODE_WARNING        = (1 << (INSTALLMESSAGE_WARNING        >> 24)),
	INSTALLLOGMODE_USER           = (1 << (INSTALLMESSAGE_USER           >> 24)),
	INSTALLLOGMODE_INFO           = (1 << (INSTALLMESSAGE_INFO           >> 24)),
	INSTALLLOGMODE_RESOLVESOURCE  = (1 << (INSTALLMESSAGE_RESOLVESOURCE  >> 24)),
	INSTALLLOGMODE_OUTOFDISKSPACE = (1 << (INSTALLMESSAGE_OUTOFDISKSPACE >> 24)),
	INSTALLLOGMODE_ACTIONSTART    = (1 << (INSTALLMESSAGE_ACTIONSTART    >> 24)),
	INSTALLLOGMODE_ACTIONDATA     = (1 << (INSTALLMESSAGE_ACTIONDATA     >> 24)),
	INSTALLLOGMODE_COMMONDATA     = (1 << (INSTALLMESSAGE_COMMONDATA     >> 24)),
	INSTALLLOGMODE_PROPERTYDUMP   = (1 << (INSTALLMESSAGE_PROGRESS       >> 24)), // log only
	INSTALLLOGMODE_VERBOSE        = (1 << (INSTALLMESSAGE_INITIALIZE     >> 24)), // log only
	INSTALLLOGMODE_PROGRESS       = (1 << (INSTALLMESSAGE_PROGRESS       >> 24)), // external handler only
	INSTALLLOGMODE_INITIALIZE     = (1 << (INSTALLMESSAGE_INITIALIZE     >> 24)), // external handler only
	INSTALLLOGMODE_TERMINATE      = (1 << (INSTALLMESSAGE_TERMINATE      >> 24)), // external handler only
	INSTALLLOGMODE_SHOWDIALOG     = (1 << (INSTALLMESSAGE_SHOWDIALOG     >> 24)), // external handler only
} INSTALLLOGMODE;

typedef enum tagINSTALLLOGATTRIBUTES // flag attributes for MsiEnableLog
{
	INSTALLLOGATTRIBUTES_APPEND            = (1 << 0),
	INSTALLLOGATTRIBUTES_FLUSHEACHLINE     = (1 << 1),
} INSTALLLOGATTRIBUTES;

typedef enum tagINSTALLFEATUREATTRIBUTE // bit flags
{
	INSTALLFEATUREATTRIBUTE_FAVORLOCAL             = 1 << 0,
	INSTALLFEATUREATTRIBUTE_FAVORSOURCE            = 1 << 1,
	INSTALLFEATUREATTRIBUTE_FOLLOWPARENT           = 1 << 2,
	INSTALLFEATUREATTRIBUTE_FAVORADVERTISE         = 1 << 3,
	INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE      = 1 << 4,
	INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE = 1 << 5,
} INSTALLFEATUREATTRIBUTE;

// Product info attributes: advertised information

#define INSTALLPROPERTY_TRANSFORMS            __TEXT("Transforms")
#define INSTALLPROPERTY_LANGUAGE              __TEXT("Language")
#define INSTALLPROPERTY_PRODUCTNAME           __TEXT("ProductName")
#define INSTALLPROPERTY_ASSIGNMENTTYPE        __TEXT("AssignmentType")
#define INSTALLPROPERTY_PACKAGECODE           __TEXT("PackageCode")
#define INSTALLPROPERTY_VERSION               __TEXT("Version")
#if (_WIN32_MSI >=  110)
#define INSTALLPROPERTY_PRODUCTICON           __TEXT("ProductIcon")
#endif //(_WIN32_MSI >=  110)

// Product info attributes: installed information

#define INSTALLPROPERTY_INSTALLEDPRODUCTNAME  __TEXT("InstalledProductName")
#define INSTALLPROPERTY_VERSIONSTRING         __TEXT("VersionString")
#define INSTALLPROPERTY_HELPLINK              __TEXT("HelpLink")
#define INSTALLPROPERTY_HELPTELEPHONE         __TEXT("HelpTelephone")
#define INSTALLPROPERTY_INSTALLLOCATION       __TEXT("InstallLocation")
#define INSTALLPROPERTY_INSTALLSOURCE         __TEXT("InstallSource")
#define INSTALLPROPERTY_INSTALLDATE           __TEXT("InstallDate")
#define INSTALLPROPERTY_PUBLISHER             __TEXT("Publisher")
#define INSTALLPROPERTY_LOCALPACKAGE          __TEXT("LocalPackage")
#define INSTALLPROPERTY_URLINFOABOUT          __TEXT("URLInfoAbout")
#define INSTALLPROPERTY_URLUPDATEINFO         __TEXT("URLUpdateInfo")
#define INSTALLPROPERTY_VERSIONMINOR          __TEXT("VersionMinor")
#define INSTALLPROPERTY_VERSIONMAJOR          __TEXT("VersionMajor")
thanks smurf This message was edited by smurf, on 7/5/2001 2:00:01 PM
Posted on 2001-07-05 13:58:00 by smurf
smurf, You can convert all "enum" type into any macro assembler EQU directive. I am giving you samples. INSTALLLOGMODE_ERROR = (1 << (INSTALLMESSAGE_ERROR >> 24)) will be converted as INSTALLLOGMODE_ERROR EQU 00000002h I'll explain how it is. INSTALLMESSAGE_ERROR is defined as 0x01000000L. Right shift that value by 24 bit. You'll get 1 since the bit 1 is in 25 bit initially. Now left shift that bit by 1 so you get 2. value 0x01000000L nibble 7654321 6 nibble = 6 * 4 = 24 bits So 1 is in 25th bit. So do that shifting of bits for original values on the right hand side for rest of the enum in INSTALLLOGMODE. The same is applied to rest of the enum types. INSTALLFEATUREATTRIBUTE_FAVORLOCAL = 1 << 0 INSTALLFEATUREATTRIBUTE_FAVORSOURCE = 1 << 1 INSTALLFEATUREATTRIBUTE_FOLLOWPARENT = 1 << 2 INSTALLFEATUREATTRIBUTE_FAVORADVERTISE = 1 << 3 INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE = 1 << 4 INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE = 1 << 5 will be converted as INSTALLFEATUREATTRIBUTE_FAVORLOCAL EQU 1 INSTALLFEATUREATTRIBUTE_FAVORSOURCE EQU 2 INSTALLFEATUREATTRIBUTE_FOLLOWPARENT EQU 4 INSTALLFEATUREATTRIBUTE_FAVORADVERTISE EQU 8 INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE EQU 16 INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE EQU 32 Don't forget that shifting left is multipling the number by 2 to the power of shif value. As far as this one, #define INSTALLPROPERTY_TRANSFORMS __TEXT("Transforms") I will convert this for ANSI into .data INSTALLPROPERTY_TRANSFORMS DB "Transforms", 0 For UNICODE either use STRINGTABLE in resource file or use some macro that can generate the following (I think Ernie has written on macro for this) .data INSTALLPROPERTY_TRANSFORMS DW 'T', 'r', 'a', 'n', 's' DW 'f', 'o', 'r', 'm', 's', 0 Jones.
Posted on 2001-07-06 01:08:00 by sjhenry