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 第一期开源有奖活动正式开启 !
为了促进开源社区的交流与成长,字节跳动开源的多媒体处理框架 BabitMF (GitHub - BabitMF/bmf: Cross-platform, customizable multimedia/video processing framework. With strong GPU acceleration, heterogeneous design, multi-language support, e…...

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

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

PCL 基于视椎体裁剪点云
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 基于视椎体裁剪点云,是指根据给定的视锥体(Frustum)参数,剔除视锥体外的点,只保留视锥体内的点。这在三维渲染、点云分割和场景分析中非常有用。如下图所示: 二、实现代码 // 标准文件 #include <iostrea…...
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
Mapper(componentModel MappingConstants.ComponentModel.SPRING) 是 **MapStruct** 框架中的一个注解,用于生成基于 Spring 的映射器(Mapper)实现类。MapStruct 是一个代码生成器,用于简化 Java Bean 之间的映射(如 …...

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

【PHP】php+mysql 活动信息管理系统(源码+论文+数据库+数据库文件)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 【PHP】php 活动信息管理系统(源码论文…...

qt QOpenGLTexture详解
1. 概述 QOpenGLTexture 是 Qt5 提供的一个类,用于表示和管理 OpenGL 纹理。它封装了 OpenGL 纹理的创建、分配存储、绑定和设置像素数据等操作,简化了 OpenGL 纹理的使用。 2. 重要函数 构造函数: QOpenGLTexture(const QImage &image,…...
【时间复杂度和空间复杂度】
常见的时间复杂度 计算方法1、确定输入规模: 输入规模通常用 n 表示,例如数组长度、链表长度等。2、分析算法的执行步骤: 计算每个操作的执行次数。 确定操作的执行次数与输入规模的关系。3、忽略常数和低阶项: 在大O表示法中&am…...

王炸 用AI+飞书 分解 一键生成 项目计划表模版
效果图: 各字段设置: 以下是一个使用 AI(DeepSeeker) 飞书多维表格分解项目待办模板的示例,你可以根据实际情况进行调整和优化: 列表中需要选择对象,且选择输出结果(记得控制字符长度…...

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:jstack线程转储发现,有几万个线程,查看代码发现,线程池放在方法内部或者循环体中创建,尽管方法…...

[qt5学习笔记]Application Example示例程序源码解析
开发环境问题 vs2022下直接打开ui、ts文件失败 解决办法如下图, 设置designer独立运行。估计是嵌入运行存在些许bug。 同理,ts编辑工具linguist也存在这个问题。 qrc rc的编辑嵌入编辑都正常,但分离式更稳定可靠。 qt creator编译失败 原…...
【在时光的棋局中修行——论股市投资的诗意哲学】
在时光的棋局中修行——论股市投资的诗意哲学 引子:数字之海与星辰之约 在经纬交织的K线图里,我常看见银河倾泻的轨迹。那些跳动的数字如同繁星坠落,在午夜时分编织着财富的密码。炒股之道,是理性与诗意的交响,是数据…...
IB网络错误检查工具ibqueryerrors
ibqueryerrors 是一个用于查询 InfiniBand 网络中错误统计信息的工具。它可以帮助网络管理员识别和诊断网络问题,如丢包、重传和其他通信错误。这个工具通常是 InfiniBand 管理软件包的一部分,例如 OpenSM(Open Subnet Manager)。…...

「vue3-element-admin」Vue3 + TypeScript 项目整合 Animate.css 动画效果实战指南
🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 …...

论文阅读 DOES END-TO-END AUTONOMOUS DRIVING REALLY NEED PERCEPTION TASKS?
端到端的强势来袭,好久了~~~ 简单翻译:端到端真的需要感知任务嘛? code https://github.com/PeidongLi/SSR. https://arxiv.org/pdf/2409.18341 1. 摘要 端到端自动驾驶(E2EAD)方法通常依赖于监督式感知任务来提取显…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...