protected void RegisterColumn(Guid formatId, int propertyId, string title, uint defaultWidthInCharacters, ListViewAlignment format = ListViewAlignment.Left, ShellColumnState state = ShellColumnState.TypeString) { var columnId = new ShellColumnId { FormatId = formatId, PropertyId = propertyId }; // Note: description field is not used by the shell. var columnInfo = new ShellColumnInfo { ColumnId = columnId, Title = title, DefaultWidthInCharacters = defaultWidthInCharacters, Format = format, State = state | ShellColumnState.Extended | ShellColumnState.SecondaryUI, variantType = 0 }; // Note: VT_LPSTR/VT_BSTR works ok. Other types seems to have issues with sorting. // TODO = VT_BSTR columnInfos.Add(columnInfo); }
protected void RegisterColumn(Guid formatId, int propertyId, string title, uint defaultWidthInCharacters, ListViewAlignment format = ListViewAlignment.Left, ShellColumnState state = ShellColumnState.TypeString) { Contract.Requires(title != null); Contract.Requires(title.Length < ShellColumnInfo.MaxTitleLength); var columnId = new ShellColumnId { FormatId = formatId, PropertyId = propertyId }; // Note: description field is not used by the shell. var columnInfo = new ShellColumnInfo(); columnInfo.ColumnId = columnId; columnInfo.Title = title; columnInfo.DefaultWidthInCharacters = defaultWidthInCharacters; columnInfo.Format = format; columnInfo.State = state | ShellColumnState.Extended | ShellColumnState.SecondaryUI; // Note: VT_LPSTR/VT_BSTR works ok. Other types seems to have issues with sorting. columnInfo.variantType = 0; // TODO = VT_BSTR columnInfos.Add(columnInfo); }
protected void RegisterColumn(string title, uint defaultWidthInCharacters, ListViewAlignment format = ListViewAlignment.Left, ShellColumnState state = ShellColumnState.TypeString) { if (title == null) { throw new ArgumentNullException(nameof(title)); } if (title.Length > ShellColumnInfo.MaxTitleLength) { throw new ArgumentException("title.Length > ShellColumnInfo.MaxTitleLength", nameof(title)); } RegisterColumn(GetStandardFormatIdentifier(), columnInfos.Count, title, defaultWidthInCharacters, format, state); }
protected void RegisterColumn(string title, uint defaultWidthInCharacters, ListViewAlignment format = ListViewAlignment.Left, ShellColumnState state = ShellColumnState.TypeString) { Contract.Requires(title != null); Contract.Requires(title.Length < ShellColumnInfo.MaxTitleLength); RegisterColumn(GetStandardFormatIdentifier(), columnInfos.Count, title, defaultWidthInCharacters, format, state); }