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…...
商淘云中英文外贸电商系统,助力传统企业杨帆出海
在全球经济一体化的浪潮下,传统企业纷纷渴望拓展海外市场,寻求新的增长机遇。然而,语言障碍、复杂的跨境交易流程、多元的支付体系以及迥异的消费习惯,如同重重壁垒,阻碍着传统企业扬帆出海的步伐。此时,商…...
--- Mysql事务 ---
什么是事务 因为事务的存在,可以使得多条sql语句一起执行,并且只有全部执行成功或全部执行失败俩种结果,保证了数据的安全,也使得这些sql语句拥有了原子性,隔离性,一致性,持久性(AC…...
FreeRTOS第7篇:内存的“精打细算”——堆管理与内存分配
文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 引言:嵌入式系统的“仓库管理员” 想象你是一家繁忙仓库的管理员:货物(内存块)需要被高效存取,货架(堆空间)必须避免…...
有效市场理论(Efficient Market Hypothesis,简称 EMH):市场真的“有效”吗?中英双语
有效市场理论(EMH):市场真的“有效”吗? 1. 什么是有效市场理论? 📌 有效市场理论(Efficient Market Hypothesis,简称 EMH) 是由美国经济学家 尤金法玛(Eug…...
STM32 HAL库USART串口中断编程:演示数据丢失
目录 一、开发环境 二、配置STM32CubeMX 三、代码实现与部署 四、运行结果: 五、注意事项 上面讨论过,HAL_UART_Receive最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,本文介绍STM32F103 HAL库函数…...
MapReduce的工作原理及其在大数据处理中的应用
MapReduce是一种由Google提出的面向大数据并行处理的计算模型、框架和平台,它通过将复杂的数据处理任务分解为两个简单的阶段——Map(映射)和Reduce(归约),实现了分布式并行计算,极大地提高了数…...
python学opencv|读取图像(六十六)使用cv2.minEnclosingCircle函数实现图像轮廓圆形标注
【1】引言 前序学习过程中,已经掌握了使用cv2.boundingRect()函数实现图像轮廓矩形标注,相关文章链接为:python学opencv|读取图像(六十五)使用cv2.boundingRect()函数实现图像轮廓矩形标注-CSDN博客 这篇文章成功在图…...
SpringCloud系列教程:微服务的未来(二十四)Direct交换机、Topic交换机、声明队列交换机
前言 在现代消息队列系统中,交换机是实现消息传递和路由的核心组件。本文将重点探讨三种常见的交换机类型:Direct交换机、Topic交换机和声明队列交换机。通过对这三种交换机的详细分析,我们将学习它们的工作原理、应用场景以及如何在实际项目…...
云创智城充电系统:基于 SpringCloud 的高可用、可扩展架构详解-多租户、多协议兼容、分账与互联互通功能实现
在新能源汽车越来越普及的今天,充电基础设施的管理和运营变得越来越重要。云创智城充电系统,就像一个超级智能管家,为新能源充电带来了全新的解决方案,让充电这件事变得更方便、更高效、更安全。 一、厉害的技术架构,让…...
iOS事件传递和响应
背景 对于身处中小公司且业务不怎么复杂的程序员来说,很多技术不常用,你可能看过很多遍也都大致了解,但是实际让你讲,不一定讲的清楚。你可能说,我以独当一面,应对自如了,但是技术的知识甚多&a…...
时间序列分析(四)——差分运算、延迟算子、AR(p)模型
此前篇章: 时间序列分析(一)——基础概念篇 时间序列分析(二)——平稳性检验 时间序列分析(三)——白噪声检验 一、差分运算 差分运算的定义:差分运算是一种将非平稳时间序列转换…...
OpenCV机器学习(6)朴素贝叶斯分类器(Naive Bayes Classifier)cv::ml::NormalBayesClassifier的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::ml::NormalBayesClassifier 是 OpenCV 机器学习模块中的一部分,用于实现朴素贝叶斯分类器(Naive Bayes Classifier&a…...
Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
目录 前言1. nginx配置2. 配置minio(Demo要点)3. 实战要点3.1 前端配置3.2 后端配置3.3 应用前言 如何在ruoyi-vue-pro上使用minio上传文件,通过Ngnix再次转发路径 相关的minio推荐阅读: 云服务器中的MinIO 配置 HTTPS 过程(图文)详细分析Java中的Minio类各API(附win配…...
python黑帽子第二版netcat分析
源码 import argparse import socket import shlex import subprocess import sys import textwrap import threadingdef execute(cmd):cmd cmd.strip()if not cmd:returnoutput subprocess.check_output(shlex.split(cmd), stderrsubprocess.STDOUT)return output.decode()…...
【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决
问题描述 我们将Debug版本的安装包发送到手机上安装,会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码: android.injected.testOnlyfalse 最后点击“Sync now”,等待重新加载gradle资源即可 后面我们重新编译Debug安装…...
dify实现分析-rag-文档内容提取
dify实现分析-rag-文档内容提取 概述 在文章《dify实现原理分析-上传文件创建知识库总体流程》中已经介绍了,文件上传后索引构建的总体流程,本文介绍其中的“Extract: 提取文档内容:这里会按段落或整页来获取文档内容”步骤的实现。 这一步的主要功能…...
腾讯云API+chatbox
腾讯云的限时免费接口:知识引擎原子能力 对话-原子能力相关接口-API 中心-腾讯云 本接口调用DeepSeek系列模型限时免费。即日至北京时间2025年2月25日23:59:59,所有腾讯云用户均可享受DeepSeek-V3、DeepSeek-R1模型限时免费服务,单账号限制接…...
sql查询null的时候
SELECT * FROM scm_sku_stock WHERE SKU_CODEGOS2310251620452226 and CONSIGNOR_USER_CODE is null 在 SQL 中,NULL 是一个特殊的值,表示“没有值”或“未知值”。在比较时,NULL 不能直接用 或 ! 来比较。相反,你需要使用 IS N…...
BitLocker技巧与经验
初级代码游戏的专栏介绍与文章目录-CSDN博客 BitLocker是windows默认的存储加密方案,用好了很安全,用错了完蛋。以下来自我的使用经验。 目录 可以加密移动设备 可以加密操作系统分区 TPM是个坑 一定要用微软账号登录并将密钥保存在账号里 不建议使…...
Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档
Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档 本文将对七个流行的定时任务调度库:node-cron、rxjs、bull、node-schedule、agenda、bree、cron。这些库都可以用来处理定时任务,但它们的特点和适用场景有所不同。我们将从…...
数据结构——二叉树(2025.2.12)
目录 一、树 1.定义 (1)树的构成 (2)度 2.二叉树 (1)定义 (2)二叉树的遍历 (3)遍历特性 二、练习 1.二叉树 (1)创建二叉树…...
OpenCV机器学习(5)逻辑回归算法cv::ml::LogisticRegression
OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::ml::LogisticRegression 是 OpenCV 机器学习模块中的一个类,用于实现逻辑回归算法。逻辑回归是一种广泛应用于分类问题的统计方法,特别适合二分类任务。…...
matlab 汽车abs的模糊pid和pid控制仿真
1、内容简介 matlab145-汽车abs的模糊pid和pid控制仿真 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略基于模糊控制的汽车ABS系统仿真研究_刘志敏.caj 汽车ABS模糊控制方法的分析与仿真_李林.caj 汽车ABS模糊控制方法的研究_王文竹.pdf 汽车ABS…...
Flutter 正在推进全新 PlatformView 实现 HCPP, 它又用到了 Android 上的什么黑科技
跨平台开发里的 PlatformView 实现一直是一个经久不衰的话题,在之前的 《深入 Flutter 和 Compose 的 PlatformView 实现对比》 我们就详细聊过 Flutter 和 Compose 在 PlatformView 实现上的异同之处,也聊到了 Compose 为什么在相同实现上对比 Flutter …...
VAS1260IB05E 集成内部开关驱动器的汽车级LED硬灯带高效解决方案
VAS1260IB05E LED芯片是一种连续模式电感降压转换器,设计用于从高于LED电压的电压源高效驱动单个或多个串联连接的LED。该设备在5V至60V之间的输入电源下工作,并提供高达1.2A的外部可调输出电流。包括输出开关和高侧输出电流感测电路,该电路使…...
5.【线性代数】—— 转置,置换和向量空间
五 转置,置换和向量空间 1. 置换矩阵2. 转置矩阵3. 对称矩阵4. 向量空间4.1 向量空间4.2 子空间 1. 置换矩阵 定义: 用于行互换的矩阵P。 之前进行ALU分解时,可能存在该行主元为0,要进行行互换,即PALU 性质࿱…...
前端如何实现一个五星评价,鼠标滑动,前边星星颜色的变黄,后边的不变;
直接上代码 <!DOCTYPE html> <html> <head> <style> .star-rating {display: flex;padding: 10px 0; }.star {position: relative;width: 40px;height: 40px; }.half {position: absolute;top: 0;width: 20px;height: 40px;overflow: hidden;font-siz…...
等差数列有几项--INT_MAX【#include <climits>】
等差数列 题目代码INT_MAX的使用 题目 代码 #include <iostream> #include <vector> #include <string> #include <algorithm> #include <math.h> #include <queue> #include <climits> // 包含INT_MAX常量 #include <cctype&g…...
Linux /dev/null
/dev/null 是 Linux 和类 Unix 系统中一个特殊且非常有用的设备文件,也被称为空设备。下面为你详细介绍它的特点、用途和使用示例。 特点 写入丢弃:当向 /dev/null 写入数据时,这些数据会被立即丢弃,不会被保存到任何地方&#…...
计算机视觉-尺度不变区域
一、尺度不变性 1.1 尺度不变性 找到一个函数,实现尺度的选择特性。 1.2 高斯偏导模版求边缘 1.3 高斯二阶导 用二阶过零点检测边缘 高斯二阶导有两个参数:方差和窗宽(给定方差可以算出窗宽) 当图像与二阶导高斯滤波核能匹配…...
串的基本操作--数据结构
目录 一、串的基本概述 二、串的存储结构 2.1定义属性存储结构 串长有两种表示方法: 1、用一个额外的变量length来存放串的长度; 2、串值后面加一个不计入串长的结束标记字符“\0”,此时的串长为隐含值。 2.2堆的顺序存储结构 三、串的基本操…...
C++17 数学特殊函数:探索标准库中的强大工具
文章目录 1. 什么是数学特殊函数?2. C17 中的特殊函数2.1 贝塞尔函数2.2 勒让德函数2.3 椭圆积分2.4 伽马函数2.5 误差函数 3. 实际应用场景3.1 科学计算3.2 工程应用3.3 数据分析 4. 总结 在 C17 中,标准库引入了一系列数学特殊函数,这些函数…...
多模态特征提取与融合助力高光谱+LiDAR数据分类性能飞跃
目录 论文解读 总体架构 CMIIE 模块工作模式 MLFFC模块工作模式 论文解读 提出了一种新的多模态特征提取模块CMIIE,可以捕获高光谱和LiDAR数据之间的互补信息。设计了一个多层特征融合分类模块MLFFC,通过对不同层级的特征进行融合来提高分类性能。使用对抗学习策略来指导网…...
内容中台重构企业内容管理流程驱动智能协作升级
内容概要 内容中台作为企业数字化转型的核心基础设施,通过技术架构革新与功能模块整合,重构了传统内容管理流程的底层逻辑。其核心价值在于构建动态化、智能化的内容生产与流转体系,将分散的创作、存储、审核及分发环节纳入统一平台管理。基…...
网络安全攻防演练——RT实战技巧篇
前言 又是一年hw招聘季,每年hw行动都会吸引大量网络安全从业者参加。同时也会有很多热爱网络安全但无从下手的网安爱好者参与。笔者旨在对网络安全有想法但是没有方向的师傅做一个简单的方向的了解,让师傅有方向去学习。 RT(红队) 1.引入 首先红队的…...
【MySQL】第六弹---数据库表约束详解:从空属性到主键的全方位指南
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】 目录 1. 表的约束 1.1 空属性 1.2 默认值 1.3 列描述 1.4 zerofill 1.5 主键 1. 表的约束 真正约束字段的是数据类型&…...
JMeter工具介绍、元件和组件的介绍
Jmeter功能概要 JDK常用文件目录介绍 Bin目录:存放可执行文件和配置文件 Docs目录:是Jmeter的API文档,用于开发扩展组件 printable_docs目录:用户帮助手册 lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包…...
vue3 在element-plus表格使用render-header
在vue2中 element表格render-header 源码是有返回h()函数的 在vue3 element-plus 表格源码 render-header函数没有返回h函数了 所以需要用render-header方法中创建虚拟DOM节点的话需要引用h方法 <el-table-column header-align"right" align"right" …...
IM 即时通讯系统-04-聊一聊 IM 要如何进行技术选型
IM 系列 IM 文档开源库 首先,后端技术选型是Java。Java有很多优势,比如跨平台性、丰富的生态系统、高性能和成熟稳定。这些都是为什么选择Java的原因。接下来,前端选用了Vue,因为它具有渐进式框架的特点、响应式数据绑定、组件化…...
机器学习_19 集成学习知识点总结
集成学习(Ensemble Learning)是一种强大的机器学习范式,通过组合多个模型的预测结果来提高整体性能和泛化能力。它在分类、回归和特征选择等任务中表现出色,广泛应用于各种实际问题。今天,我们就来深入探讨集成学习的原…...
自动驾驶---基于深度学习模型的轨迹预测
1 背景 自动驾驶任务中,轨迹预测一直以来是一个难题。 在复杂交通场景中,即使驾驶员最终意图确定,但决策过程中其他车辆的动态行驶路径的即时变化会导致自车路径呈现多模态属性,即车辆的未来轨迹有多种可能性。对车辆的多模态轨迹…...
线性模型 - 二分类问题的损失函数
在二分类问题中,损失函数用于量化模型预测与真实标签之间的差异,以指导模型参数的调整。本文,我们来一起学习一下常见的损失函数及其直观解释。 一、核心二分类损失函数及通俗理解 1. 0-1损失(Zero-One Loss) 公式&…...
string类详解(上)
文章目录 目录1. STL简介1.1 什么是STL1.2 STL的版本1.3 STL的六大组件 2. 为什么学习string类3. 标准库中的string类3.1 string类3.2 string类的常用接口说明 目录 STL简介为什么学习string类标准库中的string类string类的模拟实现现代版写法的String类写时拷贝 1. STL简介 …...
c# —— StringBuilder 类
StringBuilder 类是 C# 和其他一些基于 .NET Framework 的编程语言中的一个类,它位于 System.Text 命名空间下。StringBuilder 类表示一个可变的字符序列,它是为了提供一种比直接使用字符串连接操作更加高效的方式来构建或修改字符串。 与 C# 中的 stri…...
今日行情明日机会——20250217
2025年02月17日行情 后续投资机会分析 根据最新盘面信息,以下板块和个股具备潜在投资机会,需结合市场动态和基本面进一步验证: 1. 腾讯系AI(18家涨停) 核心逻辑:涨停家数最多(18家࿰…...
Openshift或者K8S上部署xxl-job
本案例以版本2.3.0为例 1. 源码编译成jar包 source code: https://github.com/xuxueli/xxl-job/blob/2.3.0/ 这里我们会得到两个jar包:xxl-job-admin-2.3.0.jar和xxl-job-executor-sample-springboot-2.3.0.jar 2. 初始化mysql数据库 sql code: https://github.…...
vite+vue3开发uni-app时低版本浏览器不支持es6语法的问题排坑笔记
重要提示:请首先完整阅读完文章内容后再操作,以免不必要的时间浪费!切记!!!在使用vitevue3开发uni-app项目时,存在低版本浏览器不兼容es6语法的问题,如“?.” “??” 等。为了方便…...
使用 Apache PDFBox 提取 PDF 中的文本和图像
在许多应用中,我们需要从 PDF 文件中提取文本内容和嵌入的图像。为了实现这一目标,Apache PDFBox 是一个非常实用的开源工具库。它提供了丰富的 API,可以帮助我们轻松地读取 PDF 文件、提取其中的文本、图像以及其他资源。 本文将介绍如何使…...
centos7arm架构安装mysql服务
1.安装新版mysql前,需将系统自带的mariadb卸载 rpm -qa|grep mariadb //查找mariadb的rpm包 rpm -e mariadb-libs-5.5.56-2.el7.x86_64 //卸载mariadb包 2.去官网下载对应mysq包https://downloads.mysql.com/archives/community/ 3.解压下载包&…...