精华内容
下载资源
问答
  • Delphi 常用API 函数

    2018-06-26 14:55:54
    Delphi 常用API 函数.Delphi 常用API 函数Delphi 常用API 函数Delphi 常用API 函数
  • SDK 常用API函数

    2009-10-10 20:00:41
    VC SDK 常用API函数库仅供参考哟。大家来看看哟。VC的源代码
  • 软件逆向、破解常用API函数大全,介绍软件安全,逆向常用API函数
  • 本文列举了windows编程常用api函数,并分类说明。给程序员带来很多方便。
  • window常用API函数

    2015-06-27 21:30:01
    window常用api函数用法说明,可以快速查找、学习API函数
  • C#常用 API函数大全

    千次阅读 2015-11-18 23:34:44
    常用Windows API1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一...

    常用Windows API

    1. API之网络函数

    WNetAddConnection 创建同一个网络资源的永久性连接
    WNetAddConnection2 创建同一个网络资源的连接
    WNetAddConnection3 创建同一个网络资源的连接
    WNetCancelConnection 结束一个网络连接
    WNetCancelConnection2 结束一个网络连接
    WNetCloseEnum 结束一次枚举操作
    WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
    WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
    WNetEnumResource 枚举网络资源
    WNetGetConnection 获取本地或已连接的一个资源的网络名称
    WNetGetLastError 获取网络错误的扩展错误信息
    WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
    WNetGetUser 获取一个网络资源用以连接的名字
    WNetOpenEnum 启动对网络资源进行枚举的过程

    2. API之消息函数

    BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
    GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
    GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
    PostMessage 将一条消息投递到指定窗口的消息队列
    PostThreadMessage 将一条消息投递给应用程序
    RegisterWindowMessage 获取分配给一个字串标识符的消息编号
    ReplyMessage 答复一个消息
    SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
    SendMessageCallback 将一条消息发给窗口
    SendMessageTimeout 向窗口发送一条消息
    SendNotifyMessage 向窗口发送一条消息

    3. API之文件处理函数

    CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
    CompareFileTime 对比两个文件的时间
    CopyFile 复制文件
    CreateDirectory 创建一个新目录
    CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
    CreateFileMapping 创建一个新的文件映射对象
    DeleteFile 删除指定文件
    DeviceIoControl 对设备执行指定的操作
    DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
    FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
    FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
    FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
    FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
    FindFirstFile 根据文件名查找文件
    FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
    FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
    FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
    GetBinaryType 判断文件是否可以执行
    GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
    GetCurrentDirectory 在一个缓冲区中装载当前目录
    GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
    GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
    GetDriveType 判断一个磁盘驱动器的类型
    GetExpandedName 取得一个压缩文件的全名
    GetFileAttributes 判断指定文件的属性
    GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
    GetFileSize 判断文件长度
    GetFileTime 取得指定文件的时间信息
    GetFileType 在给出文件句柄的前提下,判断文件类型
    GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
    GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
    GetFullPathName 获取指定文件的完整路径名
    GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
    GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
    GetOverlappedResult 判断一个重叠操作当前的状态
    GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
    GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
    GetPrivateProfileString 为初始化文件中指定的条目取得字串
    GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
    GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
    GetProfileString 为win.ini初始化文件中指定的条目取得字串
    GetShortPathName 获取指定文件的短路径名
    GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
    GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
    GetTempPath 获取为临时文件指定的路径
    GetVolumeInformation 获取与一个磁盘卷有关的信息
    GetWindowsDirectory 获取Windows目录的完整路径名
    hread 参考lread
    hwrite 参考lwrite函数
    lclose 关闭指定的文件
    lcreat 创建一个文件
    llseek 设置文件中进行读写的当前位置
    LockFile 锁定文件的某一部分,使其不与其他应用程序共享
    LockFileEx 与LockFile相似,只是它提供了更多的功能
    lopen 以二进制模式打开指定的文件
    lread 将文件中的数据读入内存缓冲区
    lwrite 将数据从内存缓冲区写入一个文件
    LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
    LZCopy 复制一个文件
    LZInit 这个函数用于初始化内部缓冲区
    LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
    LZRead 将数据从文件读入内存缓冲区
    LZSeek 设置一个文件中进行读写的当前位置
    MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
    MoveFile 移动文件
    OpenFile 这个函数能执行大量不同的文件操作
    OpenFileMapping 打开一个现成的文件映射对象
    QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
    ReadFile 从文件中读出数据
    ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
    RegCloseKey 关闭系统注册表中的一个项(或键)
    RegConnectRegistry 访问远程系统的部分注册表
    RegCreateKey 在指定的项下创建或打开一个项
    RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
    RegDeleteKey 删除现有项下方一个指定的子项
    RegDeleteValue 删除指定项下方的一个值
    RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
    RegEnumKeyEx 枚举指定项下方的子项
    RegEnumValue 枚举指定项的值
    RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
    RegGetKeySecurity 获取与一个注册表项有关的安全信息
    RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
    RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
    RegOpenKey 打开一个现有的注册表项
    RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
    RegQueryInfoKey 获取与一个项有关的信息
    RegQueryValue 取得指定项或子项的默认(未命名)值
    RegQueryValueEx 获取一个项的设置值
    RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
    RegRestoreKey 从一个磁盘文件恢复注册表信息
    RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
    RegSetKeySecurity 设置指定项的安全特性
    RegSetValue 设置指定项或子项的默认值
    RegSetValueEx 设置指定项的值
    RegUnLoadKey 卸载指定的项以及它的所有子项
    RemoveDirectory 删除指定目录
    SearchPath 查找指定文件
    SetCurrentDirectory 设置当前目录
    SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
    SetFileAttributes 设置文件属性
    SetFilePointer 在一个文件中设置当前的读写位置
    SetFileTime 设置文件的创建、访问及上次修改时间
    SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
    SetVolumeLabel 设置一个磁盘的卷标(Label)
    SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
    UnlockFile 解除对一个文件的锁定
    UnlockFileEx 解除对一个文件的锁定
    UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
    VerFindFile 用这个函数决定一个文件应安装到哪里
    VerInstallFile 用这个函数安装一个文件
    VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
    VerQueryValue 这个函数用于从版本资源中获取信息
    WriteFile 将数据写入一个文件
    WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
    WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
    WritePrivateProfileString 在初始化文件指定小节内设置一个字串
    WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
    WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串

    4. API之打印函数

    AbortDoc 取消一份文档的打印
    AbortPrinter 删除与一台打印机关联在一起的缓冲文件
    AddForm 为打印机的表单列表添加一个新表单
    AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
    AddMonitor 为系统添加一个打印机监视器
    AddPort 启动“添加端口”对话框,允许用户在系统可用端口列表中加入一个新端口
    AddPrinter 在系统中添加一台新打印机
    AddPrinterConnection 连接指定的打印机
    AddPrinterDriver 为指定的系统添加一个打印驱动程序
    AddPrintProcessor 为指定的系统添加一个打印处理器
    AddPrintProvidor 为系统添加一个打印供应商
    AdvancedDocumentProperties 启动打印机文档设置对话框
    ClosePrinter 关闭一个打开的打印机对象
    ConfigurePort 针对指定的端口,启动一个端口配置对话框
    ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
    DeleteForm 从打印机可用表单列表中删除一个表单
    DeleteMonitor 删除指定的打印监视器
    DeletePort 启动“删除端口”对话框,允许用户从当前系统删除一个端口
    DeletePrinter 将指定的打印机标志为从系统中删除
    DeletePrinterConnection 删除与指定打印机的连接
    DeletePrinterDriver 从系统删除一个打印机驱动程序
    DeletePrintProcessor 从指定系统删除一个打印处理器
    DeletePrintProvidor 从系统中删除一个打印供应商
    DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
    DocumentProperties 打印机配置控制函数
    EndDocAPI 结束一个成功的打印作业
    EndDocPrinter 在后台打印程序的级别指定一个文档的结束
    EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
    EndPagePrinter 指定一个页在打印作业中的结尾
    EnumForms 枚举一台打印机可用的表单
    EnumJobs 枚举打印队列中的作业
    EnumMonitors 枚举可用的打印监视器
    EnumPorts 枚举一个系统可用的端口
    EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
    EnumPrinters 枚举系统中安装的打印机
    EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
    EnumPrintProcessors 枚举系统中可用的打印处理器
    Escape 设备控制函数
    FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
    FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
    FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
    FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
    GetForm 取得与指定表单有关的信息
    GetJob 获取与指定作业有关的信息
    GetPrinter 取得与指定打印机有关的信息
    GetPrinterData 为打印机设置注册表配置信息
    GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
    GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
    GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
    OpenPrinter 打开指定的打印机,并获取打印机的句柄
    PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
    PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
    ReadPrinter 从打印机读入数据
    ResetDC 重设一个设备场景
    ResetPrinter 改变指定打印机的默认数据类型及文档设置
    ScheduleJob 提交一个要打印的作业
    SetAbortProc 为Windows指定取消函数的地址
    SetForm 为指定的表单设置信息
    SetJob 对一个打印作业的状态进行控制
    SetPrinter 对一台打印机的状态进行控制
    SetPrinterData 设置打印机的注册表配置信息
    StartDoc 开始一个打印作业
    StartDocPrinter 在后台打印的级别启动一个新文档
    StartPage 打印一个新页前要先调用这个函数
    StartPagePrinter 在打印作业中指定一个新页的开始
    WritePrinter 将发送目录中的数据写入打印机

    5. API之文本和字体函数

    AddFontResource 在Windows系统中添加一种字体资源
    CreateFont 用指定的属性创建一种逻辑字体
    CreateFontIndirect 用指定的属性创建一种逻辑字体
    CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
    DrawText 将文本描绘到指定的矩形中
    DrawTextEx 与DrawText相似,只是加入了更多的功能
    EnumFontFamilies 列举指定设备可用的字体
    EnumFontFamiliesEx 列举指定设备可用的字体
    EnumFonts 列举指定设备可用的字体
    ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
    GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
    GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
    GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
    GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
    GetCharWidth 调查字体中一个或多个字符的宽度
    GetFontData 接收一种可缩放字体文件的数据
    GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
    GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
    GetKerningPairs 取得指定字体的字距信息
    GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
    GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
    GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
    GetTextAlign 接收一个设备场景当前的文本对齐标志
    GetTextCharacterExtra 判断额外字符间距的当前值
    GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
    GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
    GetTextColor 判断当前字体颜色。通常也称为“前景色”
    GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
    GetTextExtentPoint 判断一个字串的大小(范围)
    GetTextFace 获取一种字体的字样名
    GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
    GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
    PolyTextOut 描绘一系列字串
    RemoveFontResource 从Windows系统中删除一种字体资源
    SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
    SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
    SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
    SetTextColor 设置当前文本颜色。这种颜色也称为“前景色”
    SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
    TabbedTextOut 支持制表站的一个文本描绘函数
    TextOut 文本绘图函数

    6. API之菜单函数

    AppendMenu 在指定的菜单里添加一个菜单项
    CheckMenuItem 复选或撤消复选指定的菜单条目
    CheckMenuRadioItem 指定一个菜单条目被复选成“单选”项目
    CreateMenu 创建新菜单
    CreatePopupMenu 创建一个空的弹出式菜单
    DeleteMenu 删除指定的菜单条目
    DestroyMenu 删除指定的菜单
    DrawMenuBar 为指定的窗口重画菜单
    EnableMenuItem 允许或禁止指定的菜单条目
    GetMenu 取得窗口中一个菜单的句柄
    GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
    GetMenuContextHelpId 取得一个菜单的帮助场景ID
    GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
    GetMenuItemCount 返回菜单中条目(菜单项)的数量
    GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
    GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
    GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
    GetMenuState 取得与指定菜单条目状态有关的信息
    GetMenuString 取得指定菜单条目的字串
    GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
    GetSystemMenu 取得指定窗口的系统菜单的句柄
    HiliteMenuItem 控制顶级菜单条目的加亮显示状态
    InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
    InsertMenuItem 插入一个新菜单条目
    IsMenu 判断指定的句柄是否为一个菜单的句柄
    LoadMenu 从指定的模块或应用程序实例中载入一个菜单
    LoadMenuIndirect 载入一个菜单
    MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
    ModifyMenu 改变菜单条目
    RemoveMenu 删除指定的菜单条目
    SetMenu 设置窗口菜单
    SetMenuContextHelpId 设置一个菜单的帮助场景ID
    SetMenuDefaultItem 将一个菜单条目设为默认条目
    SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
    SetMenuItemInfo 为一个菜单条目设置指定的信息
    TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
    TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能

    7. API之位图、图标和光栅运算函数

    BitBlt 将一幅位图从一个设备场景复制到另一个
    CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
    CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
    CreateBitmap 按照规定的格式创建一幅与设备有关位图
    CreateBitmapIndirect 创建一幅与设备有关位图
    CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
    CreateCursor 创建一个鼠标指针
    CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
    CreateDIBSection 创建一个DIBSection
    CreateIcon 创建一个图标
    CreateIconIndirect 创建一个图标
    DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
    DestroyIcon 清除图标
    DrawIcon 在指定的位置画一个图标
    DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
    ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
    ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
    GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
    GetBitmapDimensionEx 取得一幅位图的宽度和高度
    GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
    GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
    GetIconInfo 取得与图标有关的信息
    GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
    LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
    LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
    LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
    LoadIcon 从指定的模块或应用程序实例中载入一个图标
    LoadImage 载入一个位图、图标或指针
    MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
    PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
    PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
    SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
    SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
    SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
    SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
    SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
    SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
    StretchBlt 将一幅位图从一个设备场景复制到另一个
    StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景

    8. API之绘图函数

    AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
    AngleArc 用一个连接弧画一条线
    Arc 画一个圆弧
    BeginPath 启动一个路径分支
    CancelDC 取消另一个线程里的长时间绘图操作
    Chord 画一个弦
    CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
    CloseFigure 描绘到一个路径时,关闭当前打开的图形
    CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
    CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
    CopyMetaFile 制作指定(标准)图元文件的一个副本
    CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
    CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
    CreateEnhMetaFile 创建一个增强型的图元文件设备场景
    CreateHatchBrush 创建带有阴影图案的一个刷子
    CreateMetaFile 创建一个图元文件设备场景
    CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
    CreatePen 用指定的样式、宽度和颜色创建一个画笔
    CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
    CreateSolidBrush 用纯色创建一个刷子
    DeleteEnhMetaFile 删除指定的增强型图元文件
    DeleteMetaFile 删除指定的图元文件
    DeleteObject 删除GDI对象,对象使用的所有系统资源都会被释放
    DrawEdge 用指定的样式描绘一个矩形的边框
    DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
    DrawFocusRect 画一个焦点矩形
    DrawFrameControl 描绘一个标准控件
    DrawState 为一幅图象或绘图操作应用各式各样的效果
    Ellipse 描绘一个椭圆,由指定的矩形围绕
    EndPath 停止定义一个路径
    EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
    EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
    EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
    ExtCreatePen 创建一个扩展画笔(装饰或几何)
    ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
    FillPath 关闭路径中任何打开的图形,并用当前刷子填充
    FillRect 用指定的刷子填充一个矩形
    FlattenPath 将一个路径中的所有曲线都转换成线段
    FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
    FrameRect 用指定的刷子围绕一个矩形画一个边框
    GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
    GdiFlush 执行任何未决的绘图操作
    GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
    GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
    GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
    GetBkColor 取得指定设备场景当前的背景颜色
    GetBkMode 针对指定的设备场景,取得当前的背景填充模式
    GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
    GetCurrentObject 获得指定类型的当前选定对象
    GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
    GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
    GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
    GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
    GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
    GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
    GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
    GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
    GetMiterLimit 取得设备场景的斜率限制(Miter)设置
    GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
    GetObjectAPI 取得对指定对象进行说明的一个结构
    GetObjectType 判断由指定句柄引用的GDI对象的类型
    GetPath 取得对当前路径进行定义的一系列数据
    GetPixel 在指定的设备场景中取得一个像素的RGB值
    GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
    GetROP2 针对指定的设备场景,取得当前的绘图模式
    GetStockObject 取得一个固有对象(Stock)
    GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
    GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
    InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
    LineDDA 枚举指定线段中的所有点
    LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
    MoveToEx 为指定的设备场景指定一个新的当前画笔位置
    PaintDesk 在指定的设备场景中描绘桌面墙纸图案
    PathToRegion 将当前选定的路径转换到一个区域里
    Pie 画一个饼图
    PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
    PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
    PlayMetaFile 在指定的设备场景中回放一个图元文件
    PlayMetaFileRecord 回放来自图元文件的单条记录
    PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
    PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
    Polygon 描绘一个多边形
    Polyline 用当前画笔描绘一系列线段
    PolyPolygon 用当前选定画笔描绘两个或多个多边形
    PolyPolyline 用当前选定画笔描绘两个或多个多边形
    Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
    RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
    SelectClipPath 将设备场景当前的路径合并到剪切区域里
    SelectObject 为当前设备场景选择图形对象
    SetArcDirection 设置圆弧的描绘方向
    SetBkColor 为指定的设备场景设置背景颜色
    SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
    SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
    SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
    SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
    SetMiterLimit 设置设备场景当前的斜率限制
    SetPixel 在指定的设备场景中设置一个像素的RGB值
    SetPixelV 在指定的设备场景中设置一个像素的RGB值
    SetPolyFillMode 设置多边形的填充模式
    SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
    SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
    StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
    StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
    UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
    WidenPath 根据选定画笔的宽度,重新定义当前选定的路径

    9. API之设备场景函数

    CombineRgn 将两个区域组合为一个新区域
    CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
    CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
    CreateDC 为专门设备创建设备场景
    CreateEllipticRgn 创建一个椭圆
    CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
    CreateIC 为专用设备创建一个信息场景
    CreatePolygonRgn 创建一个由一系列点围成的区域
    CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
    CreateRectRgn 创建一个矩形区域
    CreateRectRgnIndirect 创建一个矩形区域
    CreateRoundRectRgn 创建一个圆角矩形
    DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
    DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
    EqualRgn 确定两个区域是否相等
    ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
    ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
    ExtCreateRegion 根据世界转换修改区域
    ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
    FillRgn 用指定刷子填充指定区域
    FrameRgn 用指定刷子围绕指定区域画一个外框
    GetBoundsRect 获取指定设备场景的边界矩形
    GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
    GetClipRgn 获取设备场景当前剪裁区
    GetDC 获取指定窗口的设备场景
    GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
    GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
    GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
    GetGraphicsMode 确定是否允许增强图形模式(世界转换)
    GetMapMode 为特定设备场景调入映象模式
    GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
    GetRgnBox 获取完全包含指定区域的最小矩形
    GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
    GetViewportExtEx 获取设备场景视口(viewport)范围
    GetViewportOrgEx 获取设备场景视口起点
    GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
    GetWindowExtEx 获取指定设备场景的窗口范围
    GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
    GetWindowRgn 获取窗口区域
    GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
    IntersectClipRect 为指定设备定义一个新的剪裁区
    InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
    InvertRgn 通过颠倒每个像素值反转设备场景指定区域
    LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
    ModifyWorldTransform 根据指定的模式修改世界转换
    OffsetClipRgn 按指定量平移设备场景剪裁区
    OffsetRgn 按指定偏移量平移指定区域
    OffsetViewportOrgEx 平移设备场景视口区域
    OffsetWindowOrgEx 平移指定设备场景窗口起点
    PaintRgn 用当前刷子背景色填充指定区域
    PtInRegion 确定点是否在指定区域内
    PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
    RectInRegion 确定矩形是否有部分在指定区域内
    RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
    ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
    RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
    SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
    ScaleViewportExtEx 缩放设备场景视口的范围
    ScaleWindowExtEx 缩放指定设备场景窗口范围
    ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
    SelectClipRgn 为指定设备场景选择新的剪裁区
    SetBoundsRect 设置指定设备场景的边界矩形
    SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
    SetMapMode 设置指定设备场景的映射模式
    SetRectRgn 设置区域为指定的矩形
    SetViewportExtEx 设置设备场景视口范围
    SetViewportOrgEx 设置设备场景视口起点
    SetWindowExtEx 设置指定设备场景窗口范围
    SetWindowOrgEx 设置指定设备场景窗口起点
    SetWindowRgn 设置窗口区域
    SetWorldTransform 设置世界转换
    ValidateRgn 激活窗口中指定区域,把它从刷新区移走
    WindowFromDC 取回与某一设备场景相关的窗口的句柄

    10. API之硬件与系统函数

    ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
    Beep 用于生成简单的声音
    CharToOem 将一个字串从ANSI字符集转换到OEM字符集
    ClipCursor 将指针限制到指定区域
    ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
    CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
    DestroyCaret 清除(破坏)一个插入符
    EnumCalendarInfo 枚举在指定“地方”环境中可用的日历信息
    EnumDateFormats 列举指定的“当地”设置中可用的长、短日期格式
    EnumSystemCodePages 枚举系统中已安装或支持的代码页
    EnumSystemLocales 枚举系统已经安装或提供支持的“地方”设置
    EnumTimeFormats 枚举一个指定的地方适用的时间格式
    ExitWindowsEx 退出windows,并用特定的选项重新启动
    ExpandEnvironmentStrings 扩充环境字串
    FreeEnvironmentStrings 翻译指定的环境字串块
    GetACP 判断目前正在生效的ANSI代码页
    GetAsyncKeyState 判断函数调用时指定虚拟键的状态
    GetCaretBlinkTime 判断插入符光标的闪烁频率
    GetCaretPos 判断插入符的当前位置
    GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
    GetCommandLine 获得指向当前命令行缓冲区的一个指针
    GetComputerName 取得这台计算机的名称
    GetCPInfo 取得与指定代码页有关的信息
    GetCurrencyFormat 针对指定的“地方”设置,根据货币格式格式化一个数字
    GetCursor 获取目前选择的鼠标指针的句柄
    GetCursorPos 获取鼠标指针的当前位置
    GetDateFormat 针对指定的“当地”格式,对一个系统日期进行格式化
    GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
    GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
    GetEnvironmentVariable 取得一个环境变量的值
    GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
    GetKBCodePage 由GetOEMCP取代,两者功能完全相同
    GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
    GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
    GetKeyboardLayoutName 取得当前活动键盘布局的名称
    GetKeyboardState 取得键盘上每个虚拟键当前的状态
    GetKeyboardType 了解与正在使用的键盘有关的信息
    GetKeyNameText 在给出扫描码的前提下,判断键名
    GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
    GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
    GetLocaleInfo 取得与指定“地方”有关的信息
    GetLocalTime 取得本地日期和时间
    GetNumberFormat 针对指定的“地方”,按特定的格式格式化一个数字
    GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
    GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
    GetSysColor 判断指定windows显示对象的颜色
    GetSystemDefaultLangID 取得系统的默认语言ID
    GetSystemDefaultLCID 取得当前的默认系统“地方”
    GetSystemInfo 取得与底层硬件平台有关的信息
    GetSystemMetrics 返回与windows环境有关的信息
    GetSystemPowerStatus 获得与当前系统电源状态有关的信息
    GetSystemTime 取得当前系统时间,这个时间采用的是“协同世界时间”(即UTC,也叫做GMT)格式
    GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
    GetThreadLocale 取得当前线程的地方ID
    GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
    GetTimeFormat 针对当前指定的“地方”,按特定的格式格式化一个系统时间
    GetTimeZoneInformation 取得与系统时区设置有关的信息
    GetUserDefaultLangID 为当前用户取得默认语言ID
    GetUserDefaultLCID 取得当前用户的默认“地方”设置
    GetUserName 取得当前用户的名字
    GetVersion 判断当前运行的Windows和DOS版本
    GetVersionEx 取得与平台和操作系统有关的版本信息
    HideCaret 在指定的窗口隐藏插入符(光标)
    IsValidCodePage 判断一个代码页是否有效
    IsValidLocale 判断地方标识符是否有效
    keybd_event 这个函数模拟了键盘行动
    LoadKeyboardLayout 载入一个键盘布局
    MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
    MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
    MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
    mouse_event 模拟一次鼠标事件
    OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
    OemToChar 将OEM字符集的一个字串转换到ANSI字符集
    SetCaretBlinkTime 指定插入符(光标)的闪烁频率
    SetCaretPos 指定插入符的位置
    SetComputerName 设置新的计算机名
    SetCursor 将指定的鼠标指针设为当前指针
    SetCursorPos 设置指针的位置
    SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
    SetEnvironmentVariable 将一个环境变量设为指定的值
    SetKeyboardState 设置每个虚拟键当前在键盘上的状态
    SetLocaleInfo 改变用户“地方”设置信息
    SetLocalTime 设置当前地方时间
    SetSysColors 设置指定窗口显示对象的颜色
    SetSystemCursor 改变任何一个标准系统指针
    SetSystemTime 设置当前系统时间
    SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
    SetThreadLocale 为当前线程设置地方
    SetTimeZoneInformation 设置系统时区信息
    ShowCaret 在指定的窗口里显示插入符(光标)
    ShowCursor 控制鼠标指针的可视性
    SwapMouseButton 决定是否互换鼠标左右键的功能
    SystemParametersInfo 获取和设置数量众多的windows系统参数
    SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
    ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
    ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
    UnloadKeyboardLayout 卸载指定的键盘布局
    VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态

    11. API之进程和线程函数

    CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
    CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
    ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
    CreateEvent 创建一个事件对象
    CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
    CreateMutex 创建一个互斥体(MUTEX)
    CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
    CreatePipe 创建一个匿名管道
    CreateProcess 创建一个新进程(比如执行一个程序)
    CreateSemaphore 创建一个新的信号机
    CreateWaitableTimer 创建一个可等待的计时器对象
    DisconnectNamedPipe 断开一个客户与一个命名管道的连接
    DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
    ExitProcess 中止一个进程
    FindCloseChangeNotification 关闭一个改动通知对象
    FindExecutable 查找与一个指定文件关联在一起的程序的文件名
    FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
    FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
    FreeLibrary 释放指定的动态链接库
    GetCurrentProcess 获取当前进程的一个伪句柄
    GetCurrentProcessId 获取当前进程一个唯一的标识符
    GetCurrentThread 获取当前线程的一个伪句柄
    GetCurrentThreadId 获取当前线程一个唯一的线程标识符
    GetExitCodeProces 获取一个已中断进程的退出代码
    GetExitCodeThread 获取一个已中止线程的退出代码
    GetHandleInformation 获取与一个系统对象句柄有关的信息
    GetMailslotInfo 获取与一个邮路有关的信息
    GetModuleFileName 获取一个已装载模板的完整路径名称
    GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
    GetPriorityClass 获取特定进程的优先级别
    GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
    GetProcessTimes 获取与一个进程的经过时间有关的信息
    GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
    GetSartupInfo 获取一个进程的启动信息
    GetThreadPriority 获取特定线程的优先级别
    GetTheardTimes 获取与一个线程的经过时间有关的信息
    GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
    LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
    LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
    LoadModule 载入一个Windows应用程序,并在指定的环境中运行
    MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
    SetPriorityClass 设置一个进程的优先级别
    SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
    SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
    SetThreadPriority 设定线程的优先级别
    ShellExecute 查找与指定文件关联在一起的程序的文件名
    TerminateProcess 结束一个进程
    WinExec 运行指定的程序

    12. API之控件与消息函数

    AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
    AnyPopup 判断屏幕上是否存在任何弹出式窗口
    ArrangeIconicWindows 排列一个父窗口的最小化子窗口
    AttachThreadInput 连接线程输入函数
    BeginDeferWindowPos 启动构建一系列新窗口位置的过程
    BringWindowToTop 将指定的窗口带至窗口列表顶部
    CascadeWindows 以层叠方式排列窗口
    ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
    ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
    CloseWindow 最小化指定的窗口
    CopyRect 矩形内容复制
    DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
    DestroyWindow 清除指定的窗口以及它的所有子窗口
    DrawAnimatedRects 描绘一系列动态矩形
    EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
    EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
    EnumChildWindows 为指定的父窗口枚举子窗口
    EnumThreadWindows 枚举与指定任务相关的窗口
    EnumWindows 枚举窗口列表中的所有父窗口
    EqualRect 判断两个矩形结构是否相同
    FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
    FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
    FlashWindow 闪烁显示指定窗口
    GetActiveWindow 获得活动窗口的句柄
    GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
    GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
    GetClassLong 取得窗口类的一个Long变量条目
    GetClassName 为指定的窗口取得类名
    GetClassWord 为窗口类取得一个整数变量
    GetClientRect 返回指定窗口客户区矩形的大小
    GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
    GetFocus 获得拥有输入焦点的窗口的句柄
    GetForegroundWindow 获得前台窗口的句柄
    GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
    GetParent 判断指定窗口的父窗口
    GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
    GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
    GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
    GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
    GetWindowLong 从指定窗口的结构中取得信息
    GetWindowPlacement 获得指定窗口的状态及位置信息
    GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
    GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
    GetWindowTextLength 调查窗口标题文字或控件内容的长短
    GetWindowWord 获得指定窗口结构的信息
    InflateRect 增大或减小一个矩形的大小
    IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
    InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
    IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
    IsIconic 判断窗口是否已最小化
    IsRectEmpty 判断一个矩形是否为空
    IsWindow 判断一个窗口句柄是否有效
    IsWindowEnabled 判断窗口是否处于活动状态
    IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
    IsWindowVisible 判断窗口是否可见
    IsZoomed 判断窗口是否最大化
    LockWindowUpdate 锁定指定窗口,禁止它更新
    MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
    MoveWindow 改变指定窗口的位置和大小
    OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
    OpenIcon 恢复一个最小化的程序,并将其激活
    PtInRect 判断指定的点是否位于矩形内部
    RedrawWindow 重画全部或部分窗口
    ReleaseCapture 为当前的应用程序释放鼠标捕获
    ScreenToClient 判断屏幕上一个指定点的客户区坐标
    ScrollWindow 滚动窗口客户区的全部或一部分
    ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
    SetActiveWindow 激活指定的窗口
    SetCapture 将鼠标捕获设置到指定的窗口
    SetClassLong 为窗口类设置一个Long变量条目
    SetClassWord 为窗口类设置一个条目
    SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
    SetForegroundWindow 将窗口设为系统的前台窗口
    SetParent 指定一个窗口的新父
    SetRect 设置指定矩形的内容
    SetRectEmpty 将矩形设为一个空矩形
    SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
    SetWindowLong 在窗口结构中为指定的窗口设置信息
    SetWindowPlacement 设置窗口状态和位置信息
    SetWindowPos 为窗口指定一个新位置和状态
    SetWindowText 设置窗口的标题文字或控件的内容
    SetWindowWord 在窗口结构中为指定的窗口设置信息
    ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
    ShowWindow 控制窗口的可见性
    ShowWindowAsync 与ShowWindow相似
    SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
    TileWindows 以平铺顺序排列窗口
    UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
    UpdateWindow 强制立即更新窗口
    ValidateRect 校验窗口的全部或部分客户区
    WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
    WNetAddConnection 创建同一个网络资源的永久性连接
    WNetAddConnection2 创建同一个网络资源的连接
    WNetAddConnection3 创建同一个网络资源的连接
    WNetCancelConnection 结束一个网络连接
    WNetCancelConnection2 结束一个网络连接
    WNetCloseEnum 结束一次枚举操作
    WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
    WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
    WNetEnumResource 枚举网络资源
    WNetGetConnection 获取本地或已连接的一个资源的网络名称
    WNetGetLastError 获取网络错误的扩展错误信息
    WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
    WNetGetUser 获取一个网络资源用以连接的名字
    WNetOpenEnum 启动对网络资源进行枚举的过程

    来自 Seay互联网安全博客
    本文地址:这里写链接内容
    文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

    展开全文
  • C++常用类和API函数

    2018-04-23 18:01:32
    C++常用类和API函数C++常用类和API函数C++常用类和API函数
  • 常用Win32 API函数简介

    2010-03-15 17:31:48
    常用Win32 API函数简介常用Win32 API函数简介常用Win32 API函数简介常用Win32 API函数简介
  • FFmpeg —— FFmpeg常用API函数介绍

    万次阅读 2020-04-27 15:45:28
    1.常用API 1.1 通用API 1.1.1 av_register_all()——弃用 1.1.2 内存的分配和释放(av_malloc()、av_free()等) 1.1.3 常见结构体的初始化和销毁(AVFormatContext、AVFrame) 1.1.4 avio_open2() 1.1.5 ...

    目录

    1.常用API

    1.1    通用API

    1.1.1    av_register_all()——弃用

    1.1.2    内存的分配和释放(av_malloc()、av_free()等)

    1.1.3    常见结构体的初始化和销毁(AVFormatContext、AVFrame)

    1.1.4    avio_open2()

    1.1.5    avcodec_find_encoder() 和 avcodec_find_decoder()

    1.1.6    avcodec_open2()

    1.1.7    avcodec_close()

    1.2    解码API

    1.2.1    avformat_open_input()

    1.2.2    avformat_find_stream_info()

    1.2.3    av_read_frame

    1.2.4    avcodec_send_packet()

    1.2.5    avcodec_receive_frame

    1.2.6    解码API使用说明

    1.2.7    avformat_close_input()

    1.3    编码API

    1.1.1    avformat_alloc_output_context2()

    1.1.2    avformat_write_header()

    1.1.3    avcodec_send_frame()

    1.1.4    avcodec_receive_packet

    1.1.5    编码API使用说明

    1.1.6    av_write_frame()/av_interleaved_write_frame()

    1.1.7    av_write_trailer()

    1.4    图像处理API

    1.4.1    sws_getContext()

    1.4.2    sws_scale()

    1.4.3    sws_freeContext()

    1.5    重采样API

    1.5.1    使用说明

    1.5.2    swr_alloc()

    1.5.3    swr_alloc_set_opts()

    1.5.4    swr_init()

    1.5.5    av_sample_alloc()

    1.5.6    swr_convert()

    1.5.7    swr_free()

    2.参考


    1.常用API

    1.1    通用API

    1.1.1    av_register_all()——弃用

    初始化 libavformat 和注册所有的复用器、解复用器和协议处理器。如果不调用这个函数,可以调用下面的三个函数来选择支持的格式。
    •    注册复用器的函数是av_register_output_format()。
    •    注册解复用器的函数是av_register_input_format()。
    •    注册协议处理器的函数是ffurl_register_protocol()。
    注:FFmpeg4.0 以上的版本,这个函数已经被废弃。

    1.1.2    内存的分配和释放(av_malloc()、av_free()等)

    av_malloc() 和 av_free() 都是简单的封装了系统函数 malloc() 和free(),并做了一些错误检查工作。同理的还有 av_realloc()。

    1.1.3    常见结构体的初始化和销毁(AVFormatContext、AVFrame)

    https://blog.csdn.net/leixiaohua1020/article/details/41181155

    1.1.4    avio_open2()

    https://blog.csdn.net/leixiaohua1020/article/details/41199947

    该函数用于打开FFmpeg的输入输出文件。avio_open2()的声明位于libavformat\avio.h文件中,如下所示。
    /**
     * Create and initialize a AVIOContext for accessing the
     * resource indicated by url.
     * @note When the resource indicated by url has been opened in
     * read+write mode, the AVIOContext can be used only for writing.
     *
     * @param s Used to return the pointer to the created AVIOContext.
     * In case of failure the pointed to value is set to NULL.
     * @param url resource to access
     * @param flags flags which control how the resource indicated by url
     * is to be opened
     * @param int_cb an interrupt callback to be used at the protocols level
     * @param options  A dictionary filled with protocol-private options. On return
     * this parameter will be destroyed and replaced with a dict containing options
     * that were not found. May be NULL.
     * @return >= 0 in case of success, a negative value corresponding to an
     * AVERROR code in case of failure
     */
    int avio_open2(AVIOContext **s, const char *url, int flags,
                   const AVIOInterruptCB *int_cb, AVDictionary **options);
    函数参数:
    •    s:函数调用成功之后创建的AVIOContext结构体。
    •    url:输入输出协议的地址(文件也是一种“广义”的协议,对于文件来说就是文件的路径)。
    •    flags:打开地址的方式。可以选择只读,只写,或者读写。取值如下。
    o    AVIO_FLAG_READ:只读。
    o    AVIO_FLAG_WRITE:只写。
    o    AVIO_FLAG_READ_WRITE:读写。
    •    int_cb:目前还没有用过。
    •    options:目前还没有用过。

    1.1.5    avcodec_find_encoder() 和 avcodec_find_decoder()

    avcodec_find_encoder() 用于查找 FFmpeg 的编码器
    avcodec_find_decoder() 用于查找 FFmpeg 的解码器
    声明都位于 libavcodec\avcodec.h。其原型如下:

    // 函数的参数是一个编码器的ID,返回查找到的编码器(没有找到就返回NULL)。
    AVCodec *avcodec_find_encoder(enum AVCodecID id);

    // 函数的参数是一个解码器的ID,返回查找到的解码器(没有找到就返回NULL)。
    AVCodec *avcodec_find_decoder(enum AVCodecID id);

    其实这两个函数的实质就是遍历AVCodec链表并且获得符合条件的元素。

    1.1.6    avcodec_open2()

    https://blog.csdn.net/leixiaohua1020/article/details/44117891

    用于初始化一个音视频编解码器的 AVCodecContext,其原型如下:

    int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); 

    •    avctx:需要初始化的 AVCodecContext。
    •    codec:输入的AVCodec。
    •    options:一些选项。例如使用libx264编码的时候,“preset”,“tune”等都可以通过该参数设置。

    我们可以简单梳理一下avcodec_open2()所做的工作,如下所列:
    (1)为各种结构体分配内存(通过各种av_malloc()实现)。
    (2)将输入的AVDictionary形式的选项设置到AVCodecContext。
    (3)其他一些零零碎碎的检查,比如说检查编解码器是否处于“实验”阶段。
    (4)如果是编码器,检查输入参数是否符合编码器的要求
    (5)调用AVCodec的init()初始化具体的解码器。

    1.1.7    avcodec_close()

    https://blog.csdn.net/leixiaohua1020/article/details/44206699

    用于关闭编码器,其原型如下:
    int avcodec_close(AVCodecContext *avctx);

    该函数只有一个参数,就是需要关闭的编码器的 AVCodecContext。

    1.2    解码API

    下面介绍解码需要用到的几个函数,声明都位于 libavformat\avformat.h。
    解码使用 avcodec_send_packet() 和 avcodec_receive_frame() 两个函数。

    1.2.1    avformat_open_input()

    https://blog.csdn.net/leixiaohua1020/article/details/8661601
    https://blog.csdn.net/leixiaohua1020/article/details/44064715

    打开输出的流和读取头信息。其原型如下:

    int avformat_open_input(AVFormatContext **ps, const char *url, ff_const59 AVInputFormat *fmt, AVDictionary **options); 
    •    ps:函数调用成功之后处理过的 AVFormatContext 结构体。
    •    url:打开的视音频流的 URL。
    •    fmt:强制指定 AVFormatContext 中 AVInputFormat 的。这个参数一般情况下可以设置为 NULL,这样 FFmpeg 可以自动检测 AVInputFormat。
    •    options:附加的一些选项,一般情况下可以设置为 NULL。

    函数执行成功的话,其返回值大于等于 0。

    1.2.2    avformat_find_stream_info()

    https://blog.csdn.net/leixiaohua1020/article/details/44084321
    读取音视频数据来获取一些相关的信息。其原型如下:
    int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)  
    简单解释一下它的参数的含义:
    •    ic:输入的AVFormatContext。
    options:额外的选项,目前没有深入研究过。
    函数正常执行后返回值大于等于0。
    该函数主要用于给每个媒体流(音频/视频)的AVStream结构体赋值。我们大致浏览一下这个函数的代码,会发现它其实已经实现了解码器的查找,解码器的打开,视音频帧的读取,视音频帧的解码等工作。换句话说,该函数实际上已经“走通”的解码的整个流程。下面看一下除了成员变量赋值之外,该函数的几个关键流程。
    1.查找解码器:find_decoder()
    2.打开解码器:avcodec_open2()
    1.读取完整的一帧压缩编码的数据:read_frame_internal()
    注:av_read_frame()内部实际上就是调用的read_frame_internal()。
    4.解码一些压缩编码数据:try_decode_frame()

    1.2.3    av_read_frame

    https://blog.csdn.net/leixiaohua1020/article/details/12678577
    读取码流中的音频若干帧或者视频一帧。例如,解码视频的时候,每解码一个视频帧,需要先调用 av_read_frame() 获得一帧视频的压缩数据,然后才能对该数据进行解码。其原型如下:
    int av_read_frame(AVFormatContext *s, AVPacket *pkt)    
    •    s:输入的AVFormatContext
    •    pkt:输出的AVPacket
    如果返回0则说明读取正常。

    1.2.4    avcodec_send_packet()

    发送数据到ffmepg,放到解码队列中
    函数原型:
    int avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt);

    1.2.5    avcodec_receive_frame

    将成功的解码队列中取出1个frame
    函数原型:
    int avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame);

    avcodec_send_packet和avcodec_receive_frame调用关系并不一定是一对一的,比如一些音频数据一个AVPacket中包含了1秒钟的音频,调用一次avcodec_send_packet之后,可能需要调用25次 avcodec_receive_frame才能获取全部的解码音频数据,所以要做如下处理:

    int re = avcodec_send_packet(codec, pkt);
    if (re != 0)
    {
        return;
    }

    while( avcodec_receive_frame(codec, frame) == 0)
    {
        //读取到一帧音频或者视频
        //处理解码后音视频 frame
    }

    @返回值 0 表示成功,其他的异常值说明:
    AVERROR(EAGAIN):当前不接受输出,必须重新发送
    AVERROR_EOF:已经刷新×××,没有新的包可以被刷新
    AVERROR(EINVAL):没有打开×××,或者这是一个编码器,或者要求刷新
    AVERRO(ENOMEN):无法添加包到内部队列

    输入参数可以为NULL,或者AVPacket的data域设置为NULL或者size域设置为0,表示将刷新所有的包,意味着数据流已经结束了。第一次发送刷新会总会成功,第二次发送刷新包是没有必要的,并且返回AVERROR_EOF,如果×××缓存了一些帧,返回一个刷新包,将会返回所有的解码包

    1.2.6    解码API使用说明

    关于 avcodec_send_packet() 与 avcodec_receive_frame() 的使用说明:

    [1] 按 dts 递增的顺序向解码器送入编码帧 packet,解码器按 pts 递增的顺序输出原始帧 frame,实际上解码器不关注输入 packe t的 dts(错值都没关系),它只管依次处理收到的 packet,按需缓冲和解码

    [2] avcodec_receive_frame() 输出 frame 时,会根据各种因素设置好 frame->best_effort_timestamp(文档明确说明),实测 frame->pts 也会被设置(通常直接拷贝自对应的 packet.pts,文档未明确说明)用户应确保 avcodec_send_packet() 发送的 packet 具有正确的 pts,编码帧 packet 与原始帧 frame 间的对应关系通过 pts 确定

    [3] avcodec_receive_frame() 输出 frame 时,frame->pkt_dts 拷贝自当前avcodec_send_packet() 发送的 packet 中的 dts,如果当前 packet 为 NULL(flush packet),解码器进入 flush 模式,当前及剩余的 frame->pkt_dts 值总为 AV_NOPTS_VALUE。因为解码器中有缓存帧,当前输出的 frame 并不是由当前输入的 packet 解码得到的,所以这个 frame->pkt_dts 没什么实际意义,可以不必关注

    [4] avcodec_send_packet() 发送第一个 NULL 会返回成功,后续的 NULL 会返回 AVERROR_EOF

    [5] avcodec_send_packet() 多次发送 NULL 并不会导致解码器中缓存的帧丢失,使用 avcodec_flush_buffers() 可以立即丢掉解码器中缓存帧。因此播放完毕时应 avcodec_send_packet(NULL) 来取完缓存的帧,而 SEEK 操作或切换流时应调用 avcodec_flush_buffers() 来直接丢弃缓存帧

    [6] 解码器通常的冲洗方法:调用一次 avcodec_send_packet(NULL)(返回成功),然后不停调用 avcodec_receive_frame() 直到其返回 AVERROR_EOF,取出所有缓存帧,avcodec_receive_frame() 返回 AVERROR_EOF 这一次是没有有效数据的,仅仅获取到一个结束标志

    1.2.7    avformat_close_input()

    关闭打开的流。其原型如下:
    void avformat_close_input(AVFormatContext **s)  

    1.3    编码API

    在基于 FFmpeg 的音视频编码器程序中,avformat_alloc_output_context2() 函数通常是第一个调用的函数(除了组件注册函数 av_register_all())。另外介绍 FFmpeg 的写文件用到的 3 个函数,声明都位于 libavformat\avformat.h:
    •    av_write_frame() 用于写视频数据;
    •    avformat_write_header() 用于写视频文件头;
    •    av_write_trailer() -用于写视频文件尾。

    1.1.1    avformat_alloc_output_context2()

    https://blog.csdn.net/leixiaohua1020/article/details/41198929
    初始化一个用于输出的 AVFormatContext 结构体。其原型如下:
    int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat * oformat, const char * format_name, const char * filename)
    •    ctx:函数调用成功之后创建的AVFormatContext结构体。
    •    oformat:指定AVFormatContext中的AVOutputFormat,用于确定输出格式。如果指定为NULL,可以设定后两个参数(format_name或者filename)由FFmpeg猜测输出格式。
    PS:使用该参数需要自己手动获取AVOutputFormat,相对于使用后两个参数来说要麻烦一些。
    •    format_name:指定输出格式的名称。根据格式名称,FFmpeg会推测输出格式。输出格式可以是“flv”,“mkv”等等。
    •    filename:指定输出文件的名称。根据文件名称,FFmpeg会推测输出格式。文件名称可以是“xx.flv”,“yy.mkv”等等。
    函数执行成功的话,其返回值大于等于0。

    1.1.2    avformat_write_header()

    https://blog.csdn.net/leixiaohua1020/article/details/44116215
    分配一个 stream 的私有数据而且写 stream 的 header 到一个输出的媒体文件。其原型如下:
    int avformat_write_header(AVFormatContext *s, AVDictionary ** options)
    简单解释一下它的参数的含义:
    •    s:用于输出的AVFormatContext。
    •    options:额外的选项,目前没有深入研究过,一般为NULL。

    1.1.3    avcodec_send_frame()

    为编码器提供包含未压缩音频或视频的AVFrame
    函数原型:
    int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame);

    1.1.4    avcodec_receive_packet

    从编码器读取编码数据,一旦成功,它将返回带有压缩帧的AVPacket
    函数原型:
    int avcodec_receive_packet(AVCodecContext *avctx, AVPacket *avpkt);

    1.1.5    编码API使用说明

    关于 avcodec_send_frame() 与 avcodec_receive_packet() 的使用说明:
    [1] 按 pts 递增的顺序向编码器送入原始帧 frame,编码器按 dts 递增的顺序输出编码帧 packet,实际上编码器关注输入 frame 的 pts 不关注其 dts,它只管依次处理收到的 frame,按需缓冲和编码
    [2] avcodec_receive_packet() 输出 packet 时,会设置 packet.dts,从 0 开始,每次输出的 packet 的 dts 加 1,这是视频层的 dts,用户写输出前应将其转换为容器层的 dts
    [3] avcodec_receive_packet() 输出 packet 时,packet.pts 拷贝自对应的 frame.pts,这是视频层的 pts,用户写输出前应将其转换为容器层的 pts
    [4] avcodec_send_frame() 发送 NULL frame 时,编码器进入 flush 模式
    [5] avcodec_send_frame() 发送第一个 NULL 会返回成功,后续的 NULL 会返回 AVERROR_EOF
    [6] avcodec_send_frame() 多次发送 NULL 并不会导致编码器中缓存的帧丢失,使用 avcodec_flush_buffers() 可以立即丢掉编码器中缓存帧。因此编码完毕时应使用 avcodec_send_frame(NULL) 来取完缓存的帧,而SEEK操作或切换流时应调用 avcodec_flush_buffers() 来直接丢弃缓存帧
    [7] 编码器通常的冲洗方法:调用一次 avcodec_send_frame(NULL)(返回成功),然后不停调用 avcodec_receive_packet() 直到其返回 AVERROR_EOF,取出所有缓存帧,avcodec_receive_packet() 返回 AVERROR_EOF 这一次是没有有效数据的,仅仅获取到一个结束标志
    [8] 对音频来说,如果 AV_CODEC_CAP_VARIABLE_FRAME_SIZE(在 AVCodecContext.codec.capabilities 变量中,只读)标志有效,表示编码器支持可变尺寸音频帧,送入编码器的音频帧可以包含任意数量的采样点。如果此标志无效,则每一个音频帧的采样点数目(frame->nb_samples)必须等于编码器设定的音频帧尺寸(avctx->frame_size),最后一帧除外,最后一帧音频帧采样点数可以小于 avctx->frame_size

    1.1.6    av_write_frame()/av_interleaved_write_frame()

    https://blog.csdn.net/leixiaohua1020/article/details/44199673
    用于输出一帧视音频数据。其原型如下:
    int av_write_frame(AVFormatContext *s, AVPacket *pkt)
    •    参数 s 为用于输出的 AVFormatContext
    •    参数 pkt 为等待输出的 AVPacket。
    函数正常执行后返回值等于0。

    int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt);

    将packet写入输出媒体。

    本函数将按需在内部缓存packet,从而确保输出媒体中不同流的packet能按照dts增长的顺序正确交织。

    区别:

    得出的结论是:在有多个流的情况下要用av_interleaved_write_frame,只有单一流2个函数都可以用。

    https://blog.csdn.net/dancing_night/article/details/46469865 

    1.1.7    av_write_trailer()

    https://blog.csdn.net/leixiaohua1020/article/details/44201645
    用于输出文件尾。其原型如下:
    int av_write_trailer(AVFormatContext *s)
    它只需要指定一个参数,即用于输出的 AVFormatContext,函数正常执行后返回值等于 0。

    1.4    图像处理API

    libswscale 是一个主要用于处理图片像素数据的类库。可以完成图片像素格式的转换,图片的拉伸等工作。libswscale 常用的函数数量很少,一般情况下就3个,声明都位于 libswscale\swscale.h:

    •    sws_getContext():分配和返回一个SwsContext。
    •    sws_scale():处理图像数据。
    •    sws_freeContext():释放一个SwsContext。

    其中 sws_getContext() 也可以用 sws_getCachedContext() 取代。

    https://www.cnblogs.com/yongdaimi/p/10715830.html

    1.4.1    sws_getContext()

    分配和返回一个 SwsContext。其原型如下:
    struct SwsContext *sws_getContext(
                int srcW, /* 输入图像的宽度 */
                int srcH, /* 输入图像的宽度 */
                enum AVPixelFormat srcFormat, /* 输入图像的像素格式 */
                int dstW, /* 输出图像的宽度 */
                int dstH, /* 输出图像的高度 */
                enum AVPixelFormat dstFormat, /* 输出图像的像素格式 */
                int flags,/* 选择缩放算法(只有当输入输出图像大小不同时有效),一般选择SWS_FAST_BILINEAR */
                SwsFilter *srcFilter, /* 输入图像的滤波器信息, 若不需要传NULL */
                SwsFilter *dstFilter, /* 输出图像的滤波器信息, 若不需要传NULL */
                const double *param /* 特定缩放算法需要的参数(?),默认为NULL */
                );
    参数1:被转换源的宽

    参数2:被转换源的高

    参数3:被转换源的格式,eg:YUV、RGB……(枚举格式,也可以直接用枚举的代号表示eg:AV_PIX_FMT_YUV420P这些枚举的格式在libavutil/pixfmt.h中列出)

    参数4:转换后指定的宽

    参数5:转换后指定的高

    参数6:转换后指定的格式同参数3的格式

    参数7:转换所使用的算法,

    参数8:NULL

    参数9:NULL

    参数10:NULL

    成功后返回SwsContext 类型的结构体。

    与其类似的函数还有: sws_getCachedContext ,区别在于: sws_getContext 可以用于多路码流转换,为每个不同的码流都指定一个不同的转换上下文,而 sws_getCachedContext 只能用于一路码流转换。

    1.4.2    sws_scale()

    处理图像数据。
    其原型如下:
    int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[],
                  const int srcStride[], int srcSliceY, int srcSliceH,
                  uint8_t *const dst[], const int dstStride[]);

    sws_scale() 函数主要是用来做视频像素格式和分辨率的转换,其优势在于:可以在同一个函数里实现:1.图像色彩空间转换, 2:分辨率缩放,3:前后图像滤波处理。不足之处在于:效率相对较低,不如libyuv或shader

    1.参数 SwsContext *c, 转换格式的上下文。也就是 sws_getContext 函数返回的结果。
    2.参数 const uint8_t *const srcSlice[], 输入图像的每个颜色通道的数据指针。其实就是解码后的AVFrame中的data[]数组。因为不同像素的存储格式不同,所以srcSlice[]维数也有可能不同。
    以YUV420P为例,它是planar格式,它在内存中的排布如下:
    YYYYYYYY UUUU VVVV
    使用FFmpeg解码后存储在AVFrame的data[]数组中时:
    data[0]——-Y分量, Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8…… 
    data[1]——-U分量, U1, U2, U3, U4…… 
    data[2]——-V分量, V1, V2, V3, V4…… 
    linesize[]数组中保存的是对应通道的数据宽度 , 
    linesize[0]——-Y分量的宽度 
    linesize[1]——-U分量的宽度 
    linesize[2]——-V分量的宽度
    而RGB24,它是packed格式,它在data[]数组中则只有一维,它在存储方式如下:
    data[0]: R1, G1, B1, R2, G2, B2, R3, G3, B3, R4, G4, B4……
    这里要特别注意,linesize[0]的值并不一定等于图片的宽度,有时候为了对齐各解码器的CPU,实际尺寸会大于图片的宽度,这点在我们编程时(比如OpengGL硬件转换/渲染)要特别注意,否则解码出来的图像会异常。
    1.参数const int srcStride[],输入图像的每个颜色通道的跨度。.也就是每个通道的行字节数,对应的是解码后的AVFrame中的linesize[]数组。根据它可以确立下一行的起始位置,不过stride和width不一定相同,这是因为:
    a.由于数据帧存储的对齐,有可能会向每行后面增加一些填充字节这样 stride = width + N;
    b.packet色彩空间下,每个像素几个通道数据混合在一起,例如RGB24,每个像素3字节连续存放,因此下一行的位置需要跳过3*width字节。
    4.参数int srcSliceY, int srcSliceH,定义在输入图像上处理区域,srcSliceY是起始位置,srcSliceH是处理多少行。如果srcSliceY=0,srcSliceH=height,表示一次性处理完整个图像。这种设置是为了多线程并行,例如可以创建两个线程,第一个线程处理 [0, h/2-1]行,第二个线程处理 [h/2, h-1]行。并行处理加快速度。
    5.参数uint8_t *const dst[], const int dstStride[]定义输出图像信息(输出的每个颜色通道数据指针,每个颜色通道行字节数)

    1.4.3    sws_freeContext()

    释放一个 SwsContext。其原型如下:
    void sws_freeContext(struct SwsContext *swsContext)

    1.5    重采样API

    https://www.jianshu.com/p/bf5e54f553a4
    FFmpeg中重采样的功能由libswresample(后面简写为lswr)提供。
    lswr提供了高度优化的转换音频的采样频率、声道格式或样本格式的功能。
    功能说明:
    •    采样频率转换:对音频的采样频率进行转换的处理,例如把音频从一个高的44100Hz的采样频率转换到8000Hz。从高采样频率到低采样频率的音频转换是一个有损的过程。API提供了多种的重采样选项和算法。
    •    声道格式转换:对音频的声道格式进行转换的处理,例如立体声转换为单声道。当输入通道不能映射到输出流时,这个过程是有损的,因为它涉及不同的增益因素和混合。
    •    样本格式转换:对音频的样本格式进行转换的处理,例如把s16的PCM数据转换为s8格式或者f32的PCM数据。此外提供了Packed和Planar包装格式之间相互转换的功能,Packed和Planar的区别见FFmpeg中Packed和Planar的PCM数据区别。
    此外,还提供了一些其他音频转换的功能如拉伸和填充,通过专门的设置来启用。

    1.5.1    使用说明

    重采样的处理流程:
    1.    创建上下文环境:重采样过程上下文环境为SwrContext数据结构。
    2.    参数设置:转换的参数设置到SwrContext中。
    1.    SwrContext初始化:swr_init()。
    4.    分配样本数据内存空间:使用av_samples_alloc_array_and_samples、av_samples_alloc等工具函数。
    5.    开启重采样转换:通过重复地调用swr_convert来完成。
    6.    重采样转换完成, 释放相关资源:通过swr_free()释放SwrContext。
    下面是示例程序的一个流程图:

    函数说明:
    •    swr_alloc() :创建SwrContext对象。
    •    av_opt_set_*():设置输入和输出音频的信息。
    •    swr_init(): 初始化SwrContext。
    •    av_samples_alloc_array_and_samples:根据音频格式分配相应大小的内存空间。
    •    av_samples_alloc:根据音频格式分配相应大小的内存空间。用于转换过程中对输出内存大小进行调整。
    •    swr_convert:进行重采样转换。

    1.5.2    swr_alloc()

    函数原型:
    struct SwrContext *swr_alloc(void);

    创建上下文环境,分配一个SwrContext,如果你使用这个函数,需要在调用swr_init()之前设置SwrContext的参数(手工的或者调用swr_alloc_set_opts())
    重采样过程上下文环境为SwrContext数据结构(SwrContext的定义没有对外暴露)。
    创建SwrContext的方式有两种:
    1.    swr_alloc() : 创建SwrContext之后再通过AVOptions的API来设置参数。
    2.    swr_alloc_set_opts():在创建SwrContext的同时设置必要的参数。

    1.5.3    swr_alloc_set_opts()

    函数原型:
    struct SwrContext *swr_alloc_set_opts(struct SwrContext *s,
                                          int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate,
                                          int64_t  in_ch_layout, enum AVSampleFormat  in_sample_fmt, int  in_sample_rate,
                                          int log_offset, void *log_ctx);
    设置参数,参数设置的方式有两种:
    1.    AVOptions的API
    2.    swr_alloc_set_opts():如果第一个参数为NULL则创建一个新的SwrContext,否则对已有的SwrContext进行参数设置。
    假定要进行如下的重采样转换:
    “f32le格式、采样频率48kHz、5.1声道格式”的PCM数据
    转换为
    “s16le格式、采样频率44.1kHz、立体声格式”的PCM数据
    swr_alloc()的使用方式如下所示:
    SwrContext *swr = swr_alloc();
    av_opt_set_channel_layout(swr, "in_channel_layout", AV_CH_LAYOUT_5POINT1, 0);
    av_opt_set_channel_layou(swr, "out_channel_layout", AV_CH_LAYOUT_STEREO, 0);
    av_opt_set_int(swr, "in_sample_rate", 48000, 0);
    av_opt_set_int(swr, "out_sample_rate", 44100, 0);
    av_opt_set_sample_fmt(swr, "in_sample_fmt", AV_SAMPLE_FMT_FLPT, 0);
    av_opt_set_sample_fmt(swr, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0);
    swr_alloc_set_opts()的使用方式如下所示:
    SwrContext *swr = swr_alloc_set_opts(NULL,  // we're allocating a new context
                          AV_CH_LAYOUT_STEREO,  // out_ch_layout
                          AV_SAMPLE_FMT_S16,    // out_sample_fmt
                          44100,                // out_sample_rate
                          AV_CH_LAYOUT_5POINT1, // in_ch_layout
                          AV_SAMPLE_FMT_FLTP,   // in_sample_fmt
                          48000,                // in_sample_rate
                          0,                    // log_offset
                          NULL);                // log_ctx

    1.5.4    swr_init()

    参数设置好之后必须调用swr_init()对SwrContext进行初始化。
    函数原型:
    int swr_init(struct SwrContext *s);
    如果需要修改转换的参数:
    1.    重新进行参数设置。
    2.    再次调用swr_init()。

    1.5.5    av_sample_alloc()

    分配样本数据内存空间
    函数原型:
    /**
     * @param[out] audio_data  输出数组,每个元素是指向一个通道的数据的指针。
     * @param[out] linesize    aligned size for audio buffer(s), may be NULL
     * @param nb_channels      通道的个数。
     * @param nb_samples       每个通道的样本个数。
     * @param align            buffer size alignment (0 = default, 1 = no alignment)
     * @return                 成功返回大于0的数,错误返回负数。
     */
    int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels,
                         int nb_samples, enum AVSampleFormat sample_fmt, int align);

    转换之前需要分配内存空间用于保存重采样的输出数据,内存空间的大小跟通道个数、样本格式需要、容纳的样本个数都有关系。libavutil中的samples处理API提供了一些函数方便管理样本数据,例如av_samples_alloc()函数用于分配存储sample的buffer。

    1.5.6    swr_convert()

    重采样转换是通过重复地调用swr_convert()来完成的。
    swr_convert()函数的定义如下:
     * @param out            输出缓冲区,当PCM数据为Packed包装格式时,只有out[0]会填充有数据。
     * @param out_count      每个通道可存储输出PCM数据的sample数量。
     * @param in             输入缓冲区,当PCM数据为Packed包装格式时,只有in[0]需要填充有数据。
     * @param in_count       输入PCM数据中每个通道可用的sample数量。
     *
     * @return               返回每个通道输出的sample数量,发生错误的时候返回负数。
     */
    int swr_convert(struct SwrContext *s, uint8_t **out, int out_count,
                                    const uint8_t **in , int in_count);
    说明:
    如果没有提供足够的空间用于保存输出数据,采样数据会缓存在swr中。可以通过 swr_get_out_samples()来获取下一次调用swr_convert在给定输入样本数量下输出样本数量的上限,来提供足够的空间。
    如果是采样频率转换,转换完成后采样数据可能会缓存在swr中,它期待你提供更多的输入数据。
    如果实际上并不需要更多输入数据,通过调用swr_convert(),其中参数in_count设置为0来获取缓存在swr中的数据。
    转换结束之后需要冲刷swr_context的缓冲区,通过调用swr_convert(),其中参数in设置为NULL,参数in_count设置为0。

    1.5.7    swr_free()

    原型
    void swr_free(struct SwrContext **  s)  
    释放给定的SwrContext,并且把指针置为空。

    2.参考

    雷神的系列博文 

    音频重采样API 

    展开全文
  • API函数手册

    2013-05-23 11:11:11
    API函数手册.最全的API函数.. VB,VBA中常用API函数手册
  • windows操作系统中所谓句柄是惟一标识某个Windows对象(例如程序实例、窗口、光标、图标、画刷和菜单等)的一个32位无符号整数,句柄是Windows对象的唯一标识符,只有了句柄...Windows程序通常通过调用win32API函数

    windows操作系统中所谓句柄是惟一标识某个Windows对象(例如程序实例、窗口、光标、图标、画刷和菜单等)的一个32位无符号整数,句柄是Windows对象的唯一标识符,只有有了句柄,程序才能使用与其对应的Widows对象。Windows程序通常通过调用win32API函数来获取某个Windows对象的句柄。

    Windows操作系统的很多功能模块是有C语言写的。句柄的数据类型在winn.h中是这样说明的:typedef void* HANDLE;所以句柄是一个泛型(无类型)指针,从物理上看它是一个指针。但从逻辑上看他又不是一个指针,他不是指向一个Windows对象存储单元的首地址,而是指向包含了使用该对象有关信息的一块存储单元,这里面有对象的地址还有其他有关的信息。所以从逻辑上说他是一个对象的唯一标识。

    既然是唯一标识,句柄所指向的内容是不能由句柄操作来改变的,只能由系统来改变。这类似于不能给指针随意赋一个地址值。所以处理句柄时,允许做的唯一操作时检查他是否是一个有效句柄。不等于0时就认为是一个有效句柄,等于0时就是无效句柄。有了句柄,只要给出一个句柄的命令,操作系统就会进行相关的操作,使操作变得简单。

    Windows是一个很全面的操作系统,除了协调应用程序的执行、分配内存、管理系统资源之外,他同时也是也是一个很大的服务中心。调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮助应用程序达到开启视窗,描绘图形,使用周边设备等目的。由于这些函数服务的对象是应用程序,所以称之为应用程序编程接口,简称API。

    API函数是开发Windows应用程序最底层的东西,就连Windows本身的许多应用程序都应用API函数来实现的。随着Windows系统的不断升级,与系统相关的API函数也在不断的变化,最明显的变化是有原来的16位变成了32位。有的API函数可以在每个版本的Windows系统中运行,有的则不可以,例如实现窗体半透明效果的SetLayeredWindowsAttributes函数,他只能在Windows2000及以后的系统下运行。

    API函数都封装在动态链接库中,对API函数的调用都需要加载动态链接库,常用的API函数大都封装在KDRNEL.dll、GDL.dll、USER.dll等几个动态链接库中,但在Microsoft Visual C++中调用API函数并不需要额外加载动态链接库的代码,因为Visual C++会自动与常用的动态链接库相连。

    API函数是开发Win32应用程序的基础,即使使用MFC库来开发Win32应用程序,也要对API函数有一定的了解。因为虽然MFC对API函数进行了封装,但并没有封装所有的API函数,例如发送消息函数SHBrowersForFolder,在开发MFC应用程序过程中经常调用到这个函数。在Microsoft Visual C++中直接使用API函数需要再前面加上::符号,这个符号用来调用全局函数而不是对象函数。在MFC中有许多和API函数同名的函数,在使用API函数的过程中直接按API函数的参数去写,编译器能自动识别这个API函数。

    API函数有许多,分为窗口管理,国际特性,图形设备接口,系统服务,网络服务等几个部分,经常用到的就只有窗口管理和图形设备接口两个部分。下面就对这两部分进行

    窗口管理函数主要用来创建和管理用户界面,包括了按钮、对话框、光标、编辑框等对象的创建以及处理鼠标、键盘输入和处理消息等。窗口管理常用的函数参照表如下:

    函数描述
    CreateWindow创建一个窗体
    CreateWindowEx创建一个窗体
    CreateDialog通过资源创建对话框
    CreateIcon按指定的大小、颜色、位、创建图标
    DrawIcon在限定的设备上下文窗口的客户区域绘制图标
    GetIconInfo获取图标或光标的信息
    CreateCursor创建一个指定大小、位模式和热点的光标
    GetCusor获取当前光标的句柄
    SetCusor确定光标的形状
    ShowCursor显示或隐藏光标
    CreateMenu创建一个菜单
    DeleteMenu从指定菜单里删除一个菜单项
    EnableMenuItem使指定的菜单项有效、无效或变灰
    GetMenu取得分配给指定窗口的菜单的句柄
    LoadMenu从与应用程序实例相联系的可执行文件中加载指定的菜单资源
    TrackPopupMenu从指定的位置显示菜单
    DlgDirList

    显示指定文件夹的内容

    RegisterClass注册窗口类
      

    图形设备接口类函数提供对设备上下文中各个对象的操作,主要有位图对象,颜色对象,画刷对象,画笔对象等。

    图形设备接口藏用的函数如下表所示

    函数描述
    BitBlt源设备环境区域中的像素通目标设备环境转换
    CreateCompatibleBitmap创建于指定的设备环境相的设备兼容的位图
    CreateDIBitmap创建与设备有关的位图
    GetDiBits获取指定位图的信息
    GetPixel检索指定坐标点的像素的RGB颜色值
    LoadBitmap从模板的可执行文件中加载指定的位图资源
    CreateBrushIndirect创建具有指定风格、颜色和模式的画刷
    CreateSolidBrush创建一个具有指定颜色的画刷
    CreatePalette创建一个逻辑的调色板
    ResizePalette增大或减小基于指定值的逻辑调色板的大小
    SelectPalette选择指定的逻辑调色板到指定的设备环境中
    CreateCompatibleDC创建一个与指定设备兼容的内存设备上下文环境
    GetDeviceCaps获取指定设备的设备指定信息
    GetStockObject检索预定义的备用笔、刷子、字体或者调色板的句柄
    Chord画一段圆弧
    FillRect用指定的画刷填充矩形
    Polygon画一个由相连的两个以上顶点的多边形
    Rectangle画一个矩形
    DrawText在指定的矩形里写入格式化文本
    GetTextColor获得指定设备环境的当前文字颜色
    GetTextFace获得被选进指定设备环境中的姿态字样名
      

    展开全文
  • 个人开发Unity3d游戏中常用API函数

    千次阅读 2017-03-10 23:32:25
    1.Instantiate 原型:public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);...1)该函数返回值在monodevelop中查看返回值为GameObject,官方api手册中为Objec

    1.Instantiate

    原型:public static Object Instantiate(Object originalVector3 positionQuaternion rotation);

    作用:生成对象实例。可用于新生成子弹/炮弹/物体,也可用于刷新敌人

    注:

    1)该函数返回值在monodevelop中查看返回值为GameObject,官方api手册中为Object

    2)该函数共有4个不同的版本对应不同的传参,以上为最常用版本

    3)获取新生成的物体的属性/组件时,需要定义变量储存以便访问,如:

    Game Object p = Instantiate ();

    Rigidbody m = p.GetComponent<Rigidbody> ();

    2.位移函数

    (1)transform.Translate

    原型:public void Translate(Vector3 translationSpace relativeTo = Space.Self);

    作用:使某物在三维世界中“瞬移”

    例:transform.Translate (new Vector3 (0, 0, 1) * moveSpeed * Time.deltaTime);

    注:参数为矢量,必须带方向,可加速度变量乘在参数内

    (2)velocity(对于刚体)

    原型:public Vector3 velocity;

    例:r.velocity = shootPoint.forward * shootPower;

    注:赋值刚体速度,同样也为矢量,适用物理定律

    3.transform.RotateAround

    原型:public void RotateAround(Vector3 pointVector3 axis, float angle);

    作用:使某物绕另一物体的哪一跟轴旋转

    例:transform.RotateAround (center.GetComponent<Transform>().position,Vector3.up,-70 * Time.deltaTime);

    使transform绕着center的y轴旋转,速度为70

    4.Physics.OverlapSphere

    原型:

    public static Collider[]  OverlapSphere( Vector3  position, float  radius, int  layerMask = AllLayers,  QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
    作用:用于捕捉以position为圆心的一个圆内的所有碰撞器,返回值会碰撞器数组,一般用于 OnCollisionEnter()触发碰撞检测时获取碰撞物(如手雷爆炸等)
    例:Collider[] cols = Physics.OverlapSphere (transform.position,explosionRadius);
    5.Rigidbody.AddExplosionForce
    原型:public void AddForce(Vector3 forceForceMode mode = ForceMode.Force);
    作用:增加力场在某点上,可用于爆炸等场景模拟
    例: rb.AddExplosionForce (explosionPower,transform.position,explosionRadius);
    在rb上增加一个力量为explosionPower,位置为自己,爆炸半径为explosionRadius的力
    6.Destory
    原型: public static void  Destroy ( Object   obj , float  t  = 0.0F);
    作用:在场景中删除某物
    例:Destroy (gameObject); //删除gameObject
       Destroy (se,delayClearExplosion); //在delayClearExplosion秒后删除se

    待更新

    ·事件函数:

    事件函数总览:


    void Reset():当脚本被附加在GameObject上或者在面板中点击脚本的reset键时执行

    void FixedUpdate():以固定帧率调用,有可能会出现一帧被调用多次,用于与运动相关的代码控制

    ·Time类

    captureFramerate:将游戏速度减缓至(1/数值)时间,便于进行游戏截图

     Time.captureFramerate = 25;

    deltaTime:计算每帧之间的间隔事件,常用于时间累积,或者控制跟运动相关的代码时,在参数中相乘

    frameCount:计算到目前为止的总帧数(frameCount当所有Awake都执行完毕后开始计算,在Awake执行期间,值为未定义)

    timeScale:控制游戏运行速度,影响几乎所有Time类成员(主要影响deltaTime)可用于游戏暂停,默认值为1,数值大于1为加速,小于1为减速,为0时暂停且FixedUpdate()将不会执行


    展开全文
  • API函数大全

    热门讨论 2011-12-05 22:31:52
    API函数大全
  • Linux C编程常用API函数

    千次阅读 2015-09-14 00:33:39
    最近找到了一个特别好的在线Linux C API函数,给大家分享一下。 1. 字符测试函数 2. 字符串操作 3. 内存管理函数 4. 日期与时间函数 5. 数学函数 6. 文件操作函数 7. 进程管理函数 8. 文件权限控制 9. 信号...
  • 查看某个程序都调用哪些API函数

    热门讨论 2012-07-27 10:08:07
    用于查看某个程序都调用了哪些API函数,以此来了解某个程序的功能是如何实现的,可查看函数名称和库名,支持拖放操作
  • c# API 函数

    2007-07-27 21:39:52
    c# API 函数,windows API 函数
  • 查看DLL中有哪些API(函数)

    热门讨论 2011-12-21 16:10:18
    可以查看任何 DLL 什么对外公开的函数API) 支持所有对外开放的DLL.
  • c语言调用api函数

    万次阅读 2017-10-28 13:41:52
    c语言中怎么调用windowsAPI函数, 要详细,请举个程序例子,不要说加个#include。这个我清楚 我的环境也是VC++,我想要一个c语言中怎么调用windows API的实例,谢谢! 比如messagebox()这个API函数在WINDOWS.H文件中...
  • C#API函数大全查询软件

    热门讨论 2009-07-23 01:42:45
    C#API函数大全查询软件 C#API函数大全查询软件 C#API函数大全查询软件 C#API函数大全查询软件
  • Windows系统API常用函数(89个)简单例子大全 89个常用函数的详细解释及简单例子,对入门学习的人员比较好指导作用。
  • python 3.4 chm api 函数手册

    千次下载 热门讨论 2015-01-19 16:43:10
    python 3.4 chm api 函数手册
  • API函数详细详细介绍

    2008-01-27 15:21:51
    chm文件,可更好的阅读和管理Windows API 函数。 本手册中的Windows API 函数大约774个,共分十二大类,基本上包括了大部分的常用和非常用的Windows API 函数
  • Windows API又叫做 API 函数, 是 Windows 的核心,从技术上讲,...API 叫做 “应用程序编程接口”(Application Programming Interface) ,我们在使用各种各样的编程语言在 Windows 开发时,都可以使用 API函数
  • VB调用API函数

    万次阅读 多人点赞 2016-01-13 20:17:36
     一、在VB中声明API函数有两种方法:如果我们只在某个窗体中使用API函数,我们可以在窗体代码的 General部分声明它:    声明的语法是:  Private Declare Function ...  Private Declare Sub.....  这里...
  • API函数查询器

    2007-04-30 13:28:53
    API函数查询器API函数查询器
  • Windows C++ API函数大全

    2008-09-07 22:39:13
    Windows C++ API函数大全,Windows C++ API函数大全
  • VB.NET 使用WIN32 API函数,VB.NET使用Windows API函数 很不错的VB.NET 使用WIN32 API函数教程 参考网址: http://www.pinvoke.net/default.aspx/user32/GetWindowTextLength.htm
  • 一、在VB中声明API函数有两种方法:如果我们只在某个窗体中使用API函数,我们可以在窗体代码的General部分声明它: 声明的语法是: Private Declare Function ... Private Declare Sub..... 这里必须采用Private声明...
  • WindowsAPI函数参考手册

    2018-10-05 20:45:34
    WindowsAPI参考手册,内容很好,常用API 进程 线程 等等
  • Windows API函数大全

    2007-05-30 12:48:11
    1. API之网络函数 1 2. API之消息函数 2 3. API之文件处理函数 2 4. API之打印函数 7 5. API之文本和字体函数 10 6. API之菜单函数 12 7. API之位图、图标和光栅运算函数 14 8. API之...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,097,995
精华内容 439,198
关键字:

常用的api函数有哪些