-
- 用户组
- 管理员
- 总帖数
- 阅读权限
- 255
- 关注数
|
========================================================
*CreateFileMapping //向内存中映射一个文件
创建一个新的文件映射对象 新建文件映射对象的句柄;零意味着出错。会设置GetLastError。即使函数成功,但倘若返回的句柄属于一个现成的文件映射对象,那么GetLastError也会设置成ERROR_ALREADY_EXISTS。在这种情况下,文件映射的长度就是现有对象的长度,而不是这个函数指定的尺寸
所处动态链接库的文件名:kernel32
在所处动态链接库中的命令名:CreateFileMappingA
返回值类型:整数型
参数<1>的名称为“文件映射句柄”,类型为“整数型”。注明:指定欲在其中创建映射的一个文件句柄。&HFFFFFFFF&表示在内存中创建一个文件映射。
参数<2>的名称为“安全对象”,类型为“SECURITY_ATTRIBUTES”。注明:SECURITY_ATTRIBUTES,指定一个安全对象,在创建文件映射时使用。如果为NULL(用ByVal As Long传递零),表示使用默认安全对象。
参数<3>的名称为“打开映射方式”,类型为“整数型”。注明:下述常数之一:AGE_READONLY:以只读方式打开映射AGE_READWRITE:以可读、可写方式打开映射AGE_WRITECOPY:为写操作留下备份可组合使用下述一个或多个常数;SEC_COMMIT:为文件映射一个小节中的所有页分配内存;SEC_IMAGE:文件是个可执行文件;SEC_RESERVE:为没有分配实际内存的一个小节保留虚拟内存空间。
参数<4>的名称为“文件映射最大长度”,类型为“整数型”。注明:文件映射的最大长度(高32位)。
参数<5>的名称为“文件映射的最小长度”,类型为“整数型”。注明:文件映射的最小长度(低32位)。如这个参数和dwMaximumSizeHigh都是零,就用磁盘文件的实际长度。
参数<6>的名称为“映射对象名”,类型为“文本型”。注明:指定文件映射对象的名字。如存在这个名字的一个映射,函数就会打开它。用vbNull创建一个无名的文件映射;。
=========================================
*MapViewOfFile()
函数功能描述:创建一个或多个数据文件的视图
函数原型:
LPVOID MapViewOfFile(
HANDLE hFileMappingObject,
DWORD dwDesiredAccess,
DWORD dwFileOffsetHigh,
DWORD dwFileOffsetLow,
SIZE_T dwNumberOfBytesToMap
);
函数参数:
hFileMappingObject 是文件映射对象的句柄。
dwDesiredAccess 是要对文件映射数据所做的访问。可以是FILE_MAP_READ,表示是只读访问,也 可以设成 FILE_MAP_READ|FILE_MAP_WRITE.表示是读写访问
dwFileOffsetHigh 是要映射到内存的文件区域的开头在文件中的偏移量的高32位。
dwFileOffsetLow 是要映射到内存的文件区域的开头在文件中的偏移量的低32位
dwNumberOfBytesToMap 是映射的字节数。其大小将向上取整至最接近的页边界(在Intel芯片上是4K)。如果这
个参数值为0,则映射整个文件。
返回值:如果函数调用成功,就返回这个映射视图的字符串地址
如果函数调用失败,就返回NULL。要获得更多的错误信息,请查阅GetLastError()
=========================================
*OpenFileMappingA //打开一个现成的文件映射对象
打开一个现成的文件映射对象 指定文件映射对象的句柄。零表示出错。会设置GetLastError
所处动态链接库的文件名:kernel32
在所处动态链接库中的命令名:OpenFileMappingA
返回值类型:整数型
参数<1>的名称为“常数”,类型为“整数型”。注明:带有前缀FILE_MAP_???的一个常数。参考MapViewOfFile函数的dwDesiredAccess参数的说明。
参数<2>的名称为“进程继承”,类型为“整数型”。注明:如这个函数返回的句柄能由当前进程启动的新进程继承,则这个参数为TRUE。
参数<3>的名称为“文件映射对象名称”,类型为“文本型”。注明:指定要打开的文件映射对象名称;。
================================================
*UnmapViewofFile(lpMem); //解除一个现成的文件映射对象
VB声明
Declare Function UnmapViewOfFile& Lib "kernel32" (ByVal lpBaseAddress As Long)
说明
在当前应用程序的内存地址空间解除对一个文件映射对象的映射
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpBaseAddress Long,指定要解除映射的一个文件映射的基准地址。这个地址是早先用MapViewOfFile函数获得的
=========================================
*PostThreadMessage //将一条消息投递给应用程序
VB声明
Declare Function PostThreadMessage Lib "user32" Alias "ostThreadMessageA" (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
说明
将一条消息投递给应用程序。这条消息由应用程序的内部GetMessage循环获得,但不会传给一个特定的窗口
返回值
Long,如消息投递成功,则返回TRUE(非零)。会设置GetLastError
参数表
参数 类型及说明
idThread Long,用于接收消息的那个线程的标识符
msg Long,消息标识符
wParam Long,具体由消息决定
ByVal Long,具体由消息决定
===============================================
*GetMessage //从调用线程的消息队列中取出消息并将其放入MSG结构
函数功能描述:从调用线程的消息队列中取出消息并将其放入MSG结构。该函数可取得与指定窗口相关的消息和通过PostThreadMessage函数所张贴的线程消息。
从线索消息队列中返回一条消息
所处动态链接库的文件名:user32
在所处动态链接库中的命令名:GetMessageA
返回值类型:整数型
参数<1>的名称为“lpMsg”,类型为“MSG”。 // 消息结构地址
参数<2>的名称为“hwnd”,类型为“整数型”。 // 窗口句柄
参数<3>的名称为“wMsgFilterMin”,类型为“整数型”。 // 起始消息值
参数<4>的名称为“wMsgFilterMax”,类型为“整数型”。 // 结束消息值
.参数:
lpMsg :指向MSG结构的指针,该结构从线程的消息队列中接收消息信息。
hWnd :被检索消息的窗口句柄。它有一个有特殊含义的值——NULL:GetMessage将接收任何属于调用线程窗口的消息,线程消息是通过PostThreadMessage函数发到调用线程的。
wMsgFilterMin:指定接收的最小消息值的整数。
wMsgFilterMax:指定接收的最大消息值的整数。
.返回值:
如果函数接收了一个非WM_QUIT的其他消息,返回非零值。
如果函数接收了WM_QUIT消息,返回值是零。
如果出现了错误,返回值是-1。例如,当hWnd是无效的窗口句柄或lpMsg是无效的指针时,函数失败。获得更多的错误信息,请调用GetLastError函数。
================================================
*SetWindowsHookEx // 安装钩子过程
Dll命令名:SetWindowsHookEx
安装钩子过程
所处动态链接库的文件名:user32
在所处动态链接库中的命令名:SetWindowsHookExA
返回值类型:整数型
参数<1>的名称为“idHook”,类型为“整数型”。
参数<2>的名称为“lpfn”,类型为“整数型”。
参数<3>的名称为“hmod”,类型为“整数型”。
参数<4>的名称为“dwThreadId”,类型为“整数型”。
*Dll命令名:UnHookWindowsHookEx
安装钩子过程
所处动态链接库的文件名:user32
在所处动态链接库中的命令名:UnHookWindowsHookExA
返回值类型:整数型 |
|