public string GetSmartView(object rawValue)
        {
            int?flagValue = rawValue as int?;

            // TODO: This is really an error condition, should we report it as such?
            if (!flagValue.HasValue)
            {
                return(string.Empty);
            }

            List <BitFlagDefinition> flags = new List <BitFlagDefinition>();

            flags.Add(new BitFlagDefinition(0x0001, "mfRead"));
            flags.Add(new BitFlagDefinition(0x0002, "mfUnmodified"));
            flags.Add(new BitFlagDefinition(0x0004, "mfSubmitted"));
            flags.Add(new BitFlagDefinition(0x0008, "mfUnsent"));
            flags.Add(new BitFlagDefinition(0x0010, "mfHasAttach"));
            flags.Add(new BitFlagDefinition(0x0020, "mfFromMe"));
            flags.Add(new BitFlagDefinition(0x0040, "mfFAI"));
            flags.Add(new BitFlagDefinition(0x0080, "mfResend"));
            flags.Add(new BitFlagDefinition(0x0100, "mfNotifyRead"));
            flags.Add(new BitFlagDefinition(0x0200, "mfNotifyUnread"));
            flags.Add(new BitFlagDefinition(0x2000, "mfInternet"));
            flags.Add(new BitFlagDefinition(0x8000, "mfUntrusted"));

            return(BitFlagsToStringHelper.ToString(flagValue.Value, flags.ToArray()));
        }
        public string GetSmartView(object rawValue)
        {
            List <BitFlagDefinition> flags = new List <BitFlagDefinition>();

            flags.Add(new BitFlagDefinition(0x1, "MAPI_ACCESS_MODIFY"));
            flags.Add(new BitFlagDefinition(0x2, "MAPI_ACCESS_READ"));
            flags.Add(new BitFlagDefinition(0x4, "MAPI_ACCESS_DELETE"));
            flags.Add(new BitFlagDefinition(0x8, "MAPI_ACCESS_CREATE_HIERARCHY"));
            flags.Add(new BitFlagDefinition(0x10, "MAPI_ACCESS_CREATE_CONTENTS"));
            flags.Add(new BitFlagDefinition(0x20, "MAPI_ACCESS_CREATE_ASSOCIATED"));

            return(BitFlagsToStringHelper.ToString(Convert.ToInt32(rawValue), flags.ToArray()));
        }
        public string GetSmartView(object rawValue)
        {
            List <BitFlagDefinition> flags = new List <BitFlagDefinition>();

            flags.Add(new BitFlagDefinition(0x0001, "seOpenToDelete"));
            flags.Add(new BitFlagDefinition(0x0008, "seNoFrame"));
            flags.Add(new BitFlagDefinition(0x0010, "seCoerceToInbox"));
            flags.Add(new BitFlagDefinition(0x0020, "seOpenTocopy"));
            flags.Add(new BitFlagDefinition(0x0040, "seOpenToMove"));
            flags.Add(new BitFlagDefinition(0x0100, "seOpenForCtxMenu"));
            flags.Add(new BitFlagDefinition(0x0400, "seCannotUndoDelete"));
            flags.Add(new BitFlagDefinition(0x0800, "seCannotUndoCopy"));
            flags.Add(new BitFlagDefinition(0x1000, "seCannotUndoMove"));
            flags.Add(new BitFlagDefinition(0x2000, "seHasScript"));
            flags.Add(new BitFlagDefinition(0x4000, "seOpenToPermDelete"));

            return(BitFlagsToStringHelper.ToString(Convert.ToInt32(rawValue), flags.ToArray()));
        }