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;

Reply via email to