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)); }
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); }
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); }
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))); }
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); } }
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; }