Shlwapi介绍

Windows中有一个Shlwapi.dll文件,包含了大量的Windows字符串处理方法,这些方法,在通常的程序应用中,经常会用到,有一部分处理方法,在CRuntime中也存在,但不方便使用。有一部分函数,也有相关的Windows API函数,如StrCpy对应的lstrcpy之类的字符串处理函数。从Shlwapi名称看,这个应该是Windows的Shell API函数。


不管怎么说,Shlwapi.dll提供了大量处理Windows字符串的方法,这些方法,可以让你工作更加简便,通常,我们需要获取一个文件名的后缀名,使用MFC的CString查找字符串可以获取,但是麻烦,每个人的实现都不一样,用Shlwapi中提供的函数PathFindExtension直接就返回一个后缀名的指针。

 

Shlwapi主要分为三类函数,第一类是字符串处理函数,通常以Str开头,第二类是路径或者文件夹处理函数,通常以Path开头,第三类是注册表处理函数,通常以SH开头。每一类函数,都要区分A和W。

 

常见的字符串处理函数有:

StrChr ,StrChrI,StrCmpN,StrCmpNI,StrCSpn,StrCSpnI,StrDup,StrFormatByteSize(字节大小格式化),StrFromTimeInterval,StrIsIntlEqual,StrNCat,StrPBrk,StrRChr, StrRChrI,StrRStrI,StrSpn,StrStr,StrStrI,StrToInt,StrToIntEx(可以讲16进制字符串转换为10进制值),StrTrim(删除收尾空字符串),StrCat,StrCmp,StrCpy,ChrCmpI,

 

常见的Path处理函数有:

PathAddBackslash,PathAddExtension,PathAppend,PathBuildRoot, PathCanonicalize,PathCombine,PathCompactPath,PathCompactPathEx,PathCommonPrefix,PathFileExists,PathFindExtension,PathFindFileName(类似与basename中后面部分,获取得到整个文件名), PathFindNextComponent(获取得到除盘符外的所有文件名),PathFindOnPath,PathGetArgs,PathGetCharType,PathGetDriveNumber,PathIsDirectory,PathIsFileSpec(仅有文件名部分,不能够包括:和\符号),PathIsPrefix,PathIsRelative,PathIsRoot,PathIsSameRoot,PathIsUNC,PathIsUNCServer,PathIsUNCServerShare,PathIsContentType,PathIsURL,
PathMakePretty,PathMatchSpec,PathParseIconLocation,PathQuoteSpaces,PathRelativePathTo,PathRemoveArgs,PathRemoveBackslash,PathRemoveBlanks,
PathRemoveExtension,PathRemoveFileSpec,PathRenameExtension,PathSearchAndQualify,PathSetDlgItemPath,PathSkipRoot,PathStripPath,
 PathStripToRoot,PathUnquoteSpaces,PathMakeSystemFolder,PathUnmakeSystemFolder,PathIsSystemFolder

 

常见的注册表处理函数有:

SHDeleteEmptyKey,SHDeleteKey, SHDeleteValue,SHGetValue,SHSetValue,SHQueryValueEx, SHEnumKeyEx,SHEnumValue,SHQueryInfoKey,
SHRegCreateUSKey,SHRegOpenUSKey,SHRegQueryUSValue,SHRegWriteUSValue,SHRegDeleteUSValue,SHRegDeleteEmptyUSKey,SHRegEnumUSKey,
SHRegEnumUSValue,SHRegQueryInfoUSKey,SHRegGetUSValue,SHRegSetUSValue,SHRegGetBoolUSValue,SHOpenRegStream,


其他函数

创建GDI帮助函数

SHCreateShellPalette

 

DLLGETVERSIONPROC指针,用来获取dll的版本号

 

和DllInstall原型定义

STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine); 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ubunoon/archive/2009/11/13/Shlwapi-Instruction.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架

权限系统在任何一个系统中都存在,随着分布式系统的大行其道,权限系统也趋向服务化,对于一个高级工程师来说,权限系统的设计是必不可少需要掌握的技术栈Apache Shiro™是一个功能强大且易于使用的Java安全框架,用于执行…

【RippleNet】(一)preprocessor.py【未完】

首先读入的文件有movie和book和news三种,肯定会选择一种进行解析! 下面我们以movies作为样例分析: 本论文中使用的数据集是movie-1m ratings.dat: 分别是用户::电影::评分&#xff…

LeetCode 961. 重复 N 次的元素

1. 题目 在大小为 2N 的数组 A 中有 N1 个不同的元素,其中有一个元素重复了 N 次。 返回重复了 N 次的那个元素。 示例 1: 输入:[1,2,3,3] 输出:3示例 2: 输入:[2,1,2,5,3,2] 输出:2示例 3&a…

日照华软游戏开发价格_开发区将是未来刚需人群的首选!

开发区真的只是备胎吗?想必在日照人的心目中一定有一张区域排行榜,而排在榜首的一定是东城片区,这是无可厚非的,毕竟东城片区的各项资源是全市其他区域无法抗衡的,然后西城片区、山海天片区、石臼片区……紧随其后,而…

知识图谱论文阅读(十六)【WWW2019】Knowledge Graph Convolutional Networks for Recommender

题目: KGCN 论文链接: 代码链接:https://github.com/hwwang55/KGCN 想法 高阶的意思就是multi-hop的意思注意是从外向里聚合的,第h-1跳是外侧,第h跳是里侧! 所以才有聚合邻居和本身之说 创新 摘要 为了…

LeetCode 925. 长按键入(双指针)

1. 题目 你的朋友正在使用键盘输入他的名字 name。 偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。 如果它对应的可能是你的朋友的名字(其中一些字符可能被长按&#…

java 拉取收件箱邮件源码_邮件提醒系统:新邮件识别

最近在做邮件提醒抄送企业微信消息系统,就目前而言,无论是pop3还是imap都没有一个好的方法只接收新邮件,基本只能依靠收件箱列表message自行判断,下面给出几种思路并作对比。//收件箱 folder store.getFolder("INBOX")…

Jquery 操作select总结

//遍历option和添加、移除optionfunction changeShipMethod(shipping){var len $("select[nameISHIPTYPE] option").lengthif(shipping.value ! "CA"){$("select[nameISHIPTYPE] option").each(function(){if($(this).val() 111){$(this).remo…

知识图谱论文阅读(十七)【WWW2021】DGCN: Diversified Recommendation with Graph Convolutional Networks

本论文是很明显是基于KGCN的! 如果不懂KGCN,可以看我上一篇博文 论文题目: DGCN: Diversified Recommendation with Graph Convolutional Networks 论文链接: 论文代码: https://github.com/tsinghua-fib-lab/DGCN 想…

PKU-3624

代码 //0-1背包问题 如果不使用循环数组&#xff0c;空间越界。#include <stdio.h>intmain(){ intn, v, i, j; intw[3403], p[3403]; intf[12881]; scanf("%d %d", &n, &v); for(i 1; i <n; i) scanf("%d %d", &a…

LeetCode 1309. 解码字母到整数映射

1. 题目 给你一个字符串 s&#xff0c;它由数字&#xff08;‘0’ - ‘9’&#xff09;和 ‘#’ 组成。 我们希望按下述规则将 s 映射为一些小写英文字符&#xff1a; 字符&#xff08;a - i&#xff09;分别用&#xff08;1 - 9&#xff09;表示。 字符&#xff08;j - z&am…

redis如何设置定时过期_redis补充6之Redis 设置过期时间

一般情况下&#xff0c;我们设置保存的缓存数据的时候都会设置一个过期时间。Redis 中有个设置时间过期的功能&#xff0c;即对存储在 Redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库&#xff0c;这是非常实用的。如我们一般项目中的 token 或者一些登录信息&…

知识图谱论文阅读(十八)【KDD2019】AKUPM: Attention-Enhanced Knowledge-Aware User Preference Model for Recommend

论文题目&#xff1a; AKUPM: Attention-Enhanced Knowledge-Aware User Preference Model for Recommendation 论文代码&#xff1a; 论文链接&#xff1a; 想法 什么叫折射到关系空间&#xff1f; &#xff08;添加了一个关系矩阵&#xff0c;但是关系矩阵为啥要加&#xf…

LeetCode 1304. 和为零的N个唯一整数

1. 题目 给你一个整数 n&#xff0c;请你返回 任意 一个由 n 个 各不相同 的整数组成的数组&#xff0c;并且这 n 个数相加和为 0 。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;[-7,-1,1,3,4] 解释&#xff1a;这些数组也是正确的 [-5,-1,1,2,3]&#xff0c;…

vue做混合式app_Vue+原生App混合开发手记#1

项目的大致需求就是做一个App&#xff0c;里面集成各种功能供用户使用&#xff0c;其中涉及到很多Vue的使用方法&#xff0c;单独总结太麻烦&#xff0c;所以通过这几篇笔记来梳理一下。原型图如下&#xff1a;路由配置主界面会用到一些原生App方法&#xff0c;比如验证用户身份…

Android入门第八篇之GridView(九宫图)

GridView跟ListView都是比较常用的多控件布局&#xff0c;而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多&#xff0c;网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter&#xff0c;再供GridView使用&#xff0c;…

(十九)【AAAI2021】Knowledge-Enhanced Hierarchical Graph Transformer Network for Multi-Behavior Recommend

题目&#xff1a; Knowledge-Enhanced Hierarchical Graph Transformer Network for Multi-Behavior Recommendation 论文链接&#xff1a; 代码链接&#xff1a;https://github.com/akaxlh/KHGT 论文 时间戳放入到关系中&#xff0c;可以参考这篇《Heterogeneous graph trans…

LeetCode 1295. 统计位数为偶数的数字

1. 题目 给你一个整数数组 nums&#xff0c;请你返回其中位数为 偶数 的数字的个数。 示例 1&#xff1a; 输入&#xff1a;nums [12,345,2,6,7896] 输出&#xff1a;2 解释&#xff1a; 12 是 2 位数字&#xff08;位数为偶数&#xff09; 345 是 3 位数字&#xff08;位数…

pymysql保存数组_pymysql 读取大数据内存卡死的解决方案

背景&#xff1a;目前表中只有5G(后期持续增长)&#xff0c;但是其中一个字段(以下称为detail字段)存了2M(不一定2M&#xff0c;部分为0&#xff0c;平均下来就是2M)&#xff0c;字段中存的是一个数组&#xff0c;数组中存N个json数据。这个字段如下&#xff1a;[{"A"…

WPF学习笔记-第二周【基本笔刷】

书接上回&#xff0c;这一次&#xff0c;讲的是WPF中的基本笔刷&#xff0c;由于是菜鸟&#xff0c;就不多说了&#xff0c;继续帖示例代码&#xff1a;&#xff09; 第一部份 代码 第二章 基本笔刷 第一个 示例 VaryTheBackgroud P38 1 #regionVaryTheBackgroud P382 3 ///<…