> As long as you expose OS cruft, your wrappers are useless, I'm afraid. > I suggest you to provide safe and meaningful wrappers, e.g. streams, ranges, for concrete business cases which deal with OS directly so that the wrapper won't need flags from user (they are usually encoded in the function name) and know all necessary flags for OS call. Some flags are even win9x legacy and new code should not use them and request only needed access. For example, generic* and maximum* flags are usually never needed and their use is discouraged.
Thanks for the advice, but I wasn't asking about whether my wrappers are useful (they're certainly useful for myself, and that's enough reason for me to make them). I was asking about how to avoid redundancy in enums (it's not like they don't have uses other than access masks...), and this didn't answer the question.