http://www.cnblogs.com/del/archive/2008/02/28/1085124.html

这是储存字符串的一组 API.
通过 AddAtom 储存一个字符串, 返回一个 ID;
GetAtomName 通过这个 ID 可返回储存的字符串;
还可以用 FindAtom 查找、用 DeleteAtom 删除已储存的字符串.

这个储存区有分本地(程序级)和全局(系统级)两种, 带 Global 前缀的是全局的[但在 Win32 下它们是否还有区别还有待考究].

表中的字符串不分大小写, 如果重名过来, 会增加一个 ID 引用, 但会使用最先来的字符串.


//声明:
AddAtom(
  lpString: PChar {串指针}
): ATOM;          {返回串ID} DeleteAtom(
  nAtom: ATOM    {串ID}
): ATOM;          {返回串ID; 失败返回0} FindAtom(
  lpString: PChar {串指针}
): ATOM;          {返回串ID; 失败返回0} GetAtomName(
  nAtom: ATOM;    {串ID}
  lpBuffer: PChar;{缓冲区}
  nSize: Integer  {缓冲区大小}
): UINT;          {返回串实际长度; 失败返回0} GlobalAddAtom(
  lpString: PChar {串指针}
): ATOM;          {返回串ID} GlobalDeleteAtom(
  nAtom: ATOM    {串ID}
): ATOM;          {返回串ID; 失败返回0} GlobalFindAtom(
  lpString: PChar {串指针}
): ATOM;          {返回串ID; 失败返回0} GlobalGetAtomName(
  nAtom: ATOM;    {串ID}
  lpBuffer: PChar;{缓冲区}
  nSize: Integer  {缓冲区大小}
): UINT;          {返回串实际长度; 失败返回0}

//举例:
var
  n1,n2: ATOM;
  ps: array[..] of Char;
begin
  n1 := AddAtom('万一的 Delphi 博客');
  n2 := AddAtom('万一的 DELPHI 博客');   GetAtomName(n1, ps, );
  ShowMessage(ps); {万一的 Delphi 博客}   GetAtomName(n2, ps, );
  ShowMessage(ps); {万一的 Delphi 博客}
end;

GlobalGetAtomName GlobalDeleteAtom 引用 WinAPI: AddAtom、DeleteAtom、FindAtom、GetAtomName、GlobalAddAtom、GlobalDeleteAtom、GlobalFindAtom、GlobalGetAtomName的更多相关文章

  1. 13 引用WINAPI

            [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetWind ...

  2. c# GlobalAddAtom GlobalDeleteAtom

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. DELPHI下API简述(1800个API)

    DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...

  4. C#封装好的Win32API

    Kernel.cs using System; using System.Runtime.InteropServices; using System.Text; using HANDLE = Syst ...

  5. ApiKernel

    using System; using System.Runtime.InteropServices; using System.Text; using HANDLE = System.IntPtr; ...

  6. Delphi7所使用的WinAPI大全(摘自VCL源码,一共1200个函数)

    经过我整理的,去掉了A和W的重复.虽然没写注释,但以后要一个一个研究.有这些WINAPI就够用了. kernel32 = 'kernel32.dll'; gdi32 = 'gdi32.dll'; us ...

  7. WinAPI【远程注入】三种注入方案【转】

    来源:http://www.cnblogs.com/okwary/archive/2008/12/20/1358788.html 导言: 我 们在Code project(www.codeprojec ...

  8. <转载>无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

    转载http://blog.sina.com.cn/s/blog_6e6c5f230100p92p.html 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引 ...

  9. 使用WinAPI全局热键注册和全局模拟按键

    一.全局热键注册 1.先引用DLL [System.Runtime.InteropServices.DllImport("user32.dll")] //导入WinAPI publ ...

随机推荐

  1. Codeforces 948C Producing Snow(优先队列+思维)

    题目链接:http://codeforces.com/contest/948/problem/C 题目大意:给定长度n(n<=1e5),第一行v[i]表示表示第i堆雪的体积,第二行t[i]表示第 ...

  2. Luogu P2069 【松鼠吃果子】

    推荐一波数组模拟链表的讲解 这道题呢,数组写的话不好删除(因为后面要接过来),自然想到链表 对于一个果子,我们可以维护其前驱和后继,我们不妨记与一个点相邻的上面的点为其前驱,下面的点为其后继 观察到题 ...

  3. (一)问候 Log4j 你好

    第一节: Log4j 简介 Log4j -------- log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务: 在爬虫领域,主要用 ...

  4. gtk+学习笔记(四)

    今天看了下单选按钮的设置,实现起来还是挺简单的,就是自己太不熟练 radio=gtk_radio_button_new_with_label(NULL,"a"); //第一次创建单 ...

  5. 浅析redux

    一 redux 思想 首先,每一个webApp有且只有一个state tree,为方便管理和跟踪state的变化,也为了减少混乱,redux只允许通过发送(dispatch)action的方式来改变s ...

  6. HA下的Spark集群工作原理解密

    实验环境: zookeeper-3.4.6 Spark:1.6.0 简介: 本篇博客将从以下几点组织文章: 一:Spark 构建高可用HA架构 二:动手实战构建高可用HA 三:提交程序测试HA 一:S ...

  7. mvc的cshtml Request取不到值

    如果路径为:http://localhost:2317/food/1,这时用Request["id"]是取不到值的应该用: Request.RequestContext.Route ...

  8. 002 Jupyter-NoteBook工具介绍(网页版编辑器)

    1.Jupyter-NoteBook位置 在安装完anaconda后,这个工具已经被安装完成. 2.打开 3.功能讲解 目录:C:\Users\dell,这个可以看上面控制台上的信息. 4.其余的功能 ...

  9. thinkphp getField()获取一列或一个数据

    在开发中经常要获取一个数据的情况,thinkphp中有一个getField()方法可以解决这个问题. 获取一个数据 1 2 $user = M('demo'); $data = $user->g ...

  10. 安卓代码混淆(Android Studio)

    Proguard是安卓提供的方便开发者对代码和apk进行保护和精简的工具,可在SDK/tools文件夹下找到.   proguard的作用 : 1,代码混淆 2,精简代码,删掉没有用到的代码,减小ap ...