C header file: tagged enumerations
Max Samukha via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Apr 27 11:04:17 PDT 2016
On Tuesday, 26 April 2016 at 22:57:36 UTC, Jesse Phillips wrote:
>
> typedef enum tagINSTALLMESSAGE
> {
> // 12 others ...
> INSTALLMESSAGE_INITIALIZE ,
> INSTALLMESSAGE_TERMINATE ,
> INSTALLMESSAGE_SHOWDIALOG ,
> #if (_WIN32_MSI >= 500)
> INSTALLMESSAGE_PERFORMANCE ,
> #endif // (_WIN32_MSI >= 500)
> #if (_WIN32_MSI >= 400)
> INSTALLMESSAGE_RMFILESINUSE ,
> #endif // (_WIN32_MSI >= 400)
> #if (_WIN32_MSI >= 450)
> INSTALLMESSAGE_INSTALLSTART ,
> INSTALLMESSAGE_INSTALLEND ,
> #endif // (_WIN32_MSI >= 450)
> } INSTALLMESSAGE;
enum _WIN32_MSI = 450;
mixin((int _WIN32_MSI = _WIN32_MSI) {
string r ="enum INSTALLMESSAGE {
INSTALLMESSAGE_INITIALIZE,
INSTALLMESSAGE_TERMINATE,
INSTALLMESSAGE_SHOWDIALOG,";
if (_WIN32_MSI >= 500)
r ~= "INSTALLMESSAGE_PERFORMANCE ,";
if (_WIN32_MSI >= 400)
r ~= "INSTALLMESSAGE_RMFILESINUSE ,";
if (_WIN32_MSI >= 450) {
r ~= "INSTALLMESSAGE_INSTALLSTART ,
INSTALLMESSAGE_INSTALLEND ,";
}
return r ~ "}";
}());
))) // sardonic laugh, which is not part of the source
More information about the Digitalmars-d-learn
mailing list