windows api记录

type
status
date
slug
tags
summary
category
icon
password

LoadIconA

从与应用程序实例关联的可执行 (.exe) 文件加载指定的图标资源

参数

[in, optional] hInstance
类型: HINSTANCE
DLL 或可执行文件的模块的句柄, (.exe) 包含要加载的图标的文件。 有关详细信息,请参阅 GetModuleHandle
若要加载预定义的系统图标,请将此参数设置为 NULL
[in] lpIconName
类型: LPCTSTR
如果 hInstance 为非 NULL, 则 lpIconName 按名称或序号指定图标资源。 必须使用 MAKEINTRESOURCE 宏打包此序号。
如果 hInstance 为 NULL, 则 lpIconName 将指定标识符 (从要加载的预定义系统图标的 IDI_前缀) 开始 

返回值

类型: HICON
如果函数成功,则返回值是新加载图标的句柄。
如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。
 

RegisterClassExA

注册一个窗口类,以便在调用 CreateWindow 或 CreateWindowEx 函数时使用。

参数

[in] unnamedParam1
类型:const WNDCLASSEX*
指向 WNDCLASSEX 结构的指针。 在将结构传递给函数之前,必须用相应的类属性填充结构。

返回值

类型:ATOM
如果函数成功,则返回值为唯一标识要注册的类的类原子。 此原子只能由 CreateWindowCreateWindowExGetClassInfoGetClassInfoEx使用, FindWindowFindWindowEx和 UnregisterClass 函数和 IActiveIMMap::FilterClientWindows 方法。
如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError
 

CreateWindowExA

创建具有扩展窗口样式的重叠、弹出窗口或子窗口;否则,此函数与 CreateWindow 函数相同。 有关创建窗口以及 CreateWindowEx的其他参数的完整说明的详细信息,请参阅 CreateWindow

语法

C++复制

参数

[in] dwExStyle
类型:DWORD
正在创建的窗口的扩展窗口样式。 有关可能值的列表,请参阅 扩展窗口样式
[in, optional] lpClassName
类型:LPCTSTR
null终止字符串或类原子。
如果 null-terminated 字符串,则指定窗口类名。 类名可以是注册到 RegisterClass 或 RegisterClassEx 函数的任何名称,前提是注册该类的模块也是创建窗口的模块。 类名也可以是任何预定义 系统类 名称。
如果先前调用 RegisterClass 或 RegisterClassEx创建的类 atom,则必须使用宏 MAKEINTATOM进行转换。 (原子必须位于 lpClassName的低序单词中;高阶单词必须为零。
[in, optional] lpWindowName
类型:LPCTSTR
窗口名称。 如果窗口样式指定标题栏,lpWindowName 指向的窗口标题将显示在标题栏中。 使用 CreateWindow 创建控件(如按钮、复选框和静态控件)时,请使用 lpWindowName 指定控件的文本。 使用 SS_ICON 样式创建静态控件时,请使用 lpWindowName 指定图标名称或标识符。 若要指定标识符,请使用语法“#num”。
[in] dwStyle
类型:DWORD
正在创建的窗口的样式。 此参数可以是 窗口样式值的组合,以及“备注”部分中指示的控件样式。
[in] X
类型:int
窗口的初始水平位置。 对于重叠窗口或弹出窗口,x 参数是窗口左上角的初始 x 坐标,以屏幕坐标表示。 对于子窗口,x 是窗口左上角相对于父窗口工作区左上角的 x 坐标。 如果 x 设置为 CW_USEDEFAULT,系统将选择窗口左上角的默认位置,并忽略 y 参数。 CW_USEDEFAULT 仅适用于重叠窗口;如果为弹出窗口或子窗口指定,则 x 和 y 参数设置为零。
[in] Y
类型:int
窗口的初始垂直位置。 对于重叠窗口或弹出窗口,y 参数是窗口左上角的初始 y 坐标,以屏幕坐标表示。 对于子窗口,y 是子窗口左上角相对于父窗口工作区左上角的初始 y 坐标。 对于列表框 y 是列表框工作区左上角相对于父窗口工作区左上角的初始 y 坐标。
如果使用 WS_VISIBLE 样式位设置创建重叠窗口,并将 x 参数设置为 CW_USEDEFAULT,则 y 参数将确定窗口的显示方式。 如果 y 参数 CW_USEDEFAULT,则窗口管理器会在创建窗口后使用 SW_SHOW 标志调用 ShowWindow。 如果 y 参数是一些其他值,则窗口管理器会调用 ShowWindow,该值作为 nCmdShow 参数。
[in] nWidth
类型:int
窗口的宽度(以设备单位为单位)。 对于重叠窗口,nWidth 是窗口的宽度、屏幕坐标或 CW_USEDEFAULT。 如果 nWidth 为 CW_USEDEFAULT,则系统会选择窗口的默认宽度和高度;默认宽度从初始 x 坐标扩展到屏幕右边缘;默认高度从初始 y 坐标扩展到图标区域的顶部。 CW_USEDEFAULT 仅适用于重叠窗口;如果为弹出窗口或子窗口指定了 CW_USEDEFAULT,则 nWidthnHeight 参数设置为零。
[in] nHeight
类型:int
窗口的高度(以设备单位为单位)。 对于重叠窗口,nHeight 是窗口的高度(以屏幕坐标为单位)。 如果 nWidth 参数设置为 CW_USEDEFAULT,则系统将忽略 nHeight 。
[in, optional] hWndParent
类型:HWND
正在创建的窗口的父窗口或所有者窗口的句柄。 若要创建子窗口或拥有的窗口,请提供有效的窗口句柄。 对于弹出窗口,此参数是可选的。
若要创建 仅消息窗口,请向现有仅消息窗口提供 HWND_MESSAGE 或句柄。
[in, optional] hMenu
类型:HMENU
菜单的句柄,或指定子窗口标识符,具体取决于窗口样式。 对于重叠或弹出窗口,hMenu 标识要与窗口一起使用的菜单;如果要使用类菜单,它可以 NULL。 对于子窗口,hMenu 指定子窗口标识符,这是对话框控件用来通知其父级事件的整数值。 应用程序确定子窗口标识符;对于具有相同父窗口的所有子窗口,它必须是唯一的。
[in, optional] hInstance
类型:HINSTANCE
要与窗口关联的模块实例的句柄。
[in, optional] lpParam
类型:LPVOID
指向通过 CREATESTRUCT 结构(lpCreateParams 成员)指向的值的指针,该参数由 WM_CREATE 消息的 lParam 参数指向。 此消息在返回之前由此函数发送到创建的窗口。
如果应用程序调用 CreateWindow 来创建 MDI 客户端窗口,lpParam 应指向 CLIENTCREATESTRUCT 结构。 如果 MDI 客户端窗口调用 CreateWindow 创建 MDI 子窗口,lpParam 应指向 MDICREATESTRUCT 结构。 如果不需要其他数据,lpParam 可能会 NULL

返回值

类型:HWND
如果函数成功,则返回值是新窗口的句柄。
如果函数失败,则返回值 NULL。 若要获取扩展的错误信息,请调用 GetLastError
此函数通常因以下原因之一而失败:
  • 无效的参数值
  • 系统类由其他模块注册
  • WH_CBT 挂钩已安装并返回失败代码
  • 如果未注册对话框模板中的控件之一,或者其窗口窗口过程 WM_CREATE 或 WM_NCCREATE
 
 

ShowWindow

参数

[in] hWnd
类型:HWND
窗口的句柄。
[in] nCmdShow
类型: int
控制窗口的显示方式。 如果启动应用程序的程序提供 STARTUPINFO 结构,则应用程序首次调用 ShowWindow 时将忽略此参数。 否则,首次调用 ShowWindow 时,该值应为 WinMain 函数在其 nCmdShow 参数中获取的值。

返回值

类型: BOOL
如果窗口以前可见,则返回值为非零值。
如果以前隐藏窗口,则返回值为零。
 

GetMessageA

从调用线程的消息队列中检索消息。 该函数调度传入的已发送消息,直到发布的消息可供检索。
与 getMessage 不同,PeekMessage 函数不会等待在返回之前发布消息。

参数

[out] lpMsg
类型:LPMSG
指向从线程的消息队列接收消息信息的 MSG 结构的指针。
[in, optional] hWnd
类型:HWND
要检索其消息的窗口的句柄。 窗口必须属于当前线程。
如果 hWndNULL,则 GetMessage 检索属于当前线程的任何窗口的消息,以及当前线程的消息队列上 hwnd 值 NULL 的任何消息(请参阅 MSG 结构)。 因此,如果 hWnd NULL,则会处理窗口消息和线程消息。
如果 hWnd 为 -1,GetMessage 仅检索当前线程的消息队列中的消息,其 hwnd值为 null,即 PostMessage 发布的线程消息(当 hWnd 参数 NULL时)或 PostThreadMessage
[in] wMsgFilterMin
类型:UINT
要检索的最低消息值的整数值。 使用 WM_KEYFIRST(0x0100)指定第一条键盘消息或 WM_MOUSEFIRST(0x0200)来指定第一条鼠标消息。
在此处和 wMsgFilterMax 中使用 WM_INPUT 来仅指定 WM_INPUT 消息。
如果 wMsgFilterMin 和 wMsgFilterMax 均为零,GetMessage 将返回所有可用消息(即,不执行范围筛选)。
[in] wMsgFilterMax
类型:UINT
要检索的最高消息值的整数值。 使用 WM_KEYLAST 指定最后一条键盘消息或 WM_MOUSELAST 指定最后一条鼠标消息。
在此处和 wMsgFilterMin 中使用 WM_INPUT 来仅指定 WM_INPUT 消息。
如果 wMsgFilterMin 和 wMsgFilterMax 均为零,GetMessage 将返回所有可用消息(即,不执行范围筛选)。

返回值

类型:BOOL
如果函数检索非 WM_QUIT的消息,则返回值为非零。
如果函数检索 WM_QUIT 消息,则返回值为零。
如果出现错误,则返回值为 -1。 例如,如果 hWnd 是无效的窗口句柄或 lpMsg 是无效指针,则函数将失败。 若要获取扩展的错误信息,请调用 GetLastError
 

TranslateMessage

将虚拟密钥消息转换为字符消息。 字符消息将发布到调用线程的消息队列,以便下次线程调用 GetMessage 或 PeekMessage 函数时读取。

参数

[in] lpMsg
类型: const MSG*
指向 MSG 结构的指针,该结构包含使用 GetMessage 或 PeekMessage 函数从调用线程的消息队列检索到的消息信息。

返回值

类型: BOOL
如果消息 (转换,即字符消息将发布到线程的消息队列) ,则返回值为非零值。
如果消息WM_KEYDOWN、WM_KEYUPWM_SYSKEYDOWNWM_SYSKEYUP,则无论转换如何,返回值都是非零值。
如果消息未 (也就是说,字符消息不会发布到线程的消息队列) ,则返回值为零。
 

DispatchMessageA

参数

[in] lpMsg
类型:const MSG*
指向包含消息的结构的指针。

返回值

类型:LRESULT
返回值指定窗口过程返回的值。 虽然其含义取决于正在调度的消息,但通常忽略返回值。
 
 

ExpandEnvironmentStringsA

展开环境变量字符串,并将其替换为为当前用户定义的值。

参数

[in] lpSrc
包含一个或多个环境变量字符串的缓冲区:%variableName%。 对于每个此类引用,%variableName% 部分将替换为该环境变量的当前值。
查找环境变量名称时,将忽略大小写。 如果未找到该名称,则 %variableName% 部分将保持未展开状态。
请注意,此函数不支持 Cmd.exe 支持的所有功能。 例如,它不支持 %variableNamestr1=str2% 或 %variableName:~偏移量长度%。
[out, optional] lpDst
指向接收 lpSrc 缓冲区中环境变量字符串扩展结果的缓冲区的指针。 请注意,此缓冲区不能与 lpSrc 缓冲区相同。
[in] nSize
lpDst 参数指向的缓冲区中存储的最大字符数。 使用 ANSI 字符串时,缓冲区大小应为字符串长度,加上终止 null 字符以及一个。 使用 Unicode 字符串时,缓冲区大小应为字符串长度加上终止 null 字符。

返回值

如果函数成功,则返回值为目标缓冲区中存储的 TCHAR 数,包括终止 null 字符。 如果目标缓冲区太小而无法容纳扩展字符串,则返回值是所需的缓冲区大小(以字符为单位)。
如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError
 

CreateFileA 

创建或打开文件或 I/O 设备。 最常用的 I/O 设备如下所示:文件、文件流、目录、物理磁盘、卷、控制台缓冲区、磁带驱动器、通信资源、mailslot 和管道。 该函数返回一个句柄,该句柄可用于访问各种类型的 I/O 的文件或设备,具体取决于文件或设备以及指定的标志和属性。

参数

[in] lpFileName
要创建或打开的文件或设备的名称。 可以在此名称中使用正斜杠 (/) 或反斜杠 (\)。
默认情况下,名称限制为MAX_PATH个字符。 若要将此限制扩展到 32,767 宽字符,请将“\\?\”前面追加到路径。

返回值

如果函数成功,则返回值是指定文件、设备、命名管道或邮件槽的打开句柄。
如果函数失败,则返回值为 INVALID_HANDLE_VALUE。
 

getFileSizeEx 

检索指定文件的大小

参数

[in] hFile
文件的句柄。 句柄必须已使用 FILE_READ_ATTRIBUTES 访问权限或等效项创建,或者调用方必须对包含该文件的目录具有足够的权限。

返回值

如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
 

ReadFile

参数

[in] hFile
设备的句柄(例如文件、文件流、物理磁盘、卷、控制台缓冲区、磁带驱动器、套接字、通信资源、mailslot 或管道)。
必须使用读取访问权限创建 hFile 参数。 有关详细信息,请参阅 通用访问权限 和 文件安全性和访问权限
对于异步读取操作,hFile 可以是 CreateFile 函数使用 FILE_FLAG_OVERLAPPED 标志打开的任何句柄,也可以是 套接字 或 接受 函数返回的套接字句柄。
[out] lpBuffer
指向接收从文件或设备读取的数据的缓冲区的指针。
此缓冲区在读取操作的持续时间内必须保持有效。 在读取操作完成之前,调用方不得使用此缓冲区。
[in] nNumberOfBytesToRead
要读取的最大字节数。
[out, optional] lpNumberOfBytesRead
指向使用同步 hFile 参数时接收读取的字节数的变量的指针。 ReadFile 在执行任何工作或错误检查之前将此值设置为零。 如果这是一个异步操作,请对此参数使用 NULL 以避免潜在的错误结果。
仅当 lpOverlapped 参数不 NULL时,此参数才能 NULL
Windows 7: 此参数不能 NULL
有关详细信息,请参阅“备注”部分。
[in, out, optional] lpOverlapped
如果使用 FILE_FLAG_OVERLAPPED打开 hFile 参数,则需要指向 OVERLAPPED 结构的指针,否则它可以 NULL
如果使用 FILE_FLAG_OVERLAPPED打开 hFile,则 lpOverlapped 参数必须指向有效的唯一 OVERLAPPED 结构,否则函数无法错误地报告读取操作已完成。
对于支持字节偏移的 hFile,如果使用此参数,则必须指定从文件或设备开始读取的字节偏移量。 通过设置 Offset 和 OffsetHighOVERLAPPED 结构的成员来指定此偏移量。 对于不支持字节偏移的 hFile,将忽略 Offset 和 OffsetHigh
有关 lpOverlapped 和 FILE_FLAG_OVERLAPPED的不同组合的详细信息,请参阅“备注”部分和 同步和文件位置 部分。

返回值

如果函数成功,则返回值为非零(TRUE)。
如果函数失败或异步完成,则返回值为零(FALSE)。 若要获取扩展的错误信息,请调用 GetLastError 函数。
上一篇
mingw启动项学习
下一篇
io入门
Loading...
文章列表
Hi~, I ‘m moyao
reverse
pwn
pentest
iot
android
others
ctf
iOS