当前位置: 首页 > news >正文

CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构

CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构


    // Set up saved column state only if the saved state
    // contains information other than "nothing".

    if (_hdsaColumnStates)
    {
        UINT cStates = DSA_GetItemCount(_hdsaColumnStates);
        if (cStates > 0)
        {
            // 99/02/05 vtan: If there is a saved column state then
            // clear all the column "on" states to "off" and only
            // display what columns are specified. Start at 1 so
            // that name is always on.        把35项的选中标志置OFF

            for (iReal = 1; iReal < GetColumnCount(); iReal++)
            {
                COL_INFO* pci = (COL_INFO*)DSA_GetItemPtr(_hdsaColumns, iReal);
                pci->csFlags &= ~SHCOLSTATE_ONBYDEFAULT;
            }
            //把_hdsaColumnStates的结构对应数组置ON,这里是0,1,2,3,6项的选中标志置ON
            for (UINT i = 0; i < cStates; i++)
            {
                DWORD dw;
                DSA_GetItem(_hdsaColumnStates, i, &dw);
                SetColumnState(dw, SHCOLSTATE_ONBYDEFAULT, SHCOLSTATE_ONBYDEFAULT);
            }
        }
    }

    return S_OK;
}


结果:


1: kd> dt comctl32!_DSA 000d6ba0
   +0x000 cItem            : 0n5
   +0x004 aItem            : 0x000f0210 Void
   +0x008 cItemAlloc       : 0n5
   +0x00c cbItem           : 0n4
   +0x010 cItemGrow        : 0n5
   +0x014 magic            : 0x4153
1: kd> dt 0x000f0210+0x4*0
Symbol not found at address 000f0210.
1: kd> dd 0x000f0210+0x4*0
000f0210  00000000 00000001 00000002 00000003
000f0220  00000006 00000000 00110a50 00094400
000f0230  00050004 000a01bd 801f0014 2559a1f0
000f0240  11d421d7 c000afbd f0b9604f 00000000
000f0250  00040029 000901b1 501f0014 20d04fe0
000f0260  10693aea 0008d8a2 9d30302b 432f0019
000f0270  00005c3a 00000000 00000000 00000000
000f0280  00000000 31006a00 00000000 00000000

1: kd>  dt shell32!COL_INFO 0x1209c0 +0xb0*7
   +0x000 szName           : [80] 0x53
   +0x0a0 cChars           : 0xa
   +0x0a4 fmt              : 0
   +0x0a8 csFlags          : 0x81
   +0x0ac tsFlags          : 0
1: kd>  dt shell32!COL_INFO 0x1209c0 +0xb0*6
   +0x000 szName           : [80] 0x41
   +0x0a0 cChars           : 0xa
   +0x0a4 fmt              : 0
   +0x0a8 csFlags          : 0x11
   +0x0ac tsFlags          : 0
1: kd>  dt shell32!COL_INFO 0x1209c0 +0xb0*5
   +0x000 szName           : [80] 0x44
   +0x0a0 cChars           : 0x14
   +0x0a4 fmt              : 0
   +0x0a8 csFlags          : 0x83
   +0x0ac tsFlags          : 0
1: kd>  dt shell32!COL_INFO 0x1209c0 +0xb0*4
   +0x000 szName           : [80] 0x44
   +0x0a0 cChars           : 0x14
   +0x0a4 fmt              : 0
   +0x0a8 csFlags          : 3
   +0x0ac tsFlags          : 0
1: kd>  dt shell32!COL_INFO 0x1209c0 +0xb0*3
   +0x000 szName           : [80] 0x44
   +0x0a0 cChars           : 0x14
   +0x0a4 fmt              : 0
   +0x0a8 csFlags          : 0x13
   +0x0ac tsFlags          : 0
1: kd>  dt shell32!COL_INFO 0x1209c0 +0xb0*2
   +0x000 szName           : [80] 0x54
   +0x0a0 cChars           : 0x14
   +0x0a4 fmt              : 0
   +0x0a8 csFlags          : 0x11
   +0x0ac tsFlags          : 0
1: kd>  dt shell32!COL_INFO 0x1209c0 +0xb0*1
   +0x000 szName           : [80] 0x53
   +0x0a0 cChars           : 0x10
   +0x0a4 fmt              : 1
   +0x0a8 csFlags          : 0x12
   +0x0ac tsFlags          : 0
1: kd>  dt shell32!COL_INFO 0x1209c0 +0xb0*0
   +0x000 szName           : [80] 0x4e
   +0x0a0 cChars           : 0x1e
   +0x0a4 fmt              : 0
   +0x0a8 csFlags          : 0x11
   +0x0ac tsFlags          : 0

1: kd> db 0x1209c0 +0xb0*0
001209c0  4e 00 61 00 6d 00 65 00-00 00 00 00 00 00 00 00  N.a.m.e.........

1: kd> db 0x1209c0 +0xb0*1
00120a70  53 00 69 00 7a 00 65 00-00 00 00 00 00 00 00 00  S.i.z.e.........

1: kd> db 0x1209c0 +0xb0*2
00120b20  54 00 79 00 70 00 65 00-00 00 00 00 00 00 00 00  T.y.p.e.........

1: kd> db 0x1209c0 +0xb0*3
00120bd0  44 00 61 00 74 00 65 00-20 00 4d 00 6f 00 64 00  D.a.t.e. .M.o.d.
00120be0  69 00 66 00 69 00 65 00-64 00 00 00 00 00 00 00  i.f.i.e.d.......

1: kd> db 0x1209c0 +0xb0*4
00120c80  44 00 61 00 74 00 65 00-20 00 43 00 72 00 65 00  D.a.t.e. .C.r.e.
00120c90  61 00 74 00 65 00 64 00-00 00 00 00 00 00 00 00  a.t.e.d.........

1: kd> db 0x1209c0 +0xb0*5
00120d30  44 00 61 00 74 00 65 00-20 00 41 00 63 00 63 00  D.a.t.e. .A.c.c.
00120d40  65 00 73 00 73 00 65 00-64 00 00 00 00 00 00 00  e.s.s.e.d.......

1: kd> db 0x1209c0 +0xb0*6
00120de0  41 00 74 00 74 00 72 00-69 00 62 00 75 00 74 00  A.t.t.r.i.b.u.t.
00120df0  65 00 73 00 00 00 00 00-00 00 00 00 00 00 00 00  e.s.............

相关文章:

CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构

CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构 // Set up saved column state only if the saved state // contains information other than "nothing". if (_hdsaColumnStates) { UINT cStates DSA_GetItemCount(_hdsaColumnS…...

WPF-数据转换器

一、单值转换器 1.不传参数 转换器 当Value值大于100时返回红色 public class DataConverter : IValueConverter{/// <summary>/// 表示从源到目标数据转换/// </summary>/// <param name"value">数据源的值</param>/// <param name&q…...

09 解决方案 - 开源机器人+具身智能+AI

开源机器人、具身智能(Embodied Intelligence)以及AI技术的结合,可以为机器人领域带来全新的解决方案。以下是这一结合的可能方向和具体方案: 1. 开源机器人平台 开源机器人平台为开发者提供了灵活的基础架构,可以在此基础上结合具身智能和AI技术。以下是一些常用的开源机…...

2025 BabitMF 第一期开源有奖活动正式开启 !

为了促进开源社区的交流与成长&#xff0c;字节跳动开源的多媒体处理框架 BabitMF &#xff08;GitHub - BabitMF/bmf: Cross-platform, customizable multimedia/video processing framework. With strong GPU acceleration, heterogeneous design, multi-language support, e…...

项目管理十大领域是哪些

项目管理的十大领域包括&#xff1a;整合管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、干系人管理。这些领域构成了一个完整的项目管理框架&#xff0c;每个领域都扮演着至关重要的角色&#xff0c;帮助项目经理有效管理项目的…...

期权帮|股指期货的有效止盈止损策略?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 股指期货的有效止盈止损策略? 一、股指期货止盈策略 &#xff08;1&#xff09;固定比例止盈&#xff1a;设定盈利百分比目标&#xff0c;达则止盈。优点&#xff1a;简单&am…...

PCL 基于视椎体裁剪点云

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 基于视椎体裁剪点云,是指根据给定的视锥体(Frustum)参数,剔除视锥体外的点,只保留视锥体内的点。这在三维渲染、点云分割和场景分析中非常有用。如下图所示: 二、实现代码 // 标准文件 #include <iostrea…...

@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)

Mapper(componentModel MappingConstants.ComponentModel.SPRING) 是 **MapStruct** 框架中的一个注解&#xff0c;用于生成基于 Spring 的映射器&#xff08;Mapper&#xff09;实现类。MapStruct 是一个代码生成器&#xff0c;用于简化 Java Bean 之间的映射&#xff08;如 …...

LabVIEW 中的 3dgraph.llb 库

3dgraph.llb 库位于 C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform 目录下&#xff0c;是 LabVIEW 系统中用于 3D 图形相关操作的重要库。它为 LabVIEW 用户提供了丰富的功能&#xff0c;能在应用程序中创建、显示和交互各种 3D 图形&#xff0c;…...

【PHP】php+mysql 活动信息管理系统(源码+论文+数据库+数据库文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 【PHP】php 活动信息管理系统&#xff08;源码论文…...

qt QOpenGLTexture详解

1. 概述 QOpenGLTexture 是 Qt5 提供的一个类&#xff0c;用于表示和管理 OpenGL 纹理。它封装了 OpenGL 纹理的创建、分配存储、绑定和设置像素数据等操作&#xff0c;简化了 OpenGL 纹理的使用。 2. 重要函数 构造函数&#xff1a; QOpenGLTexture(const QImage &image,…...

【时间复杂度和空间复杂度】

常见的时间复杂度 计算方法1、确定输入规模&#xff1a; 输入规模通常用 n 表示&#xff0c;例如数组长度、链表长度等。2、分析算法的执行步骤&#xff1a; 计算每个操作的执行次数。 确定操作的执行次数与输入规模的关系。3、忽略常数和低阶项&#xff1a; 在大O表示法中&am…...

王炸 用AI+飞书 分解 一键生成 项目计划表模版

效果图&#xff1a; 各字段设置&#xff1a; 以下是一个使用 AI&#xff08;DeepSeeker&#xff09; 飞书多维表格分解项目待办模板的示例&#xff0c;你可以根据实际情况进行调整和优化&#xff1a; 列表中需要选择对象&#xff0c;且选择输出结果&#xff08;记得控制字符长度…...

VisionMaster4.4 python脚本 图像处理 转换函数 爱之初体验

最近有接触过一丢丢VM4.3的模块开发. 一直有把python图像处理部分模块移植进来的打算 不过时间不够没来得及折腾.偶尔发现4.4支持py脚本 于是拿来折腾.一下午. 发现4.4支持python脚本,好开心. 首先安装VM4.4 注意一定要是4.4 打开后拖了一个模块. 但是发现import numpy imp…...

线程池的使用 + MD5加密 + 枚举类

文章目录 1、线程池的使用2、MD5算法的使用3、多用枚举类 整理下近期干活儿遇到的一些坑。 1、线程池的使用 不合理点1&#xff1a;jstack线程转储发现&#xff0c;有几万个线程&#xff0c;查看代码发现&#xff0c;线程池放在方法内部或者循环体中创建&#xff0c;尽管方法…...

[qt5学习笔记]Application Example示例程序源码解析

开发环境问题 vs2022下直接打开ui、ts文件失败 解决办法如下图&#xff0c; 设置designer独立运行。估计是嵌入运行存在些许bug。 同理&#xff0c;ts编辑工具linguist也存在这个问题。 qrc rc的编辑嵌入编辑都正常&#xff0c;但分离式更稳定可靠。 qt creator编译失败 原…...

【在时光的棋局中修行——论股市投资的诗意哲学】

在时光的棋局中修行——论股市投资的诗意哲学 引子&#xff1a;数字之海与星辰之约 在经纬交织的K线图里&#xff0c;我常看见银河倾泻的轨迹。那些跳动的数字如同繁星坠落&#xff0c;在午夜时分编织着财富的密码。炒股之道&#xff0c;是理性与诗意的交响&#xff0c;是数据…...

IB网络错误检查工具ibqueryerrors

ibqueryerrors 是一个用于查询 InfiniBand 网络中错误统计信息的工具。它可以帮助网络管理员识别和诊断网络问题&#xff0c;如丢包、重传和其他通信错误。这个工具通常是 InfiniBand 管理软件包的一部分&#xff0c;例如 OpenSM&#xff08;Open Subnet Manager&#xff09;。…...

「vue3-element-admin」Vue3 + TypeScript 项目整合 Animate.css 动画效果实战指南

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …...

论文阅读 DOES END-TO-END AUTONOMOUS DRIVING REALLY NEED PERCEPTION TASKS?

端到端的强势来袭&#xff0c;好久了~~~ 简单翻译&#xff1a;端到端真的需要感知任务嘛&#xff1f; code https://github.com/PeidongLi/SSR. https://arxiv.org/pdf/2409.18341 1. 摘要 端到端自动驾驶&#xff08;E2EAD&#xff09;方法通常依赖于监督式感知任务来提取显…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...