On Thursday, 28 April 2016 at 22:54:10 UTC, Jesse Phillips wrote:
This one doesn't get the values right for the different
versions. The other problem is functions are written as:
void* something(INSTALLMESSAGE arg);
So I could make all the functions take an int/uint or such, but
that is a lot of change for the header along with less
documenting.
Different values depending on target version? That's weird, never
seen anything like that in windows headers.
enum
{
// 12 others ...
INSTALLMESSAGE_INITIALIZE ,
INSTALLMESSAGE_TERMINATE ,
INSTALLMESSAGE_SHOWDIALOG
}
static if(_WIN32_MSI >= 500)
enum
{
INSTALLMESSAGE_PERFORMANCE=15,
INSTALLMESSAGE_RMFILESINUSE
}
else static if(_WIN32_MSI >= 400)
enum INSTALLMESSAGE_RMFILESINUSE=15;
static if(_WIN32_MSI >= 450)
enum
{
INSTALLMESSAGE_INSTALLSTART=INSTALLMESSAGE_RMFILESINUSE+1,
INSTALLMESSAGE_INSTALLEND
}
alias INSTALLMESSAGE=int;