コード例 #1
0
        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            DetailsTemplateTypeService detailsTemplateTypeService = (DetailsTemplateTypeService)context.GetService(typeof(DetailsTemplateTypeService));
            DetailsTemplateControl     detailsTemplateControl     = (context.Instance as IDetailsTemplateControlBound).DetailsTemplateControl;
            ICollection <string>       controlMAPIAttributes      = detailsTemplateTypeService.MAPIPropertiesDictionary.GetControlMAPIAttributes(detailsTemplateTypeService.TemplateType, detailsTemplateControl.GetAttributeControlType());

            return(new TypeConverter.StandardValuesCollection(controlMAPIAttributes as ICollection));
        }
コード例 #2
0
ファイル: EditControl.cs プロジェクト: YHZX2013/exchange_diff
 internal override DetailsTemplateControl.ControlFlags GetControlFlags()
 {
     DetailsTemplateControl.ControlFlags originalFlags = this.OriginalFlags;
     DetailsTemplateControl.SetBitField(!this.ReadOnly, DetailsTemplateControl.ControlFlags.ReadOnly, ref originalFlags);
     DetailsTemplateControl.SetBitField(this.Multiline, DetailsTemplateControl.ControlFlags.Multiline, ref originalFlags);
     DetailsTemplateControl.SetBitField(this.UseSystemPasswordChar, DetailsTemplateControl.ControlFlags.UseSystemPasswordChar, ref originalFlags);
     DetailsTemplateControl.SetBitField(this.ConfirmationRequired, DetailsTemplateControl.ControlFlags.ConfirmationRequired, ref originalFlags);
     return(originalFlags);
 }
コード例 #3
0
        internal override DetailsTemplateControl.ControlFlags GetControlFlags()
        {
            DetailsTemplateControl.ControlFlags originalFlags = this.OriginalFlags;
            bool flag  = this.scrollBars == ScrollBars.Both || this.scrollBars == ScrollBars.Vertical;
            bool flag2 = this.scrollBars == ScrollBars.Both || this.scrollBars == ScrollBars.Horizontal;

            DetailsTemplateControl.SetBitField(!flag, DetailsTemplateControl.ControlFlags.ReadOnly, ref originalFlags);
            DetailsTemplateControl.SetBitField(!flag2, DetailsTemplateControl.ControlFlags.Multiline, ref originalFlags);
            return(originalFlags);
        }
コード例 #4
0
        private static uint GetMAPIPropTag(DetailsTemplateControl control, MAPIPropertiesDictionary propertiesDictionary)
        {
            if (control.GetControlType() == DetailsTemplateControl.ControlTypes.Button)
            {
                return(ButtonControl.MapiInt);
            }
            string attributeName = control.m_AttributeName;

            if (attributeName == null)
            {
                return(0U);
            }
            AttributeInfo attributeInfo = propertiesDictionary[attributeName];

            if (attributeInfo == null)
            {
                return(0U);
            }
            uint mapiID = (uint)attributeInfo.MapiID;

            return((uint)(control.GetMapiPrefix() | (DetailsTemplateControl.MapiPrefix)(mapiID << 16)));
        }
コード例 #5
0
        private static void AddControl(uint[] data, byte[] blob, MultiValuedProperty <Page> pages, MAPIPropertiesDictionary propertiesDictionary)
        {
            int  x         = (int)data[0];
            int  y         = (int)data[2];
            int  width     = (int)data[1];
            int  height    = (int)data[3];
            int  num       = (int)data[8];
            int  maxLength = (int)data[7];
            uint num2      = data[6];

            DetailsTemplateControl.ControlFlags controlFlags = (DetailsTemplateControl.ControlFlags)data[5];
            string attributeName = propertiesDictionary[(int)(num2 >> 16 & 65535U)] ?? string.Empty;
            string @string       = Encoding.Unicode.GetString(blob, num, DetailsTemplateAdapter.GetNullTerminatedStringLength(blob, num));
            DetailsTemplateControl detailsTemplateControl = null;

            switch (data[4])
            {
            case 0U:
                detailsTemplateControl = new LabelControl();
                break;

            case 1U:
                detailsTemplateControl = new EditControl(controlFlags);
                break;

            case 2U:
                detailsTemplateControl = new ListboxControl(controlFlags);
                break;

            case 5U:
                detailsTemplateControl = new CheckboxControl();
                break;

            case 6U:
                detailsTemplateControl = new GroupboxControl();
                break;

            case 7U:
                detailsTemplateControl = new ButtonControl();
                break;

            case 8U:
                pages.Add(new Page
                {
                    Text        = @string,
                    HelpContext = (int)controlFlags
                });
                break;

            case 11U:
                detailsTemplateControl = new MultiValuedListboxControl();
                break;

            case 12U:
                detailsTemplateControl = new MultiValuedDropdownControl();
                break;
            }
            if (detailsTemplateControl != null)
            {
                if (pages.Count == 0)
                {
                    throw new ParsingException(DirectoryStrings.NoPagesSpecified);
                }
                detailsTemplateControl.X               = x;
                detailsTemplateControl.Y               = y;
                detailsTemplateControl.Width           = width;
                detailsTemplateControl.Height          = height;
                detailsTemplateControl.m_MaxLength     = maxLength;
                detailsTemplateControl.m_AttributeName = attributeName;
                detailsTemplateControl.m_Text          = @string;
                detailsTemplateControl.OriginalFlags   = controlFlags;
                pages[pages.Count - 1].Controls.Add(detailsTemplateControl);
            }
        }
コード例 #6
0
 private static void SetControlToByteArray(byte[] target, ref int controlOffset, ref int captionOffset, DetailsTemplateControl control, MAPIPropertiesDictionary propertiesDictionary)
 {
     uint[] array = new uint[]
     {
         (uint)control.X,
         (uint)control.Width,
         (uint)control.Y,
         (uint)control.Height,
         (uint)control.GetControlType(),
         (uint)control.GetControlFlags(),
         DetailsTemplateAdapter.GetMAPIPropTag(control, propertiesDictionary),
         (uint)control.m_MaxLength
     };
     for (int i = 0; i < array.Length; i++)
     {
         DetailsTemplateAdapter.SetBytesToByteArray(target, controlOffset, DetailsTemplateAdapter.Get4byteFromInt(array[i]));
         controlOffset += 4;
     }
     DetailsTemplateAdapter.SetBytesToByteArray(target, controlOffset, DetailsTemplateAdapter.Get4byteFromInt((uint)captionOffset));
     DetailsTemplateAdapter.SetCaptionToByteArray(target, ref captionOffset, control.m_Text);
     controlOffset += 4;
 }