list of dll functions with parameter types for DllCall

Put simple Tips and Tricks that are not entire Tutorials in this forum
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

list of dll functions with parameter types for DllCall

20 Apr 2017, 21:09

[Update:]
This list is being maintained here in a function called JEE_TidyDllCallGetList:
DllCall converter/cleaner (e.g. x32 to x64/x32 two-way compatible) - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=6&t=31365

There is a longer list here, although note: parameters are specified with the correct size, but not necessarily the correct sign (signed/unsigned), unless they are return types, because sign only matters when you read a value.
WinApi
https://hotkeyit.github.io/v2/docs/commands/WinApi.htm

==================================================

See also:
list of handy dll functions - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=7&t=34017

This is a list of dll functions with parameter types, for use with DllCall. More dll functions may be added in future.

One major change that could happen is that more instances of 'Ptr' will be replaced with 'Ptr|IntP' or 'Ptr|Str' etc where appropriate.

The information at MSDN for dll functions and parameters is not always correct, or easy (possible?) to find, hence the presence of the word 'ERROR' in many places.

- Please use with caution.
- *Do not assume that the list is accurate.*
- Do notify of any errors.

I will provide code for generating this list in the near future.

The information is presented in 3 ways:
[dll\function,ReturnType,Type1,Type2,Type3,...][MSDN style]
[dll\function,Type1,Type2,Type3,...,(ReturnType)][AHK style]
[DllCall templates]

Note: GetProcAddress uses AStr.

Code: Select all

;[dll\function,ReturnType,Type1,Type2,Type3,...][MSDN style]
advapi32\AdjustTokenPrivileges,BOOL,HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD
advapi32\CryptAcquireContextW,BOOL,HCRYPTPROV*,LPCTSTR,LPCTSTR,DWORD,DWORD
advapi32\CryptCreateHash,BOOL,HCRYPTPROV,ALG_ID,HCRYPTKEY,DWORD,HCRYPTHASH*
advapi32\CryptDestroyHash,BOOL,HCRYPTHASH
advapi32\CryptGetHashParam,BOOL,HCRYPTHASH,DWORD,BYTE*,DWORD*,DWORD
advapi32\CryptHashData,BOOL,HCRYPTHASH,BYTE*,DWORD,DWORD
advapi32\CryptReleaseContext,BOOL,HCRYPTPROV,DWORD
advapi32\IsTextUnicode,BOOL,VOID*,int,LPINT
advapi32\LookupPrivilegeValueW,BOOL,LPCTSTR,LPCTSTR,PLUID
advapi32\OpenProcessToken,BOOL,HANDLE,DWORD,PHANDLE
advapi32\RegOpenKeyExW,LONG,HKEY,LPCTSTR,DWORD,[ERROR]REGSAM,PHKEY
advapi32\RegQueryInfoKeyW,LONG,HKEY,LPTSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,PFILETIME
advapi32\RegQueryValueExW,LONG,HKEY,LPCTSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD
comctl32\DllGetVersion,HRESULT,DLLVERSIONINFO*
comctl32\ImageList_Add,int,HIMAGELIST,HBITMAP,HBITMAP
comctl32\ImageList_Create,HIMAGELIST,int,int,UINT,int,int
comctl32\ImageList_Replace,BOOL,HIMAGELIST,int,HBITMAP,HBITMAP
comctl32\ImageList_ReplaceIcon,int,HIMAGELIST,int,HICON
comctl32\InitCommonControlsEx,BOOL,LPINITCOMMONCONTROLSEX
crypt32\CryptStringToBinaryW,BOOL,LPCTSTR,DWORD,DWORD,BYTE*,DWORD*,DWORD*,DWORD*
dwmapi\DwmGetWindowAttribute,HRESULT,HWND,DWORD,PVOID,DWORD
dwmapi\DwmIsCompositionEnabled,HRESULT,BOOL*
gdi32\BitBlt,BOOL,HDC,int,int,int,int,HDC,int,int,DWORD
gdi32\CreateCompatibleBitmap,HBITMAP,HDC,int,int
gdi32\CreateCompatibleDC,HDC,HDC
gdi32\CreateDIBSection,HBITMAP,HDC,BITMAPINFO*,UINT,VOID*,HANDLE,DWORD
gdi32\CreateFontIndirectW,HFONT,LOGFONT*
gdi32\CreateFontW,HFONT,int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCTSTR
gdi32\CreatePen,HPEN,int,int,COLORREF
gdi32\CreateSolidBrush,HBRUSH,COLORREF
gdi32\DeleteDC,BOOL,HDC
gdi32\DeleteEnhMetaFile,BOOL,HENHMETAFILE
gdi32\DeleteObject,BOOL,HGDIOBJ
gdi32\GetDeviceCaps,int,HDC,int
gdi32\GetDIBits,int,HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT
gdi32\GetEnhMetaFileBits,UINT,HENHMETAFILE,UINT,LPBYTE
gdi32\GetFontUnicodeRanges,DWORD,HDC,LPGLYPHSET
gdi32\GetObjectW,int,HGDIOBJ,int,LPVOID
gdi32\GetStockObject,HGDIOBJ,int
gdi32\GetTextExtentPoint32W,BOOL,HDC,LPCTSTR,int,LPSIZE
gdi32\GetTextFaceW,int,HDC,int,LPTSTR
gdi32\RealizePalette,UINT,HDC
gdi32\Rectangle,BOOL,HDC,int,int,int,int
gdi32\SelectObject,HGDIOBJ,HDC,HGDIOBJ
gdi32\SelectPalette,HPALETTE,HDC,HPALETTE,BOOL
gdi32\SetBkColor,COLORREF,HDC,COLORREF
gdi32\SetEnhMetaFileBits,HENHMETAFILE,UINT,BYTE*
gdi32\SetStretchBltMode,int,HDC,int
gdi32\SetTextColor,COLORREF,HDC,COLORREF
gdi32\StretchBlt,BOOL,HDC,int,int,int,int,HDC,int,int,int,int,DWORD
imagehlp\ImageDirectoryEntryToData,PVOID,PVOID,BOOLEAN,USHORT,PULONG
imagehlp\ImageRvaToVa,PVOID,PIMAGE_NT_HEADERS,PVOID,ULONG,PIMAGE_SECTION_HEADER*
imagehlp\MapAndLoad,BOOL,PSTR,PSTR,PLOADED_IMAGE,BOOL,BOOL
imagehlp\UnMapAndLoad,BOOL,PLOADED_IMAGE
kernel32\AllocConsole,BOOL
kernel32\AttachConsole,BOOL,DWORD
kernel32\CloseHandle,BOOL,HANDLE
kernel32\CreateFileW,HANDLE,LPCTSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE
kernel32\CreateProcessW,BOOL,LPCTSTR,LPTSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCTSTR,LPSTARTUPINFO,LPPROCESS_INFORMATION
kernel32\CreateRemoteThread,HANDLE,HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD
kernel32\CreateToolhelp32Snapshot,HANDLE,DWORD,DWORD
kernel32\DeleteFileA,BOOL,LPCTSTR
kernel32\DeleteFileW,BOOL,LPCTSTR
kernel32\DeviceIoControl,BOOL,HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED
kernel32\ExpandEnvironmentStringsW,DWORD,LPCTSTR,LPTSTR,DWORD
kernel32\FileTimeToLocalFileTime,BOOL,FILETIME*,LPFILETIME
kernel32\FileTimeToSystemTime,BOOL,FILETIME*,LPSYSTEMTIME
kernel32\FindClose,BOOL,HANDLE
kernel32\FindFirstFileW,HANDLE,LPCTSTR,LPWIN32_FIND_DATA
kernel32\FindNextFileW,BOOL,HANDLE,LPWIN32_FIND_DATA
kernel32\FindResourceW,HRSRC,HMODULE,LPCTSTR,LPCTSTR
kernel32\FormatMessageA,DWORD,DWORD,LPCVOID,DWORD,DWORD,LPTSTR,DWORD,va_list*
kernel32\FormatMessageW,DWORD,DWORD,LPCVOID,DWORD,DWORD,LPTSTR,DWORD,va_list*
kernel32\FreeConsole,BOOL
kernel32\FreeLibrary,BOOL,HMODULE
kernel32\GetACP,UINT
kernel32\GetCommandLineW,LPTSTR
kernel32\GetCurrentProcessId,DWORD
kernel32\GetCurrentThreadId,DWORD
kernel32\GetDiskFreeSpaceExW,BOOL,LPCTSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER
kernel32\GetEnvironmentVariableW,DWORD,LPCTSTR,LPTSTR,DWORD
kernel32\GetExitCodeThread,BOOL,HANDLE,LPDWORD
kernel32\GetFileAttributesW,DWORD,LPCTSTR
kernel32\GetFileSizeEx,BOOL,HANDLE,PLARGE_INTEGER
kernel32\GetLastError,DWORD
kernel32\GetLocalTime,void,LPSYSTEMTIME
kernel32\GetLogicalDrives,DWORD
kernel32\GetLogicalDriveStringsW,DWORD,DWORD,LPTSTR
kernel32\GetModuleFileNameW,DWORD,HMODULE,LPTSTR,DWORD
kernel32\GetModuleHandleW,HMODULE,LPCTSTR
kernel32\GetPriorityClass,DWORD,HANDLE
kernel32\GetProcAddress,[ERROR]FARPROC,HMODULE,LPCSTR
kernel32\GetProcessTimes,BOOL,HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME
kernel32\GetStdHandle,HANDLE,DWORD
kernel32\GetTempFileNameW,UINT,LPCTSTR,LPCTSTR,UINT,LPTSTR
kernel32\GetVersion,DWORD
kernel32\GetVersionExW,BOOL,LPOSVERSIONINFO
kernel32\GlobalAlloc,HGLOBAL,UINT,SIZE_T
kernel32\GlobalFree,HGLOBAL,HGLOBAL
kernel32\GlobalLock,LPVOID,HGLOBAL
kernel32\GlobalSize,SIZE_T,HGLOBAL
kernel32\GlobalUnlock,BOOL,HGLOBAL
kernel32\IsWow64Process,BOOL,HANDLE,PBOOL
kernel32\LCMapStringW,int,LCID,DWORD,LPCTSTR,int,LPTSTR,int
kernel32\LoadLibraryW,HMODULE,LPCTSTR
kernel32\LoadResource,HGLOBAL,HMODULE,HRSRC
kernel32\LocalFileTimeToFileTime,BOOL,FILETIME*,LPFILETIME
kernel32\LockResource,LPVOID,HGLOBAL
kernel32\lstrcpy,LPTSTR,LPTSTR,LPTSTR
kernel32\lstrcpyn,LPTSTR,LPTSTR,LPCTSTR,int
kernel32\lstrlen,int,LPCTSTR
kernel32\Module32First,BOOL,HANDLE,LPMODULEENTRY32
kernel32\Module32Next,BOOL,HANDLE,LPMODULEENTRY32
kernel32\MulDiv,int,int,int,int
kernel32\MultiByteToWideChar,int,UINT,DWORD,LPCSTR,int,LPWSTR,int
kernel32\OpenProcess,HANDLE,DWORD,BOOL,DWORD
kernel32\QueryPerformanceCounter,BOOL,LARGE_INTEGER*
kernel32\ReadFile,BOOL,HANDLE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED
kernel32\ReadProcessMemory,BOOL,HANDLE,LPCVOID,LPVOID,SIZE_T,SIZE_T*
kernel32\RtlMoveMemory,VOID,VOID*,VOID*,SIZE_T
kernel32\SetFilePointerEx,BOOL,HANDLE,LARGE_INTEGER,PLARGE_INTEGER,DWORD
kernel32\SetFileTime,BOOL,HANDLE,FILETIME*,FILETIME*,FILETIME*
kernel32\SetLastError,void,DWORD
kernel32\SetProcessShutdownParameters,BOOL,DWORD,DWORD
kernel32\SetSystemTime,BOOL,SYSTEMTIME*
kernel32\SizeofResource,DWORD,HMODULE,HRSRC
kernel32\Sleep,VOID,DWORD
kernel32\SystemTimeToFileTime,BOOL,SYSTEMTIME*,LPFILETIME
kernel32\SystemTimeToTzSpecificLocalTime,BOOL,LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME
kernel32\TzSpecificLocalTimeToSystemTime,BOOL,LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME
kernel32\VirtualAllocEx,LPVOID,HANDLE,LPVOID,SIZE_T,DWORD,DWORD
kernel32\VirtualFreeEx,BOOL,HANDLE,LPVOID,SIZE_T,DWORD
kernel32\VirtualProtect,BOOL,LPVOID,SIZE_T,DWORD,PDWORD
kernel32\VirtualProtectEx,BOOL,HANDLE,LPVOID,SIZE_T,DWORD,PDWORD
kernel32\VirtualQueryEx,SIZE_T,HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T
kernel32\WaitForSingleObject,DWORD,HANDLE,DWORD
kernel32\WideCharToMultiByte,int,UINT,DWORD,LPCWSTR,int,LPSTR,int,LPCSTR,LPBOOL
kernel32\Wow64DisableWow64FsRedirection,BOOL,PVOID*
kernel32\WriteFile,BOOL,HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED
kernel32\WriteProcessMemory,BOOL,HANDLE,LPVOID,LPCVOID,SIZE_T,SIZE_T*
Magnification\MagInitialize,BOOL
Magnification\MagSetImageScalingCallback,BOOL,HWND,[ERROR]MagImageScalingCallback
Magnification\MagSetWindowSource,BOOL,HWND,[ERROR]RECT
Magnification\MagSetWindowTransform,BOOL,HWND,PMAGTRANSFORM
Magnification\MagUninitialize,BOOL
ole32\CLSIDFromProgID,HRESULT,LPCOLESTR,LPCLSID
ole32\CLSIDFromString,HRESULT,LPCOLESTR,LPCLSID
ole32\CoCreateGuid,HRESULT,GUID*
ole32\CoCreateInstance,HRESULT,[ERROR]REFCLSID,LPUNKNOWN,DWORD,[ERROR]REFIID,LPVOID*
ole32\CoGetObject,HRESULT,LPCWSTR,BIND_OPTS*,[ERROR]REFIID,void*
ole32\CoInitialize,HRESULT,LPVOID
ole32\CoTaskMemAlloc,LPVOID,SIZE_T
ole32\CoTaskMemFree,void,LPVOID
ole32\CoUninitialize,void
ole32\CreateStreamOnHGlobal,[ERROR]WINOLEAPI,HGLOBAL,BOOL,LPSTREAM*
ole32\IsEqualGUID,BOOL,[ERROR]REFGUID,[ERROR]REFGUID
ole32\OleInitialize,HRESULT,LPVOID
ole32\OleUninitialize,void
ole32\ProgIDFromCLSID,HRESULT,[ERROR]REFCLSID,LPOLESTR*
ole32\StringFromGUID2,int,[ERROR]REFGUID,LPOLESTR,int
oleacc\AccessibleChildren,[ERROR]STDAPI,IAccessible*,LONG,LONG,VARIANT*,LONG*
oleacc\AccessibleObjectFromEvent,[ERROR]STDAPI,HWND,DWORD,DWORD,IAccessible*,VARIANT*
oleacc\AccessibleObjectFromPoint,[ERROR]STDAPI,[ERROR]POINT,IAccessible*,VARIANT*
oleacc\AccessibleObjectFromWindow,[ERROR]STDAPI,HWND,DWORD,[ERROR]REFIID,void*
oleacc\GetRoleTextA,UINT,DWORD,LPTSTR,UINT
oleacc\GetRoleTextW,UINT,DWORD,LPTSTR,UINT
oleacc\GetStateTextA,UINT,DWORD,LPTSTR,UINT
oleacc\GetStateTextW,UINT,DWORD,LPTSTR,UINT
oleacc\ObjectFromLresult,[ERROR]STDAPI,LRESULT,[ERROR]REFIID,WPARAM,void*
oleacc\WindowFromAccessibleObject,[ERROR]STDAPI,IAccessible*,HWND*
oleaut32\DispGetParam,HRESULT,DISPPARAMS*,UINT,[ERROR]VARTYPE,VARIANT*,UINT*
oleaut32\GetActiveObject,HRESULT,[ERROR]REFCLSID,void*,IUnknown*
oleaut32\SafeArrayAccessData,HRESULT,SAFEARRAY*,void*
oleaut32\SafeArrayDestroy,HRESULT,SAFEARRAY*
oleaut32\SafeArrayGetDim,UINT,SAFEARRAY*
oleaut32\SafeArrayUnaccessData,HRESULT,SAFEARRAY*
oleaut32\SysAllocString,[ERROR]BSTR,OLECHAR*
oleaut32\SysFreeString,void,[ERROR]BSTR
oleaut32\SysStringLen,UINT,[ERROR]BSTR
oleaut32\VariantChangeTypeEx,HRESULT,VARIANTARG*,VARIANTARG*,LCID,USHORT,[ERROR]VARTYPE
oleaut32\VariantClear,HRESULT,VARIANTARG*
powrprof\SetSuspendState,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN
psapi\EnumProcesses,BOOL,DWORD*,DWORD,DWORD*
psapi\GetMappedFileNameW,DWORD,HANDLE,LPVOID,LPTSTR,DWORD
psapi\GetModuleBaseNameW,DWORD,HANDLE,HMODULE,LPTSTR,DWORD
psapi\GetModuleFileNameExA,DWORD,HANDLE,HMODULE,LPTSTR,DWORD
psapi\GetModuleFileNameExW,DWORD,HANDLE,HMODULE,LPTSTR,DWORD
psapi\GetProcessImageFileNameW,DWORD,HANDLE,LPTSTR,DWORD
shell32\ExtractIconEx,UINT,LPCTSTR,int,HICON*,HICON*,UINT
shell32\SHAddToRecentDocs,void,UINT,LPCVOID
shell32\SHBindToParent,HRESULT,PCIDLIST_ABSOLUTE,[ERROR]REFIID,VOID*,PCUITEMID_CHILD*
shell32\SHChangeNotify,void,LONG,UINT,LPCVOID,LPCVOID
shell32\Shell_NotifyIcon,BOOL,DWORD,PNOTIFYICONDATA
shell32\SHGetFileInfo,DWORD_PTR,LPCTSTR,DWORD,SHFILEINFO*,UINT,UINT
shell32\SHGetFileInfoW,DWORD_PTR,LPCTSTR,DWORD,SHFILEINFO*,UINT,UINT
shell32\SHGetFolderLocation,HRESULT,HWND,int,HANDLE,DWORD,PIDLIST_ABSOLUTE*
shell32\SHGetFolderPathW,HRESULT,HWND,int,HANDLE,DWORD,LPTSTR
shell32\SHParseDisplayName,HRESULT,LPCWSTR,IBindCtx*,PIDLIST_ABSOLUTE*,[ERROR]SFGAOF,SFGAOF*
shell32\SHQueryRecycleBinA,HRESULT,LPCTSTR,LPSHQUERYRBINFO
shlwapi\AssocQueryStringW,HRESULT,[ERROR]ASSOCF,[ERROR]ASSOCSTR,LPCTSTR,LPCTSTR,LPTSTR,DWORD*
shlwapi\PathCreateFromUrlW,HRESULT,PCTSTR,PTSTR,DWORD*,DWORD
shlwapi\SHGetViewStatePropertyBag,HRESULT,PCIDLIST_ABSOLUTE,PCWSTR,DWORD,[ERROR]REFIID,void*
shlwapi\StrCmpLogicalW,int,PCWSTR,PCWSTR
shlwapi\StrCmpNW,int,PCTSTR,PCTSTR,int
shlwapi\StrStrIW,PTSTR,PTSTR,PCTSTR
shlwapi\UrlCreateFromPathW,HRESULT,PCTSTR,PTSTR,DWORD*,DWORD
user32\AttachThreadInput,BOOL,DWORD,DWORD,BOOL
user32\CallNextHookEx,LRESULT,HHOOK,int,WPARAM,LPARAM
user32\CallWindowProcA,LRESULT,WNDPROC*,HWND,UINT,WPARAM,LPARAM
user32\CallWindowProcW,LRESULT,WNDPROC*,HWND,UINT,WPARAM,LPARAM
user32\CharLowerW,LPTSTR,LPTSTR
user32\CharUpperW,LPTSTR,LPTSTR
user32\ClientToScreen,BOOL,HWND,LPPOINT
user32\CloseClipboard,BOOL
user32\CopyIcon,HICON,HICON
user32\CopyImage,HANDLE,HANDLE,UINT,int,int,UINT
user32\CountClipboardFormats,int
user32\CreateCaret,BOOL,HWND,HBITMAP,int,int
user32\CreateCursor,HCURSOR,HINSTANCE,int,int,int,int,VOID*,VOID*
user32\CreateDialogParamW,HWND,HINSTANCE,LPCTSTR,HWND,[ERROR]DLGPROC,LPARAM
user32\CreateIconFromResourceEx,HICON,PBYTE,DWORD,BOOL,DWORD,int,int,UINT
user32\CreatePopupMenu,HMENU
user32\CreateWindowExW,HWND,DWORD,LPCTSTR,LPCTSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID
user32\DefWindowProcW,LRESULT,HWND,UINT,WPARAM,LPARAM
user32\DestroyIcon,BOOL,HICON
user32\DestroyMenu,BOOL,HMENU
user32\DrawIconEx,BOOL,HDC,int,int,HICON,int,int,UINT,HBRUSH,UINT
user32\DrawTextExW,int,HDC,LPTSTR,int,LPRECT,UINT,LPDRAWTEXTPARAMS
user32\DrawTextW,int,HDC,LPCTSTR,int,LPRECT,UINT
user32\EmptyClipboard,BOOL
user32\EnableMenuItem,BOOL,HMENU,UINT,UINT
user32\EnumClipboardFormats,UINT,UINT
user32\EnumDisplayDevicesW,BOOL,LPCTSTR,DWORD,PDISPLAY_DEVICE,DWORD
user32\EnumWindows,BOOL,WNDENUMPROC*,LPARAM
user32\FillRect,int,HDC,RECT*,HBRUSH
user32\FindWindowExW,HWND,HWND,HWND,LPCTSTR,LPCTSTR
user32\FindWindowW,HWND,LPCTSTR,LPCTSTR
user32\GetActiveWindow,HWND
user32\GetAncestor,HWND,HWND,UINT
user32\GetCaretBlinkTime,UINT
user32\GetCaretPos,BOOL,LPPOINT
user32\GetClassLongW,DWORD,HWND,int
user32\GetClientRect,BOOL,HWND,LPRECT
user32\GetClipboardData,HANDLE,UINT
user32\GetClipboardFormatNameW,int,UINT,LPTSTR,int
user32\GetCursorInfo,BOOL,PCURSORINFO
user32\GetCursorPos,BOOL,LPPOINT
user32\GetDC,HDC,HWND
user32\GetDCEx,HDC,HWND,HRGN,DWORD
user32\GetFocus,HWND
user32\GetForegroundWindow,HWND
user32\GetGUIThreadInfo,BOOL,DWORD,LPGUITHREADINFO
user32\GetIconInfo,BOOL,HICON,PICONINFO
user32\GetKeyNameTextW,int,LONG,LPTSTR,int
user32\GetMenu,HMENU,HWND
user32\GetMenuBarInfo,BOOL,HWND,LONG,LONG,PMENUBARINFO
user32\GetMenuItemCount,int,HMENU
user32\GetMenuItemID,UINT,HMENU,int
user32\GetMenuItemInfoW,BOOL,HMENU,UINT,BOOL,LPMENUITEMINFO
user32\GetMenuItemRect,BOOL,HWND,HMENU,UINT,LPRECT
user32\GetMenuStringW,int,HMENU,UINT,LPTSTR,int,UINT
user32\GetOpenClipboardWindow,HWND
user32\GetParent,HWND,HWND
user32\GetScrollPos,int,HWND,int
user32\GetSubMenu,HMENU,HMENU,int
user32\GetSysColor,DWORD,int
user32\GetSystemMenu,HMENU,HWND,BOOL
user32\GetWindow,HWND,HWND,UINT
user32\GetWindowInfo,BOOL,HWND,PWINDOWINFO
user32\GetWindowLongW,LONG,HWND,int
user32\GetWindowRect,BOOL,HWND,LPRECT
user32\GetWindowRgnBox,int,HWND,LPRECT
user32\GetWindowTextA,int,HWND,LPTSTR,int
user32\GetWindowThreadProcessId,DWORD,HWND,LPDWORD
user32\HideCaret,BOOL,HWND
user32\InsertMenuW,BOOL,HMENU,UINT,UINT,UINT_PTR,LPCTSTR
user32\InvalidateRect,BOOL,HWND,RECT*,BOOL
user32\IsCharAlphaW,BOOL,TCHAR
user32\IsChild,BOOL,HWND,HWND
user32\IsClipboardFormatAvailable,BOOL,UINT
user32\IsWindow,BOOL,HWND
user32\IsWindowUnicode,BOOL,HWND
user32\IsWindowVisible,BOOL,HWND
user32\LoadCursorFromFileW,HCURSOR,LPCTSTR
user32\LoadCursorW,HCURSOR,HINSTANCE,LPCTSTR
user32\LoadIconW,HICON,HINSTANCE,LPCTSTR
user32\LoadImageA,HANDLE,HINSTANCE,LPCTSTR,UINT,int,int,UINT
user32\LoadImageW,HANDLE,HINSTANCE,LPCTSTR,UINT,int,int,UINT
user32\LoadStringW,int,HINSTANCE,UINT,LPTSTR,int
user32\LockWorkStation,BOOL
user32\MessageBoxW,int,HWND,LPCTSTR,LPCTSTR,UINT
user32\ModifyMenuW,BOOL,HMENU,UINT,UINT,UINT_PTR,LPCTSTR
user32\OpenClipboard,BOOL,HWND
user32\PaintDesktop,BOOL,HDC
user32\PostMessageW,BOOL,HWND,UINT,WPARAM,LPARAM
user32\PrintWindow,BOOL,HWND,HDC,UINT
user32\PrivateExtractIconsW,UINT,LPCTSTR,int,int,int,HICON*,UINT*,UINT,UINT
user32\RedrawWindow,BOOL,HWND,RECT*,HRGN,UINT
user32\RegisterClassW,ATOM,WNDCLASS*
user32\RegisterClipboardFormatW,UINT,LPCTSTR
user32\RegisterWindowMessageW,UINT,LPCTSTR
user32\ReleaseDC,int,HWND,HDC
user32\RemoveMenu,BOOL,HMENU,UINT,UINT
user32\ScreenToClient,BOOL,HWND,LPPOINT
user32\SendMessageA,LRESULT,HWND,UINT,WPARAM,LPARAM
user32\SendMessageW,LRESULT,HWND,UINT,WPARAM,LPARAM
user32\SetCaretBlinkTime,BOOL,UINT
user32\SetClassLongW,DWORD,HWND,int,LONG
user32\SetClipboardData,HANDLE,UINT,HANDLE
user32\SetCursorPos,BOOL,int,int
user32\SetForegroundWindow,BOOL,HWND
user32\SetMenu,BOOL,HWND,HMENU
user32\SetMenuInfo,BOOL,HMENU,LPCMENUINFO
user32\SetMenuItemBitmaps,BOOL,HMENU,UINT,UINT,HBITMAP,HBITMAP
user32\SetMenuItemInfoW,BOOL,HMENU,UINT,BOOL,LPMENUITEMINFO
user32\SetParent,HWND,HWND,HWND
user32\SetRect,BOOL,LPRECT,int,int,int,int
user32\SetSysColors,BOOL,int,INT*,COLORREF*
user32\SetSystemCursor,BOOL,HCURSOR,DWORD
user32\SetWindowLongW,LONG,HWND,int,LONG
user32\SetWindowPos,BOOL,HWND,HWND,int,int,int,int,UINT
user32\SetWindowsHookExW,HHOOK,int,HOOKPROC,HINSTANCE,DWORD
user32\SetWinEventHook,HWINEVENTHOOK,UINT,UINT,HMODULE,WINEVENTPROC*,DWORD,DWORD,UINT
user32\ShowCaret,BOOL,HWND
user32\ShowWindow,BOOL,HWND,int
user32\SystemParametersInfoW,BOOL,UINT,UINT,PVOID,UINT
user32\TrackPopupMenu,BOOL,HMENU,UINT,int,int,int,HWND,RECT*
user32\TrackPopupMenuEx,BOOL,HMENU,UINT,int,int,HWND,LPTPMPARAMS
user32\UnhookWinEvent,BOOL,HWINEVENTHOOK
user32\UpdateLayeredWindow,BOOL,HWND,HDC,POINT*,SIZE*,HDC,POINT*,COLORREF,BLENDFUNCTION*,DWORD
user32\wsprintfA,int,LPTSTR,LPCTSTR,[ERROR]...
user32\wsprintfW,int,LPTSTR,LPCTSTR,[ERROR]...
uxtheme\SetWindowThemeAttribute,HRESULT,HWND,[ERROR]WINDOWTHEMEATTRIBUTETYPE,PVOID,DWORD
wininet\FtpCreateDirectoryW,BOOL,HINTERNET,LPCTSTR
wininet\FtpDeleteFileW,BOOL,HINTERNET,LPCTSTR
wininet\FtpFindFirstFileW,HINTERNET,HINTERNET,LPCTSTR,LPWIN32_FIND_DATA,DWORD,DWORD_PTR
wininet\FtpGetCurrentDirectoryW,BOOL,HINTERNET,LPTSTR,LPDWORD
wininet\FtpGetFileSize,DWORD,HINTERNET,LPDWORD
wininet\FtpGetFileW,BOOL,HINTERNET,LPCTSTR,LPCTSTR,BOOL,DWORD,DWORD,DWORD_PTR
wininet\FtpOpenFileW,HINTERNET,HINTERNET,LPCTSTR,DWORD,DWORD,DWORD_PTR
wininet\FtpPutFileW,BOOL,HINTERNET,LPCTSTR,LPCTSTR,DWORD,DWORD_PTR
wininet\FtpRemoveDirectoryW,BOOL,HINTERNET,LPCTSTR
wininet\FtpRenameFileW,BOOL,HINTERNET,LPCTSTR,LPCTSTR
wininet\FtpSetCurrentDirectoryW,BOOL,HINTERNET,LPCTSTR
wininet\InternetCloseHandle,BOOL,HINTERNET
wininet\InternetConnectW,HINTERNET,HINTERNET,LPCTSTR,[ERROR]INTERNET_PORT,LPCTSTR,LPCTSTR,DWORD,DWORD,DWORD_PTR
wininet\InternetFindNextFileW,BOOL,HINTERNET,LPVOID
wininet\InternetGetLastResponseInfoW,BOOL,LPDWORD,LPTSTR,LPDWORD
wininet\InternetOpenUrlW,HINTERNET,HINTERNET,LPCTSTR,LPCTSTR,DWORD,DWORD,DWORD_PTR
wininet\InternetOpenW,HINTERNET,LPCTSTR,DWORD,LPCTSTR,LPCTSTR,DWORD
wininet\InternetQueryDataAvailable,BOOL,HINTERNET,LPDWORD,DWORD,DWORD_PTR
wininet\InternetReadFile,BOOL,HINTERNET,LPVOID,DWORD,LPDWORD
wininet\InternetSetStatusCallback,[ERROR]INTERNET_STATUS_CALLBACK,HINTERNET,INTERNET_STATUS_CALLBACK*
wininet\InternetWriteFile,BOOL,HINTERNET,LPCVOID,DWORD,LPDWORD
winmm\timeBeginPeriod,[ERROR]MMRESULT,UINT
winmm\timeEndPeriod,[ERROR]MMRESULT,UINT
ws2_32\connect,int,[ERROR]SOCKET,struct*,int
ws2_32\htons,u_short,u_short
ws2_32\inet_addr,[ERROR]unsigned long,char*
ws2_32\recv,int,[ERROR]SOCKET,char*,int,int
ws2_32\socket,[ERROR]SOCKET,int,int,int
ws2_32\WSAAsyncSelect,int,[ERROR]SOCKET,HWND,[ERROR]unsigned int,long
ws2_32\WSACleanup,int
ws2_32\WSAGetLastError,int
ws2_32\WSAStartup,int,WORD,LPWSADATA

;[dll\function,Type1,Type2,Type3,...,(ReturnType)][AHK style]
advapi32\AdjustTokenPrivileges,Ptr,Int,Ptr,UInt,Ptr,Ptr,(Int)
advapi32\CryptAcquireContextW,Ptr|UPtrP,Ptr,Ptr,UInt,UInt,(Int)
advapi32\CryptCreateHash,UPtr,UInt,UPtr,UInt,Ptr|UPtrP,(Int)
advapi32\CryptDestroyHash,UPtr,(Int)
advapi32\CryptGetHashParam,UPtr,UInt,Ptr|UCharP,Ptr|UIntP,UInt,(Int)
advapi32\CryptHashData,UPtr,Ptr|UCharP,UInt,UInt,(Int)
advapi32\CryptReleaseContext,UPtr,UInt,(Int)
advapi32\IsTextUnicode,Ptr|PtrP,Int,Ptr,(Int)
advapi32\LookupPrivilegeValueW,Ptr,Ptr,Ptr,(Int)
advapi32\OpenProcessToken,Ptr,UInt,Ptr,(Int)
advapi32\RegOpenKeyExW,Ptr,Ptr,UInt,ERROR,Ptr,(Int)
advapi32\RegQueryInfoKeyW,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,(Int)
advapi32\RegQueryValueExW,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,(Int)
comctl32\DllGetVersion,Ptr,(Int)
comctl32\ImageList_Add,Ptr,Ptr,Ptr,(Int)
comctl32\ImageList_Create,Int,Int,UInt,Int,Int,(Ptr)
comctl32\ImageList_Replace,Ptr,Int,Ptr,Ptr,(Int)
comctl32\ImageList_ReplaceIcon,Ptr,Int,Ptr,(Int)
comctl32\InitCommonControlsEx,Ptr,(Int)
crypt32\CryptStringToBinaryW,Ptr,UInt,UInt,Ptr|UCharP,Ptr|UIntP,Ptr|UIntP,Ptr|UIntP,(Int)
dwmapi\DwmGetWindowAttribute,Ptr,UInt,Ptr,UInt,(Int)
dwmapi\DwmIsCompositionEnabled,Ptr|IntP,(Int)
gdi32\BitBlt,Ptr,Int,Int,Int,Int,Ptr,Int,Int,UInt,(Int)
gdi32\CreateCompatibleBitmap,Ptr,Int,Int,(Ptr)
gdi32\CreateCompatibleDC,Ptr,(Ptr)
gdi32\CreateDIBSection,Ptr,Ptr,UInt,Ptr|PtrP,Ptr,UInt,(Ptr)
gdi32\CreateFontIndirectW,Ptr|ERRORP,(Ptr)
gdi32\CreateFontW,Int,Int,Int,Int,Int,UInt,UInt,UInt,UInt,UInt,UInt,UInt,UInt,Ptr,(Ptr)
gdi32\CreatePen,Int,Int,UInt,(Ptr)
gdi32\CreateSolidBrush,UInt,(Ptr)
gdi32\DeleteDC,Ptr,(Int)
gdi32\DeleteEnhMetaFile,Ptr,(Int)
gdi32\DeleteObject,Ptr,(Int)
gdi32\GetDeviceCaps,Ptr,Int,(Int)
gdi32\GetDIBits,Ptr,Ptr,UInt,UInt,Ptr,Ptr,UInt,(Int)
gdi32\GetEnhMetaFileBits,Ptr,UInt,Ptr,(UInt)
gdi32\GetFontUnicodeRanges,Ptr,Ptr,(UInt)
gdi32\GetObjectW,Ptr,Int,Ptr,(Int)
gdi32\GetStockObject,Int,(Ptr)
gdi32\GetTextExtentPoint32W,Ptr,Ptr,Int,Ptr,(Int)
gdi32\GetTextFaceW,Ptr,Int,Ptr,(Int)
gdi32\RealizePalette,Ptr,(UInt)
gdi32\Rectangle,Ptr,Int,Int,Int,Int,(Int)
gdi32\SelectObject,Ptr,Ptr,(Ptr)
gdi32\SelectPalette,Ptr,Ptr,Int,(Ptr)
gdi32\SetBkColor,Ptr,UInt,(UInt)
gdi32\SetEnhMetaFileBits,UInt,Ptr|UCharP,(Ptr)
gdi32\SetStretchBltMode,Ptr,Int,(Int)
gdi32\SetTextColor,Ptr,UInt,(UInt)
gdi32\StretchBlt,Ptr,Int,Int,Int,Int,Ptr,Int,Int,Int,Int,UInt,(Int)
imagehlp\ImageDirectoryEntryToData,Ptr,UChar,UShort,Ptr,(Ptr)
imagehlp\ImageRvaToVa,Ptr,Ptr,UInt,Ptr|PtrP,(Ptr)
imagehlp\MapAndLoad,Ptr,Ptr,Ptr,Int,Int,(Int)
imagehlp\UnMapAndLoad,Ptr,(Int)
kernel32\AllocConsole,(Int)
kernel32\AttachConsole,UInt,(Int)
kernel32\CloseHandle,Ptr,(Int)
kernel32\CreateFileW,Ptr,UInt,UInt,Ptr,UInt,UInt,Ptr,(Ptr)
kernel32\CreateProcessW,Ptr,Ptr,Ptr,Ptr,Int,UInt,Ptr,Ptr,Ptr,Ptr,(Int)
kernel32\CreateRemoteThread,Ptr,Ptr,UPtr,Ptr,Ptr,UInt,Ptr,(Ptr)
kernel32\CreateToolhelp32Snapshot,UInt,UInt,(Ptr)
kernel32\DeleteFileA,Ptr,(Int)
kernel32\DeleteFileW,Ptr,(Int)
kernel32\DeviceIoControl,Ptr,UInt,Ptr,UInt,Ptr,UInt,Ptr,Ptr,(Int)
kernel32\ExpandEnvironmentStringsW,Ptr,Ptr,UInt,(UInt)
kernel32\FileTimeToLocalFileTime,Ptr,Ptr,(Int)
kernel32\FileTimeToSystemTime,Ptr,Ptr,(Int)
kernel32\FindClose,Ptr,(Int)
kernel32\FindFirstFileW,Ptr,Ptr,(Ptr)
kernel32\FindNextFileW,Ptr,Ptr,(Int)
kernel32\FindResourceW,Ptr,Ptr,Ptr,(Ptr)
kernel32\FormatMessageA,UInt,Ptr,UInt,UInt,Ptr,UInt,Ptr,(UInt)
kernel32\FormatMessageW,UInt,Ptr,UInt,UInt,Ptr,UInt,Ptr,(UInt)
kernel32\FreeConsole,(Int)
kernel32\FreeLibrary,Ptr,(Int)
kernel32\GetACP,(UInt)
kernel32\GetCommandLineW,(Ptr)
kernel32\GetCurrentProcessId,(UInt)
kernel32\GetCurrentThreadId,(UInt)
kernel32\GetDiskFreeSpaceExW,Ptr,Ptr,Ptr,Ptr,(Int)
kernel32\GetEnvironmentVariableW,Ptr,Ptr,UInt,(UInt)
kernel32\GetExitCodeThread,Ptr,Ptr,(Int)
kernel32\GetFileAttributesW,Ptr,(UInt)
kernel32\GetFileSizeEx,Ptr,Ptr,(Int)
kernel32\GetLastError,(UInt)
kernel32\GetLocalTime,Ptr,(Ptr)
kernel32\GetLogicalDrives,(UInt)
kernel32\GetLogicalDriveStringsW,UInt,Ptr,(UInt)
kernel32\GetModuleFileNameW,Ptr,Ptr,UInt,(UInt)
kernel32\GetModuleHandleW,Ptr,(Ptr)
kernel32\GetPriorityClass,Ptr,(UInt)
kernel32\GetProcAddress,Ptr,Ptr,(ERROR)
kernel32\GetProcessTimes,Ptr,Ptr,Ptr,Ptr,Ptr,(Int)
kernel32\GetStdHandle,UInt,(Ptr)
kernel32\GetTempFileNameW,Ptr,Ptr,UInt,Ptr,(UInt)
kernel32\GetVersion,(UInt)
kernel32\GetVersionExW,Ptr,(Int)
kernel32\GlobalAlloc,UInt,UPtr,(Ptr)
kernel32\GlobalFree,Ptr,(Ptr)
kernel32\GlobalLock,Ptr,(Ptr)
kernel32\GlobalSize,Ptr,(UPtr)
kernel32\GlobalUnlock,Ptr,(Int)
kernel32\IsWow64Process,Ptr,Ptr,(Int)
kernel32\LCMapStringW,UInt,UInt,Ptr,Int,Ptr,Int,(Int)
kernel32\LoadLibraryW,Ptr,(Ptr)
kernel32\LoadResource,Ptr,Ptr,(Ptr)
kernel32\LocalFileTimeToFileTime,Ptr,Ptr,(Int)
kernel32\LockResource,Ptr,(Ptr)
kernel32\lstrcpy,Ptr,Ptr,(Ptr)
kernel32\lstrcpyn,Ptr,Ptr,Int,(Ptr)
kernel32\lstrlen,Ptr,(Int)
kernel32\Module32First,Ptr,Ptr,(Int)
kernel32\Module32Next,Ptr,Ptr,(Int)
kernel32\MulDiv,Int,Int,Int,(Int)
kernel32\MultiByteToWideChar,UInt,UInt,Ptr,Int,Ptr,Int,(Int)
kernel32\OpenProcess,UInt,Int,UInt,(Ptr)
kernel32\QueryPerformanceCounter,Ptr|Int64P,(Int)
kernel32\ReadFile,Ptr,Ptr,UInt,Ptr,Ptr,(Int)
kernel32\ReadProcessMemory,Ptr,Ptr,Ptr,UPtr,Ptr|UPtrP,(Int)
kernel32\RtlMoveMemory,Ptr|PtrP,Ptr|PtrP,UPtr,(Ptr)
kernel32\SetFilePointerEx,Ptr,Int64,Ptr,UInt,(Int)
kernel32\SetFileTime,Ptr,Ptr,Ptr,Ptr,(Int)
kernel32\SetLastError,UInt,(Ptr)
kernel32\SetProcessShutdownParameters,UInt,UInt,(Int)
kernel32\SetSystemTime,Ptr,(Int)
kernel32\SizeofResource,Ptr,Ptr,(UInt)
kernel32\Sleep,UInt,(Ptr)
kernel32\SystemTimeToFileTime,Ptr,Ptr,(Int)
kernel32\SystemTimeToTzSpecificLocalTime,Ptr,Ptr,Ptr,(Int)
kernel32\TzSpecificLocalTimeToSystemTime,Ptr,Ptr,Ptr,(Int)
kernel32\VirtualAllocEx,Ptr,Ptr,UPtr,UInt,UInt,(Ptr)
kernel32\VirtualFreeEx,Ptr,Ptr,UPtr,UInt,(Int)
kernel32\VirtualProtect,Ptr,UPtr,UInt,Ptr,(Int)
kernel32\VirtualProtectEx,Ptr,Ptr,UPtr,UInt,Ptr,(Int)
kernel32\VirtualQueryEx,Ptr,Ptr,Ptr,UPtr,(UPtr)
kernel32\WaitForSingleObject,Ptr,UInt,(UInt)
kernel32\WideCharToMultiByte,UInt,UInt,Ptr,Int,Ptr,Int,Ptr,Ptr,(Int)
kernel32\Wow64DisableWow64FsRedirection,Ptr|PtrP,(Int)
kernel32\WriteFile,Ptr,Ptr,UInt,Ptr,Ptr,(Int)
kernel32\WriteProcessMemory,Ptr,Ptr,Ptr,UPtr,Ptr|UPtrP,(Int)
Magnification\MagInitialize,(Int)
Magnification\MagSetImageScalingCallback,Ptr,ERROR,(Int)
Magnification\MagSetWindowSource,Ptr,ERROR,(Int)
Magnification\MagSetWindowTransform,Ptr,Ptr,(Int)
Magnification\MagUninitialize,(Int)
ole32\CLSIDFromProgID,Ptr,Ptr,(Int)
ole32\CLSIDFromString,Ptr,Ptr,(Int)
ole32\CoCreateGuid,Ptr,(Int)
ole32\CoCreateInstance,ERROR,Ptr,UInt,ERROR,Ptr|PtrP,(Int)
ole32\CoGetObject,Ptr,Ptr,ERROR,Ptr|PtrP,(Int)
ole32\CoInitialize,Ptr,(Int)
ole32\CoTaskMemAlloc,UPtr,(Ptr)
ole32\CoTaskMemFree,Ptr,(Ptr)
ole32\CoUninitialize,(Ptr)
ole32\CreateStreamOnHGlobal,Ptr,Int,Ptr|PtrP,(ERROR)
ole32\IsEqualGUID,ERROR,ERROR,(Int)
ole32\OleInitialize,Ptr,(Int)
ole32\OleUninitialize,(Ptr)
ole32\ProgIDFromCLSID,ERROR,Ptr|PtrP,(Int)
ole32\StringFromGUID2,ERROR,Ptr,Int,(Int)
oleacc\AccessibleChildren,Ptr,Int,Int,Ptr,Ptr|IntP,(ERROR)
oleacc\AccessibleObjectFromEvent,Ptr,UInt,UInt,Ptr,Ptr,(ERROR)
oleacc\AccessibleObjectFromPoint,ERROR,Ptr,Ptr,(ERROR)
oleacc\AccessibleObjectFromWindow,Ptr,UInt,ERROR,Ptr|PtrP,(ERROR)
oleacc\GetRoleTextA,UInt,Ptr,UInt,(UInt)
oleacc\GetRoleTextW,UInt,Ptr,UInt,(UInt)
oleacc\GetStateTextA,UInt,Ptr,UInt,(UInt)
oleacc\GetStateTextW,UInt,Ptr,UInt,(UInt)
oleacc\ObjectFromLresult,Ptr,ERROR,UPtr,Ptr|PtrP,(ERROR)
oleacc\WindowFromAccessibleObject,Ptr,Ptr|PtrP,(ERROR)
oleaut32\DispGetParam,Ptr,UInt,ERROR,Ptr,Ptr|UIntP,(Int)
oleaut32\GetActiveObject,ERROR,Ptr|PtrP,Ptr,(Int)
oleaut32\SafeArrayAccessData,Ptr,Ptr|PtrP,(Int)
oleaut32\SafeArrayDestroy,Ptr,(Int)
oleaut32\SafeArrayGetDim,Ptr,(UInt)
oleaut32\SafeArrayUnaccessData,Ptr,(Int)
oleaut32\SysAllocString,Ptr,(ERROR)
oleaut32\SysFreeString,ERROR,(Ptr)
oleaut32\SysStringLen,ERROR,(UInt)
oleaut32\VariantChangeTypeEx,Ptr,Ptr,UInt,UShort,ERROR,(Int)
oleaut32\VariantClear,Ptr,(Int)
powrprof\SetSuspendState,UChar,UChar,UChar,(UChar)
psapi\EnumProcesses,Ptr|UIntP,UInt,Ptr|UIntP,(Int)
psapi\GetMappedFileNameW,Ptr,Ptr,Ptr,UInt,(UInt)
psapi\GetModuleBaseNameW,Ptr,Ptr,Ptr,UInt,(UInt)
psapi\GetModuleFileNameExA,Ptr,Ptr,Ptr,UInt,(UInt)
psapi\GetModuleFileNameExW,Ptr,Ptr,Ptr,UInt,(UInt)
psapi\GetProcessImageFileNameW,Ptr,Ptr,UInt,(UInt)
shell32\ExtractIconEx,Ptr,Int,Ptr|PtrP,Ptr|PtrP,UInt,(UInt)
shell32\SHAddToRecentDocs,UInt,Ptr,(Ptr)
shell32\SHBindToParent,Ptr,ERROR,Ptr|PtrP,Ptr,(Int)
shell32\SHChangeNotify,Int,UInt,Ptr,Ptr,(Ptr)
shell32\Shell_NotifyIcon,UInt,Ptr,(Int)
shell32\SHGetFileInfo,Ptr,UInt,Ptr|PtrP,UInt,UInt,(UPtr)
shell32\SHGetFileInfoW,Ptr,UInt,Ptr|PtrP,UInt,UInt,(UPtr)
shell32\SHGetFolderLocation,Ptr,Int,Ptr,UInt,Ptr,(Int)
shell32\SHGetFolderPathW,Ptr,Int,Ptr,UInt,Ptr,(Int)
shell32\SHParseDisplayName,Ptr,Ptr,Ptr,ERROR,Ptr,(Int)
shell32\SHQueryRecycleBinA,Ptr,Ptr,(Int)
shlwapi\AssocQueryStringW,ERROR,ERROR,Ptr,Ptr,Ptr,Ptr|UIntP,(Int)
shlwapi\PathCreateFromUrlW,Ptr,Ptr,Ptr|UIntP,UInt,(Int)
shlwapi\SHGetViewStatePropertyBag,Ptr,Ptr,UInt,ERROR,Ptr|PtrP,(Int)
shlwapi\StrCmpLogicalW,Ptr,Ptr,(Int)
shlwapi\StrCmpNW,Ptr,Ptr,Int,(Int)
shlwapi\StrStrIW,Ptr,Ptr,(Ptr)
shlwapi\UrlCreateFromPathW,Ptr,Ptr,Ptr|UIntP,UInt,(Int)
user32\AttachThreadInput,UInt,UInt,Int,(Int)
user32\CallNextHookEx,Ptr,Int,UPtr,Ptr,(Ptr)
user32\CallWindowProcA,Ptr,Ptr,UInt,UPtr,Ptr,(Ptr)
user32\CallWindowProcW,Ptr,Ptr,UInt,UPtr,Ptr,(Ptr)
user32\CharLowerW,Ptr,(Ptr)
user32\CharUpperW,Ptr,(Ptr)
user32\ClientToScreen,Ptr,Ptr,(Int)
user32\CloseClipboard,(Int)
user32\CopyIcon,Ptr,(Ptr)
user32\CopyImage,Ptr,UInt,Int,Int,UInt,(Ptr)
user32\CountClipboardFormats,(Int)
user32\CreateCaret,Ptr,Ptr,Int,Int,(Int)
user32\CreateCursor,Ptr,Int,Int,Int,Int,Ptr|PtrP,Ptr|PtrP,(Ptr)
user32\CreateDialogParamW,Ptr,Ptr,Ptr,ERROR,Ptr,(Ptr)
user32\CreateIconFromResourceEx,Ptr,UInt,Int,UInt,Int,Int,UInt,(Ptr)
user32\CreatePopupMenu,(Ptr)
user32\CreateWindowExW,UInt,Ptr,Ptr,UInt,Int,Int,Int,Int,Ptr,Ptr,Ptr,Ptr,(Ptr)
user32\DefWindowProcW,Ptr,UInt,UPtr,Ptr,(Ptr)
user32\DestroyIcon,Ptr,(Int)
user32\DestroyMenu,Ptr,(Int)
user32\DrawIconEx,Ptr,Int,Int,Ptr,Int,Int,UInt,Ptr,UInt,(Int)
user32\DrawTextExW,Ptr,Ptr,Int,Ptr,UInt,Ptr,(Int)
user32\DrawTextW,Ptr,Ptr,Int,Ptr,UInt,(Int)
user32\EmptyClipboard,(Int)
user32\EnableMenuItem,Ptr,UInt,UInt,(Int)
user32\EnumClipboardFormats,UInt,(UInt)
user32\EnumDisplayDevicesW,Ptr,UInt,Ptr,UInt,(Int)
user32\EnumWindows,Ptr,Ptr,(Int)
user32\FillRect,Ptr,Ptr,Ptr,(Int)
user32\FindWindowExW,Ptr,Ptr,Ptr,Ptr,(Ptr)
user32\FindWindowW,Ptr,Ptr,(Ptr)
user32\GetActiveWindow,(Ptr)
user32\GetAncestor,Ptr,UInt,(Ptr)
user32\GetCaretBlinkTime,(UInt)
user32\GetCaretPos,Ptr,(Int)
user32\GetClassLongW,Ptr,Int,(UInt)
user32\GetClientRect,Ptr,Ptr,(Int)
user32\GetClipboardData,UInt,(Ptr)
user32\GetClipboardFormatNameW,UInt,Ptr,Int,(Int)
user32\GetCursorInfo,Ptr,(Int)
user32\GetCursorPos,Ptr,(Int)
user32\GetDC,Ptr,(Ptr)
user32\GetDCEx,Ptr,Ptr,UInt,(Ptr)
user32\GetFocus,(Ptr)
user32\GetForegroundWindow,(Ptr)
user32\GetGUIThreadInfo,UInt,Ptr,(Int)
user32\GetIconInfo,Ptr,Ptr,(Int)
user32\GetKeyNameTextW,Int,Ptr,Int,(Int)
user32\GetMenu,Ptr,(Ptr)
user32\GetMenuBarInfo,Ptr,Int,Int,Ptr,(Int)
user32\GetMenuItemCount,Ptr,(Int)
user32\GetMenuItemID,Ptr,Int,(UInt)
user32\GetMenuItemInfoW,Ptr,UInt,Int,Ptr,(Int)
user32\GetMenuItemRect,Ptr,Ptr,UInt,Ptr,(Int)
user32\GetMenuStringW,Ptr,UInt,Ptr,Int,UInt,(Int)
user32\GetOpenClipboardWindow,(Ptr)
user32\GetParent,Ptr,(Ptr)
user32\GetScrollPos,Ptr,Int,(Int)
user32\GetSubMenu,Ptr,Int,(Ptr)
user32\GetSysColor,Int,(UInt)
user32\GetSystemMenu,Ptr,Int,(Ptr)
user32\GetWindow,Ptr,UInt,(Ptr)
user32\GetWindowInfo,Ptr,Ptr,(Int)
user32\GetWindowLongW,Ptr,Int,(Int)
user32\GetWindowRect,Ptr,Ptr,(Int)
user32\GetWindowRgnBox,Ptr,Ptr,(Int)
user32\GetWindowTextA,Ptr,Ptr,Int,(Int)
user32\GetWindowThreadProcessId,Ptr,Ptr,(UInt)
user32\HideCaret,Ptr,(Int)
user32\InsertMenuW,Ptr,UInt,UInt,UPtr,Ptr,(Int)
user32\InvalidateRect,Ptr,Ptr,Int,(Int)
user32\IsCharAlphaW,UShort,(Int)
user32\IsChild,Ptr,Ptr,(Int)
user32\IsClipboardFormatAvailable,UInt,(Int)
user32\IsWindow,Ptr,(Int)
user32\IsWindowUnicode,Ptr,(Int)
user32\IsWindowVisible,Ptr,(Int)
user32\LoadCursorFromFileW,Ptr,(Ptr)
user32\LoadCursorW,Ptr,Ptr,(Ptr)
user32\LoadIconW,Ptr,Ptr,(Ptr)
user32\LoadImageA,Ptr,Ptr,UInt,Int,Int,UInt,(Ptr)
user32\LoadImageW,Ptr,Ptr,UInt,Int,Int,UInt,(Ptr)
user32\LoadStringW,Ptr,UInt,Ptr,Int,(Int)
user32\LockWorkStation,(Int)
user32\MessageBoxW,Ptr,Ptr,Ptr,UInt,(Int)
user32\ModifyMenuW,Ptr,UInt,UInt,UPtr,Ptr,(Int)
user32\OpenClipboard,Ptr,(Int)
user32\PaintDesktop,Ptr,(Int)
user32\PostMessageW,Ptr,UInt,UPtr,Ptr,(Int)
user32\PrintWindow,Ptr,Ptr,UInt,(Int)
user32\PrivateExtractIconsW,Ptr,Int,Int,Int,Ptr|PtrP,Ptr|UIntP,UInt,UInt,(UInt)
user32\RedrawWindow,Ptr,Ptr,Ptr,UInt,(Int)
user32\RegisterClassW,Ptr|PtrP,(UShort)
user32\RegisterClipboardFormatW,Ptr,(UInt)
user32\RegisterWindowMessageW,Ptr,(UInt)
user32\ReleaseDC,Ptr,Ptr,(Int)
user32\RemoveMenu,Ptr,UInt,UInt,(Int)
user32\ScreenToClient,Ptr,Ptr,(Int)
user32\SendMessageA,Ptr,UInt,UPtr,Ptr,(Ptr)
user32\SendMessageW,Ptr,UInt,UPtr,Ptr,(Ptr)
user32\SetCaretBlinkTime,UInt,(Int)
user32\SetClassLongW,Ptr,Int,Int,(UInt)
user32\SetClipboardData,UInt,Ptr,(Ptr)
user32\SetCursorPos,Int,Int,(Int)
user32\SetForegroundWindow,Ptr,(Int)
user32\SetMenu,Ptr,Ptr,(Int)
user32\SetMenuInfo,Ptr,Ptr,(Int)
user32\SetMenuItemBitmaps,Ptr,UInt,UInt,Ptr,Ptr,(Int)
user32\SetMenuItemInfoW,Ptr,UInt,Int,Ptr,(Int)
user32\SetParent,Ptr,Ptr,(Ptr)
user32\SetRect,Ptr,Int,Int,Int,Int,(Int)
user32\SetSysColors,Int,Ptr|IntP,Ptr|UIntP,(Int)
user32\SetSystemCursor,Ptr,UInt,(Int)
user32\SetWindowLongW,Ptr,Int,Int,(Int)
user32\SetWindowPos,Ptr,Ptr,Int,Int,Int,Int,UInt,(Int)
user32\SetWindowsHookExW,Int,Ptr,Ptr,UInt,(Ptr)
user32\SetWinEventHook,UInt,UInt,Ptr,Ptr,UInt,UInt,UInt,(Ptr)
user32\ShowCaret,Ptr,(Int)
user32\ShowWindow,Ptr,Int,(Int)
user32\SystemParametersInfoW,UInt,UInt,Ptr,UInt,(Int)
user32\TrackPopupMenu,Ptr,UInt,Int,Int,Int,Ptr,Ptr,(Int)
user32\TrackPopupMenuEx,Ptr,UInt,Int,Int,Ptr,Ptr,(Int)
user32\UnhookWinEvent,Ptr,(Int)
user32\UpdateLayeredWindow,Ptr,Ptr,Ptr,Ptr,Ptr,Ptr,UInt,Ptr,UInt,(Int)
user32\wsprintfA,Ptr,Ptr,ERROR,(Int)
user32\wsprintfW,Ptr,Ptr,ERROR,(Int)
uxtheme\SetWindowThemeAttribute,Ptr,ERROR,Ptr,UInt,(Int)
wininet\FtpCreateDirectoryW,Ptr,Ptr,(Int)
wininet\FtpDeleteFileW,Ptr,Ptr,(Int)
wininet\FtpFindFirstFileW,Ptr,Ptr,Ptr,UInt,UPtr,(Ptr)
wininet\FtpGetCurrentDirectoryW,Ptr,Ptr,Ptr,(Int)
wininet\FtpGetFileSize,Ptr,Ptr,(UInt)
wininet\FtpGetFileW,Ptr,Ptr,Ptr,Int,UInt,UInt,UPtr,(Int)
wininet\FtpOpenFileW,Ptr,Ptr,UInt,UInt,UPtr,(Ptr)
wininet\FtpPutFileW,Ptr,Ptr,Ptr,UInt,UPtr,(Int)
wininet\FtpRemoveDirectoryW,Ptr,Ptr,(Int)
wininet\FtpRenameFileW,Ptr,Ptr,Ptr,(Int)
wininet\FtpSetCurrentDirectoryW,Ptr,Ptr,(Int)
wininet\InternetCloseHandle,Ptr,(Int)
wininet\InternetConnectW,Ptr,Ptr,ERROR,Ptr,Ptr,UInt,UInt,UPtr,(Ptr)
wininet\InternetFindNextFileW,Ptr,Ptr,(Int)
wininet\InternetGetLastResponseInfoW,Ptr,Ptr,Ptr,(Int)
wininet\InternetOpenUrlW,Ptr,Ptr,Ptr,UInt,UInt,UPtr,(Ptr)
wininet\InternetOpenW,Ptr,UInt,Ptr,Ptr,UInt,(Ptr)
wininet\InternetQueryDataAvailable,Ptr,Ptr,UInt,UPtr,(Int)
wininet\InternetReadFile,Ptr,Ptr,UInt,Ptr,(Int)
wininet\InternetSetStatusCallback,Ptr,Ptr,(ERROR)
wininet\InternetWriteFile,Ptr,Ptr,UInt,Ptr,(Int)
winmm\timeBeginPeriod,UInt,(ERROR)
winmm\timeEndPeriod,UInt,(ERROR)
ws2_32\connect,ERROR,Ptr,Int,(Int)
ws2_32\htons,UShort,(UShort)
ws2_32\inet_addr,Ptr|CharP,(ERROR)
ws2_32\recv,ERROR,Ptr|CharP,Int,Int,(Int)
ws2_32\socket,Int,Int,Int,(ERROR)
ws2_32\WSAAsyncSelect,ERROR,Ptr,ERROR,Int,(Int)
ws2_32\WSACleanup,(Int)
ws2_32\WSAGetLastError,(Int)
ws2_32\WSAStartup,UShort,Ptr,(Int)

;[DllCall templates]
DllCall("advapi32\AdjustTokenPrivileges", Ptr,Arg1, Int,Arg2, Ptr,Arg3, UInt,Arg4, Ptr,Arg5, Ptr,Arg6, Int)
DllCall("advapi32\CryptAcquireContextW", Ptr|UPtrP,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, UInt,Arg5, Int)
DllCall("advapi32\CryptCreateHash", UPtr,Arg1, UInt,Arg2, UPtr,Arg3, UInt,Arg4, Ptr|UPtrP,Arg5, Int)
DllCall("advapi32\CryptDestroyHash", UPtr,Arg1, Int)
DllCall("advapi32\CryptGetHashParam", UPtr,Arg1, UInt,Arg2, Ptr|UCharP,Arg3, Ptr|UIntP,Arg4, UInt,Arg5, Int)
DllCall("advapi32\CryptHashData", UPtr,Arg1, Ptr|UCharP,Arg2, UInt,Arg3, UInt,Arg4, Int)
DllCall("advapi32\CryptReleaseContext", UPtr,Arg1, UInt,Arg2, Int)
DllCall("advapi32\IsTextUnicode", Ptr|PtrP,Arg1, Int,Arg2, Ptr,Arg3, Int)
DllCall("advapi32\LookupPrivilegeValueW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int)
DllCall("advapi32\OpenProcessToken", Ptr,Arg1, UInt,Arg2, Ptr,Arg3, Int)
DllCall("advapi32\RegOpenKeyExW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, ERROR,Arg4, Ptr,Arg5, Int)
DllCall("advapi32\RegQueryInfoKeyW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr,Arg4, Ptr,Arg5, Ptr,Arg6, Ptr,Arg7, Ptr,Arg8, Ptr,Arg9, Ptr,Arg10, Ptr,Arg11, Ptr,Arg12, Int)
DllCall("advapi32\RegQueryValueExW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr,Arg4, Ptr,Arg5, Ptr,Arg6, Int)
DllCall("comctl32\DllGetVersion", Ptr,Arg1, Int)
DllCall("comctl32\ImageList_Add", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int)
DllCall("comctl32\ImageList_Create", Int,Arg1, Int,Arg2, UInt,Arg3, Int,Arg4, Int,Arg5, Ptr)
DllCall("comctl32\ImageList_Replace", Ptr,Arg1, Int,Arg2, Ptr,Arg3, Ptr,Arg4, Int)
DllCall("comctl32\ImageList_ReplaceIcon", Ptr,Arg1, Int,Arg2, Ptr,Arg3, Int)
DllCall("comctl32\InitCommonControlsEx", Ptr,Arg1, Int)
DllCall("crypt32\CryptStringToBinaryW", Ptr,Arg1, UInt,Arg2, UInt,Arg3, Ptr|UCharP,Arg4, Ptr|UIntP,Arg5, Ptr|UIntP,Arg6, Ptr|UIntP,Arg7, Int)
DllCall("dwmapi\DwmGetWindowAttribute", Ptr,Arg1, UInt,Arg2, Ptr,Arg3, UInt,Arg4, Int)
DllCall("dwmapi\DwmIsCompositionEnabled", Ptr|IntP,Arg1, Int)
DllCall("gdi32\BitBlt", Ptr,Arg1, Int,Arg2, Int,Arg3, Int,Arg4, Int,Arg5, Ptr,Arg6, Int,Arg7, Int,Arg8, UInt,Arg9, Int)
DllCall("gdi32\CreateCompatibleBitmap", Ptr,Arg1, Int,Arg2, Int,Arg3, Ptr)
DllCall("gdi32\CreateCompatibleDC", Ptr,Arg1, Ptr)
DllCall("gdi32\CreateDIBSection", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr|PtrP,Arg4, Ptr,Arg5, UInt,Arg6, Ptr)
DllCall("gdi32\CreateFontIndirectW", Ptr|ERRORP,Arg1, Ptr)
DllCall("gdi32\CreateFontW", Int,Arg1, Int,Arg2, Int,Arg3, Int,Arg4, Int,Arg5, UInt,Arg6, UInt,Arg7, UInt,Arg8, UInt,Arg9, UInt,Arg10, UInt,Arg11, UInt,Arg12, UInt,Arg13, Ptr,Arg14, Ptr)
DllCall("gdi32\CreatePen", Int,Arg1, Int,Arg2, UInt,Arg3, Ptr)
DllCall("gdi32\CreateSolidBrush", UInt,Arg1, Ptr)
DllCall("gdi32\DeleteDC", Ptr,Arg1, Int)
DllCall("gdi32\DeleteEnhMetaFile", Ptr,Arg1, Int)
DllCall("gdi32\DeleteObject", Ptr,Arg1, Int)
DllCall("gdi32\GetDeviceCaps", Ptr,Arg1, Int,Arg2, Int)
DllCall("gdi32\GetDIBits", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UInt,Arg4, Ptr,Arg5, Ptr,Arg6, UInt,Arg7, Int)
DllCall("gdi32\GetEnhMetaFileBits", Ptr,Arg1, UInt,Arg2, Ptr,Arg3, UInt)
DllCall("gdi32\GetFontUnicodeRanges", Ptr,Arg1, Ptr,Arg2, UInt)
DllCall("gdi32\GetObjectW", Ptr,Arg1, Int,Arg2, Ptr,Arg3, Int)
DllCall("gdi32\GetStockObject", Int,Arg1, Ptr)
DllCall("gdi32\GetTextExtentPoint32W", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Ptr,Arg4, Int)
DllCall("gdi32\GetTextFaceW", Ptr,Arg1, Int,Arg2, Ptr,Arg3, Int)
DllCall("gdi32\RealizePalette", Ptr,Arg1, UInt)
DllCall("gdi32\Rectangle", Ptr,Arg1, Int,Arg2, Int,Arg3, Int,Arg4, Int,Arg5, Int)
DllCall("gdi32\SelectObject", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("gdi32\SelectPalette", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Ptr)
DllCall("gdi32\SetBkColor", Ptr,Arg1, UInt,Arg2, UInt)
DllCall("gdi32\SetEnhMetaFileBits", UInt,Arg1, Ptr|UCharP,Arg2, Ptr)
DllCall("gdi32\SetStretchBltMode", Ptr,Arg1, Int,Arg2, Int)
DllCall("gdi32\SetTextColor", Ptr,Arg1, UInt,Arg2, UInt)
DllCall("gdi32\StretchBlt", Ptr,Arg1, Int,Arg2, Int,Arg3, Int,Arg4, Int,Arg5, Ptr,Arg6, Int,Arg7, Int,Arg8, Int,Arg9, Int,Arg10, UInt,Arg11, Int)
DllCall("imagehlp\ImageDirectoryEntryToData", Ptr,Arg1, UChar,Arg2, UShort,Arg3, Ptr,Arg4, Ptr)
DllCall("imagehlp\ImageRvaToVa", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr|PtrP,Arg4, Ptr)
DllCall("imagehlp\MapAndLoad", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int,Arg4, Int,Arg5, Int)
DllCall("imagehlp\UnMapAndLoad", Ptr,Arg1, Int)
DllCall("kernel32\AllocConsole", Int)
DllCall("kernel32\AttachConsole", UInt,Arg1, Int)
DllCall("kernel32\CloseHandle", Ptr,Arg1, Int)
DllCall("kernel32\CreateFileW", Ptr,Arg1, UInt,Arg2, UInt,Arg3, Ptr,Arg4, UInt,Arg5, UInt,Arg6, Ptr,Arg7, Ptr)
DllCall("kernel32\CreateProcessW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr,Arg4, Int,Arg5, UInt,Arg6, Ptr,Arg7, Ptr,Arg8, Ptr,Arg9, Ptr,Arg10, Int)
DllCall("kernel32\CreateRemoteThread", Ptr,Arg1, Ptr,Arg2, UPtr,Arg3, Ptr,Arg4, Ptr,Arg5, UInt,Arg6, Ptr,Arg7, Ptr)
DllCall("kernel32\CreateToolhelp32Snapshot", UInt,Arg1, UInt,Arg2, Ptr)
DllCall("kernel32\DeleteFileA", Ptr,Arg1, Int)
DllCall("kernel32\DeleteFileW", Ptr,Arg1, Int)
DllCall("kernel32\DeviceIoControl", Ptr,Arg1, UInt,Arg2, Ptr,Arg3, UInt,Arg4, Ptr,Arg5, UInt,Arg6, Ptr,Arg7, Ptr,Arg8, Int)
DllCall("kernel32\ExpandEnvironmentStringsW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UInt)
DllCall("kernel32\FileTimeToLocalFileTime", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\FileTimeToSystemTime", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\FindClose", Ptr,Arg1, Int)
DllCall("kernel32\FindFirstFileW", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("kernel32\FindNextFileW", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\FindResourceW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr)
DllCall("kernel32\FormatMessageA", UInt,Arg1, Ptr,Arg2, UInt,Arg3, UInt,Arg4, Ptr,Arg5, UInt,Arg6, Ptr,Arg7, UInt)
DllCall("kernel32\FormatMessageW", UInt,Arg1, Ptr,Arg2, UInt,Arg3, UInt,Arg4, Ptr,Arg5, UInt,Arg6, Ptr,Arg7, UInt)
DllCall("kernel32\FreeConsole", Int)
DllCall("kernel32\FreeLibrary", Ptr,Arg1, Int)
DllCall("kernel32\GetACP", UInt)
DllCall("kernel32\GetCommandLineW", Ptr)
DllCall("kernel32\GetCurrentProcessId", UInt)
DllCall("kernel32\GetCurrentThreadId", UInt)
DllCall("kernel32\GetDiskFreeSpaceExW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr,Arg4, Int)
DllCall("kernel32\GetEnvironmentVariableW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UInt)
DllCall("kernel32\GetExitCodeThread", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\GetFileAttributesW", Ptr,Arg1, UInt)
DllCall("kernel32\GetFileSizeEx", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\GetLastError", UInt)
DllCall("kernel32\GetLocalTime", Ptr,Arg1, Ptr)
DllCall("kernel32\GetLogicalDrives", UInt)
DllCall("kernel32\GetLogicalDriveStringsW", UInt,Arg1, Ptr,Arg2, UInt)
DllCall("kernel32\GetModuleFileNameW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UInt)
DllCall("kernel32\GetModuleHandleW", Ptr,Arg1, Ptr)
DllCall("kernel32\GetPriorityClass", Ptr,Arg1, UInt)
DllCall("kernel32\GetProcAddress", Ptr,Arg1, Ptr,Arg2, ERROR)
DllCall("kernel32\GetProcessTimes", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr,Arg4, Ptr,Arg5, Int)
DllCall("kernel32\GetStdHandle", UInt,Arg1, Ptr)
DllCall("kernel32\GetTempFileNameW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr,Arg4, UInt)
DllCall("kernel32\GetVersion", UInt)
DllCall("kernel32\GetVersionExW", Ptr,Arg1, Int)
DllCall("kernel32\GlobalAlloc", UInt,Arg1, UPtr,Arg2, Ptr)
DllCall("kernel32\GlobalFree", Ptr,Arg1, Ptr)
DllCall("kernel32\GlobalLock", Ptr,Arg1, Ptr)
DllCall("kernel32\GlobalSize", Ptr,Arg1, UPtr)
DllCall("kernel32\GlobalUnlock", Ptr,Arg1, Int)
DllCall("kernel32\IsWow64Process", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\LCMapStringW", UInt,Arg1, UInt,Arg2, Ptr,Arg3, Int,Arg4, Ptr,Arg5, Int,Arg6, Int)
DllCall("kernel32\LoadLibraryW", Ptr,Arg1, Ptr)
DllCall("kernel32\LoadResource", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("kernel32\LocalFileTimeToFileTime", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\LockResource", Ptr,Arg1, Ptr)
DllCall("kernel32\lstrcpy", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("kernel32\lstrcpyn", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Ptr)
DllCall("kernel32\lstrlen", Ptr,Arg1, Int)
DllCall("kernel32\Module32First", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\Module32Next", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\MulDiv", Int,Arg1, Int,Arg2, Int,Arg3, Int)
DllCall("kernel32\MultiByteToWideChar", UInt,Arg1, UInt,Arg2, Ptr,Arg3, Int,Arg4, Ptr,Arg5, Int,Arg6, Int)
DllCall("kernel32\OpenProcess", UInt,Arg1, Int,Arg2, UInt,Arg3, Ptr)
DllCall("kernel32\QueryPerformanceCounter", Ptr|Int64P,Arg1, Int)
DllCall("kernel32\ReadFile", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr,Arg4, Ptr,Arg5, Int)
DllCall("kernel32\ReadProcessMemory", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UPtr,Arg4, Ptr|UPtrP,Arg5, Int)
DllCall("kernel32\RtlMoveMemory", Ptr|PtrP,Arg1, Ptr|PtrP,Arg2, UPtr,Arg3, Ptr)
DllCall("kernel32\SetFilePointerEx", Ptr,Arg1, Int64,Arg2, Ptr,Arg3, UInt,Arg4, Int)
DllCall("kernel32\SetFileTime", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr,Arg4, Int)
DllCall("kernel32\SetLastError", UInt,Arg1, Ptr)
DllCall("kernel32\SetProcessShutdownParameters", UInt,Arg1, UInt,Arg2, Int)
DllCall("kernel32\SetSystemTime", Ptr,Arg1, Int)
DllCall("kernel32\SizeofResource", Ptr,Arg1, Ptr,Arg2, UInt)
DllCall("kernel32\Sleep", UInt,Arg1, Ptr)
DllCall("kernel32\SystemTimeToFileTime", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("kernel32\SystemTimeToTzSpecificLocalTime", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int)
DllCall("kernel32\TzSpecificLocalTimeToSystemTime", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int)
DllCall("kernel32\VirtualAllocEx", Ptr,Arg1, Ptr,Arg2, UPtr,Arg3, UInt,Arg4, UInt,Arg5, Ptr)
DllCall("kernel32\VirtualFreeEx", Ptr,Arg1, Ptr,Arg2, UPtr,Arg3, UInt,Arg4, Int)
DllCall("kernel32\VirtualProtect", Ptr,Arg1, UPtr,Arg2, UInt,Arg3, Ptr,Arg4, Int)
DllCall("kernel32\VirtualProtectEx", Ptr,Arg1, Ptr,Arg2, UPtr,Arg3, UInt,Arg4, Ptr,Arg5, Int)
DllCall("kernel32\VirtualQueryEx", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UPtr,Arg4, UPtr)
DllCall("kernel32\WaitForSingleObject", Ptr,Arg1, UInt,Arg2, UInt)
DllCall("kernel32\WideCharToMultiByte", UInt,Arg1, UInt,Arg2, Ptr,Arg3, Int,Arg4, Ptr,Arg5, Int,Arg6, Ptr,Arg7, Ptr,Arg8, Int)
DllCall("kernel32\Wow64DisableWow64FsRedirection", Ptr|PtrP,Arg1, Int)
DllCall("kernel32\WriteFile", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr,Arg4, Ptr,Arg5, Int)
DllCall("kernel32\WriteProcessMemory", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UPtr,Arg4, Ptr|UPtrP,Arg5, Int)
DllCall("Magnification\MagInitialize", Int)
DllCall("Magnification\MagSetImageScalingCallback", Ptr,Arg1, ERROR,Arg2, Int)
DllCall("Magnification\MagSetWindowSource", Ptr,Arg1, ERROR,Arg2, Int)
DllCall("Magnification\MagSetWindowTransform", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("Magnification\MagUninitialize", Int)
DllCall("ole32\CLSIDFromProgID", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("ole32\CLSIDFromString", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("ole32\CoCreateGuid", Ptr,Arg1, Int)
DllCall("ole32\CoCreateInstance", ERROR,Arg1, Ptr,Arg2, UInt,Arg3, ERROR,Arg4, Ptr|PtrP,Arg5, Int)
DllCall("ole32\CoGetObject", Ptr,Arg1, Ptr,Arg2, ERROR,Arg3, Ptr|PtrP,Arg4, Int)
DllCall("ole32\CoInitialize", Ptr,Arg1, Int)
DllCall("ole32\CoTaskMemAlloc", UPtr,Arg1, Ptr)
DllCall("ole32\CoTaskMemFree", Ptr,Arg1, Ptr)
DllCall("ole32\CoUninitialize", Ptr)
DllCall("ole32\CreateStreamOnHGlobal", Ptr,Arg1, Int,Arg2, Ptr|PtrP,Arg3, ERROR)
DllCall("ole32\IsEqualGUID", ERROR,Arg1, ERROR,Arg2, Int)
DllCall("ole32\OleInitialize", Ptr,Arg1, Int)
DllCall("ole32\OleUninitialize", Ptr)
DllCall("ole32\ProgIDFromCLSID", ERROR,Arg1, Ptr|PtrP,Arg2, Int)
DllCall("ole32\StringFromGUID2", ERROR,Arg1, Ptr,Arg2, Int,Arg3, Int)
DllCall("oleacc\AccessibleChildren", Ptr,Arg1, Int,Arg2, Int,Arg3, Ptr,Arg4, Ptr|IntP,Arg5, ERROR)
DllCall("oleacc\AccessibleObjectFromEvent", Ptr,Arg1, UInt,Arg2, UInt,Arg3, Ptr,Arg4, Ptr,Arg5, ERROR)
DllCall("oleacc\AccessibleObjectFromPoint", ERROR,Arg1, Ptr,Arg2, Ptr,Arg3, ERROR)
DllCall("oleacc\AccessibleObjectFromWindow", Ptr,Arg1, UInt,Arg2, ERROR,Arg3, Ptr|PtrP,Arg4, ERROR)
DllCall("oleacc\GetRoleTextA", UInt,Arg1, Ptr,Arg2, UInt,Arg3, UInt)
DllCall("oleacc\GetRoleTextW", UInt,Arg1, Ptr,Arg2, UInt,Arg3, UInt)
DllCall("oleacc\GetStateTextA", UInt,Arg1, Ptr,Arg2, UInt,Arg3, UInt)
DllCall("oleacc\GetStateTextW", UInt,Arg1, Ptr,Arg2, UInt,Arg3, UInt)
DllCall("oleacc\ObjectFromLresult", Ptr,Arg1, ERROR,Arg2, UPtr,Arg3, Ptr|PtrP,Arg4, ERROR)
DllCall("oleacc\WindowFromAccessibleObject", Ptr,Arg1, Ptr|PtrP,Arg2, ERROR)
DllCall("oleaut32\DispGetParam", Ptr,Arg1, UInt,Arg2, ERROR,Arg3, Ptr,Arg4, Ptr|UIntP,Arg5, Int)
DllCall("oleaut32\GetActiveObject", ERROR,Arg1, Ptr|PtrP,Arg2, Ptr,Arg3, Int)
DllCall("oleaut32\SafeArrayAccessData", Ptr,Arg1, Ptr|PtrP,Arg2, Int)
DllCall("oleaut32\SafeArrayDestroy", Ptr,Arg1, Int)
DllCall("oleaut32\SafeArrayGetDim", Ptr,Arg1, UInt)
DllCall("oleaut32\SafeArrayUnaccessData", Ptr,Arg1, Int)
DllCall("oleaut32\SysAllocString", Ptr,Arg1, ERROR)
DllCall("oleaut32\SysFreeString", ERROR,Arg1, Ptr)
DllCall("oleaut32\SysStringLen", ERROR,Arg1, UInt)
DllCall("oleaut32\VariantChangeTypeEx", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UShort,Arg4, ERROR,Arg5, Int)
DllCall("oleaut32\VariantClear", Ptr,Arg1, Int)
DllCall("powrprof\SetSuspendState", UChar,Arg1, UChar,Arg2, UChar,Arg3, UChar)
DllCall("psapi\EnumProcesses", Ptr|UIntP,Arg1, UInt,Arg2, Ptr|UIntP,Arg3, Int)
DllCall("psapi\GetMappedFileNameW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, UInt)
DllCall("psapi\GetModuleBaseNameW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, UInt)
DllCall("psapi\GetModuleFileNameExA", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, UInt)
DllCall("psapi\GetModuleFileNameExW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, UInt)
DllCall("psapi\GetProcessImageFileNameW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UInt)
DllCall("shell32\ExtractIconEx", Ptr,Arg1, Int,Arg2, Ptr|PtrP,Arg3, Ptr|PtrP,Arg4, UInt,Arg5, UInt)
DllCall("shell32\SHAddToRecentDocs", UInt,Arg1, Ptr,Arg2, Ptr)
DllCall("shell32\SHBindToParent", Ptr,Arg1, ERROR,Arg2, Ptr|PtrP,Arg3, Ptr,Arg4, Int)
DllCall("shell32\SHChangeNotify", Int,Arg1, UInt,Arg2, Ptr,Arg3, Ptr,Arg4, Ptr)
DllCall("shell32\Shell_NotifyIcon", UInt,Arg1, Ptr,Arg2, Int)
DllCall("shell32\SHGetFileInfo", Ptr,Arg1, UInt,Arg2, Ptr|PtrP,Arg3, UInt,Arg4, UInt,Arg5, UPtr)
DllCall("shell32\SHGetFileInfoW", Ptr,Arg1, UInt,Arg2, Ptr|PtrP,Arg3, UInt,Arg4, UInt,Arg5, UPtr)
DllCall("shell32\SHGetFolderLocation", Ptr,Arg1, Int,Arg2, Ptr,Arg3, UInt,Arg4, Ptr,Arg5, Int)
DllCall("shell32\SHGetFolderPathW", Ptr,Arg1, Int,Arg2, Ptr,Arg3, UInt,Arg4, Ptr,Arg5, Int)
DllCall("shell32\SHParseDisplayName", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, ERROR,Arg4, Ptr,Arg5, Int)
DllCall("shell32\SHQueryRecycleBinA", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("shlwapi\AssocQueryStringW", ERROR,Arg1, ERROR,Arg2, Ptr,Arg3, Ptr,Arg4, Ptr,Arg5, Ptr|UIntP,Arg6, Int)
DllCall("shlwapi\PathCreateFromUrlW", Ptr,Arg1, Ptr,Arg2, Ptr|UIntP,Arg3, UInt,Arg4, Int)
DllCall("shlwapi\SHGetViewStatePropertyBag", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, ERROR,Arg4, Ptr|PtrP,Arg5, Int)
DllCall("shlwapi\StrCmpLogicalW", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("shlwapi\StrCmpNW", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Int)
DllCall("shlwapi\StrStrIW", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("shlwapi\UrlCreateFromPathW", Ptr,Arg1, Ptr,Arg2, Ptr|UIntP,Arg3, UInt,Arg4, Int)
DllCall("user32\AttachThreadInput", UInt,Arg1, UInt,Arg2, Int,Arg3, Int)
DllCall("user32\CallNextHookEx", Ptr,Arg1, Int,Arg2, UPtr,Arg3, Ptr,Arg4, Ptr)
DllCall("user32\CallWindowProcA", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UPtr,Arg4, Ptr,Arg5, Ptr)
DllCall("user32\CallWindowProcW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UPtr,Arg4, Ptr,Arg5, Ptr)
DllCall("user32\CharLowerW", Ptr,Arg1, Ptr)
DllCall("user32\CharUpperW", Ptr,Arg1, Ptr)
DllCall("user32\ClientToScreen", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\CloseClipboard", Int)
DllCall("user32\CopyIcon", Ptr,Arg1, Ptr)
DllCall("user32\CopyImage", Ptr,Arg1, UInt,Arg2, Int,Arg3, Int,Arg4, UInt,Arg5, Ptr)
DllCall("user32\CountClipboardFormats", Int)
DllCall("user32\CreateCaret", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Int,Arg4, Int)
DllCall("user32\CreateCursor", Ptr,Arg1, Int,Arg2, Int,Arg3, Int,Arg4, Int,Arg5, Ptr|PtrP,Arg6, Ptr|PtrP,Arg7, Ptr)
DllCall("user32\CreateDialogParamW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, ERROR,Arg4, Ptr,Arg5, Ptr)
DllCall("user32\CreateIconFromResourceEx", Ptr,Arg1, UInt,Arg2, Int,Arg3, UInt,Arg4, Int,Arg5, Int,Arg6, UInt,Arg7, Ptr)
DllCall("user32\CreatePopupMenu", Ptr)
DllCall("user32\CreateWindowExW", UInt,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, Int,Arg5, Int,Arg6, Int,Arg7, Int,Arg8, Ptr,Arg9, Ptr,Arg10, Ptr,Arg11, Ptr,Arg12, Ptr)
DllCall("user32\DefWindowProcW", Ptr,Arg1, UInt,Arg2, UPtr,Arg3, Ptr,Arg4, Ptr)
DllCall("user32\DestroyIcon", Ptr,Arg1, Int)
DllCall("user32\DestroyMenu", Ptr,Arg1, Int)
DllCall("user32\DrawIconEx", Ptr,Arg1, Int,Arg2, Int,Arg3, Ptr,Arg4, Int,Arg5, Int,Arg6, UInt,Arg7, Ptr,Arg8, UInt,Arg9, Int)
DllCall("user32\DrawTextExW", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Ptr,Arg4, UInt,Arg5, Ptr,Arg6, Int)
DllCall("user32\DrawTextW", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Ptr,Arg4, UInt,Arg5, Int)
DllCall("user32\EmptyClipboard", Int)
DllCall("user32\EnableMenuItem", Ptr,Arg1, UInt,Arg2, UInt,Arg3, Int)
DllCall("user32\EnumClipboardFormats", UInt,Arg1, UInt)
DllCall("user32\EnumDisplayDevicesW", Ptr,Arg1, UInt,Arg2, Ptr,Arg3, UInt,Arg4, Int)
DllCall("user32\EnumWindows", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\FillRect", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int)
DllCall("user32\FindWindowExW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr,Arg4, Ptr)
DllCall("user32\FindWindowW", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("user32\GetActiveWindow", Ptr)
DllCall("user32\GetAncestor", Ptr,Arg1, UInt,Arg2, Ptr)
DllCall("user32\GetCaretBlinkTime", UInt)
DllCall("user32\GetCaretPos", Ptr,Arg1, Int)
DllCall("user32\GetClassLongW", Ptr,Arg1, Int,Arg2, UInt)
DllCall("user32\GetClientRect", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\GetClipboardData", UInt,Arg1, Ptr)
DllCall("user32\GetClipboardFormatNameW", UInt,Arg1, Ptr,Arg2, Int,Arg3, Int)
DllCall("user32\GetCursorInfo", Ptr,Arg1, Int)
DllCall("user32\GetCursorPos", Ptr,Arg1, Int)
DllCall("user32\GetDC", Ptr,Arg1, Ptr)
DllCall("user32\GetDCEx", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr)
DllCall("user32\GetFocus", Ptr)
DllCall("user32\GetForegroundWindow", Ptr)
DllCall("user32\GetGUIThreadInfo", UInt,Arg1, Ptr,Arg2, Int)
DllCall("user32\GetIconInfo", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\GetKeyNameTextW", Int,Arg1, Ptr,Arg2, Int,Arg3, Int)
DllCall("user32\GetMenu", Ptr,Arg1, Ptr)
DllCall("user32\GetMenuBarInfo", Ptr,Arg1, Int,Arg2, Int,Arg3, Ptr,Arg4, Int)
DllCall("user32\GetMenuItemCount", Ptr,Arg1, Int)
DllCall("user32\GetMenuItemID", Ptr,Arg1, Int,Arg2, UInt)
DllCall("user32\GetMenuItemInfoW", Ptr,Arg1, UInt,Arg2, Int,Arg3, Ptr,Arg4, Int)
DllCall("user32\GetMenuItemRect", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr,Arg4, Int)
DllCall("user32\GetMenuStringW", Ptr,Arg1, UInt,Arg2, Ptr,Arg3, Int,Arg4, UInt,Arg5, Int)
DllCall("user32\GetOpenClipboardWindow", Ptr)
DllCall("user32\GetParent", Ptr,Arg1, Ptr)
DllCall("user32\GetScrollPos", Ptr,Arg1, Int,Arg2, Int)
DllCall("user32\GetSubMenu", Ptr,Arg1, Int,Arg2, Ptr)
DllCall("user32\GetSysColor", Int,Arg1, UInt)
DllCall("user32\GetSystemMenu", Ptr,Arg1, Int,Arg2, Ptr)
DllCall("user32\GetWindow", Ptr,Arg1, UInt,Arg2, Ptr)
DllCall("user32\GetWindowInfo", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\GetWindowLongW", Ptr,Arg1, Int,Arg2, Int)
DllCall("user32\GetWindowRect", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\GetWindowRgnBox", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\GetWindowTextA", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Int)
DllCall("user32\GetWindowThreadProcessId", Ptr,Arg1, Ptr,Arg2, UInt)
DllCall("user32\HideCaret", Ptr,Arg1, Int)
DllCall("user32\InsertMenuW", Ptr,Arg1, UInt,Arg2, UInt,Arg3, UPtr,Arg4, Ptr,Arg5, Int)
DllCall("user32\InvalidateRect", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Int)
DllCall("user32\IsCharAlphaW", UShort,Arg1, Int)
DllCall("user32\IsChild", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\IsClipboardFormatAvailable", UInt,Arg1, Int)
DllCall("user32\IsWindow", Ptr,Arg1, Int)
DllCall("user32\IsWindowUnicode", Ptr,Arg1, Int)
DllCall("user32\IsWindowVisible", Ptr,Arg1, Int)
DllCall("user32\LoadCursorFromFileW", Ptr,Arg1, Ptr)
DllCall("user32\LoadCursorW", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("user32\LoadIconW", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("user32\LoadImageA", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Int,Arg4, Int,Arg5, UInt,Arg6, Ptr)
DllCall("user32\LoadImageW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Int,Arg4, Int,Arg5, UInt,Arg6, Ptr)
DllCall("user32\LoadStringW", Ptr,Arg1, UInt,Arg2, Ptr,Arg3, Int,Arg4, Int)
DllCall("user32\LockWorkStation", Int)
DllCall("user32\MessageBoxW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, Int)
DllCall("user32\ModifyMenuW", Ptr,Arg1, UInt,Arg2, UInt,Arg3, UPtr,Arg4, Ptr,Arg5, Int)
DllCall("user32\OpenClipboard", Ptr,Arg1, Int)
DllCall("user32\PaintDesktop", Ptr,Arg1, Int)
DllCall("user32\PostMessageW", Ptr,Arg1, UInt,Arg2, UPtr,Arg3, Ptr,Arg4, Int)
DllCall("user32\PrintWindow", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Int)
DllCall("user32\PrivateExtractIconsW", Ptr,Arg1, Int,Arg2, Int,Arg3, Int,Arg4, Ptr|PtrP,Arg5, Ptr|UIntP,Arg6, UInt,Arg7, UInt,Arg8, UInt)
DllCall("user32\RedrawWindow", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, Int)
DllCall("user32\RegisterClassW", Ptr|PtrP,Arg1, UShort)
DllCall("user32\RegisterClipboardFormatW", Ptr,Arg1, UInt)
DllCall("user32\RegisterWindowMessageW", Ptr,Arg1, UInt)
DllCall("user32\ReleaseDC", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\RemoveMenu", Ptr,Arg1, UInt,Arg2, UInt,Arg3, Int)
DllCall("user32\ScreenToClient", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\SendMessageA", Ptr,Arg1, UInt,Arg2, UPtr,Arg3, Ptr,Arg4, Ptr)
DllCall("user32\SendMessageW", Ptr,Arg1, UInt,Arg2, UPtr,Arg3, Ptr,Arg4, Ptr)
DllCall("user32\SetCaretBlinkTime", UInt,Arg1, Int)
DllCall("user32\SetClassLongW", Ptr,Arg1, Int,Arg2, Int,Arg3, UInt)
DllCall("user32\SetClipboardData", UInt,Arg1, Ptr,Arg2, Ptr)
DllCall("user32\SetCursorPos", Int,Arg1, Int,Arg2, Int)
DllCall("user32\SetForegroundWindow", Ptr,Arg1, Int)
DllCall("user32\SetMenu", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\SetMenuInfo", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("user32\SetMenuItemBitmaps", Ptr,Arg1, UInt,Arg2, UInt,Arg3, Ptr,Arg4, Ptr,Arg5, Int)
DllCall("user32\SetMenuItemInfoW", Ptr,Arg1, UInt,Arg2, Int,Arg3, Ptr,Arg4, Int)
DllCall("user32\SetParent", Ptr,Arg1, Ptr,Arg2, Ptr)
DllCall("user32\SetRect", Ptr,Arg1, Int,Arg2, Int,Arg3, Int,Arg4, Int,Arg5, Int)
DllCall("user32\SetSysColors", Int,Arg1, Ptr|IntP,Arg2, Ptr|UIntP,Arg3, Int)
DllCall("user32\SetSystemCursor", Ptr,Arg1, UInt,Arg2, Int)
DllCall("user32\SetWindowLongW", Ptr,Arg1, Int,Arg2, Int,Arg3, Int)
DllCall("user32\SetWindowPos", Ptr,Arg1, Ptr,Arg2, Int,Arg3, Int,Arg4, Int,Arg5, Int,Arg6, UInt,Arg7, Int)
DllCall("user32\SetWindowsHookExW", Int,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, Ptr)
DllCall("user32\SetWinEventHook", UInt,Arg1, UInt,Arg2, Ptr,Arg3, Ptr,Arg4, UInt,Arg5, UInt,Arg6, UInt,Arg7, Ptr)
DllCall("user32\ShowCaret", Ptr,Arg1, Int)
DllCall("user32\ShowWindow", Ptr,Arg1, Int,Arg2, Int)
DllCall("user32\SystemParametersInfoW", UInt,Arg1, UInt,Arg2, Ptr,Arg3, UInt,Arg4, Int)
DllCall("user32\TrackPopupMenu", Ptr,Arg1, UInt,Arg2, Int,Arg3, Int,Arg4, Int,Arg5, Ptr,Arg6, Ptr,Arg7, Int)
DllCall("user32\TrackPopupMenuEx", Ptr,Arg1, UInt,Arg2, Int,Arg3, Int,Arg4, Ptr,Arg5, Ptr,Arg6, Int)
DllCall("user32\UnhookWinEvent", Ptr,Arg1, Int)
DllCall("user32\UpdateLayeredWindow", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Ptr,Arg4, Ptr,Arg5, Ptr,Arg6, UInt,Arg7, Ptr,Arg8, UInt,Arg9, Int)
DllCall("user32\wsprintfA", Ptr,Arg1, Ptr,Arg2, ERROR,Arg3, Int)
DllCall("user32\wsprintfW", Ptr,Arg1, Ptr,Arg2, ERROR,Arg3, Int)
DllCall("uxtheme\SetWindowThemeAttribute", Ptr,Arg1, ERROR,Arg2, Ptr,Arg3, UInt,Arg4, Int)
DllCall("wininet\FtpCreateDirectoryW", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("wininet\FtpDeleteFileW", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("wininet\FtpFindFirstFileW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, UPtr,Arg5, Ptr)
DllCall("wininet\FtpGetCurrentDirectoryW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int)
DllCall("wininet\FtpGetFileSize", Ptr,Arg1, Ptr,Arg2, UInt)
DllCall("wininet\FtpGetFileW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int,Arg4, UInt,Arg5, UInt,Arg6, UPtr,Arg7, Int)
DllCall("wininet\FtpOpenFileW", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UInt,Arg4, UPtr,Arg5, Ptr)
DllCall("wininet\FtpPutFileW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, UPtr,Arg5, Int)
DllCall("wininet\FtpRemoveDirectoryW", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("wininet\FtpRenameFileW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int)
DllCall("wininet\FtpSetCurrentDirectoryW", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("wininet\InternetCloseHandle", Ptr,Arg1, Int)
DllCall("wininet\InternetConnectW", Ptr,Arg1, Ptr,Arg2, ERROR,Arg3, Ptr,Arg4, Ptr,Arg5, UInt,Arg6, UInt,Arg7, UPtr,Arg8, Ptr)
DllCall("wininet\InternetFindNextFileW", Ptr,Arg1, Ptr,Arg2, Int)
DllCall("wininet\InternetGetLastResponseInfoW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, Int)
DllCall("wininet\InternetOpenUrlW", Ptr,Arg1, Ptr,Arg2, Ptr,Arg3, UInt,Arg4, UInt,Arg5, UPtr,Arg6, Ptr)
DllCall("wininet\InternetOpenW", Ptr,Arg1, UInt,Arg2, Ptr,Arg3, Ptr,Arg4, UInt,Arg5, Ptr)
DllCall("wininet\InternetQueryDataAvailable", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, UPtr,Arg4, Int)
DllCall("wininet\InternetReadFile", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr,Arg4, Int)
DllCall("wininet\InternetSetStatusCallback", Ptr,Arg1, Ptr,Arg2, ERROR)
DllCall("wininet\InternetWriteFile", Ptr,Arg1, Ptr,Arg2, UInt,Arg3, Ptr,Arg4, Int)
DllCall("winmm\timeBeginPeriod", UInt,Arg1, ERROR)
DllCall("winmm\timeEndPeriod", UInt,Arg1, ERROR)
DllCall("ws2_32\connect", ERROR,Arg1, Ptr,Arg2, Int,Arg3, Int)
DllCall("ws2_32\htons", UShort,Arg1, UShort)
DllCall("ws2_32\inet_addr", Ptr|CharP,Arg1, ERROR)
DllCall("ws2_32\recv", ERROR,Arg1, Ptr|CharP,Arg2, Int,Arg3, Int,Arg4, Int)
DllCall("ws2_32\socket", Int,Arg1, Int,Arg2, Int,Arg3, ERROR)
DllCall("ws2_32\WSAAsyncSelect", ERROR,Arg1, Ptr,Arg2, ERROR,Arg3, Int,Arg4, Int)
DllCall("ws2_32\WSACleanup", Int)
DllCall("ws2_32\WSAGetLastError", Int)
DllCall("ws2_32\WSAStartup", UShort,Arg1, Ptr,Arg2, Int)
Last edited by jeeswg on 12 Nov 2017, 15:20, edited 3 times in total.
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: list of dll functions with parameter types for DllCall

21 Apr 2017, 00:59

I think this is a good idea. We could make an intelliSense for DllCalls with this.
However it would be good if you could host it at a different place than this forum e.g. GitHub so that other members can contribute. ( I would probably like to add opengl32.dll )
It would also be very nice if we could provide a little more details e.g. add names for the parameters and a bit of a description and a link to documentation.
Recommends AHK Studio
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: list of dll functions with parameter types for DllCall

21 Apr 2017, 02:14

Yeah but they are not complete.
I think he implemented about 10% or less of opengls functionality.
Recommends AHK Studio
Helgef
Posts: 4709
Joined: 17 Jul 2016, 01:02
Contact:

Re: list of dll functions with parameter types for DllCall

22 Apr 2017, 17:26

Thanks for sharing jeeswg, I might use this :think:
As mentioned by nnnik, variable names would be nice. The link from guest3456 seems to have quite a few more functions, maybe you can parse that list ;)

Cheers!
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: list of dll functions with parameter types for DllCall

22 Apr 2017, 20:18

Many thanks for the link, guest3456.

The AHK_H link is a game changer from my perspective, but I'll need to know how the struct information was retrieved (e.g. I download them from MSDN), and how it was confirmed whether a parameter type was signed/unsigned.

The work there is excellent, so credits to HotKeyIt and/or whoever else worked on it. So anybody who worked on it, it would be great to hear from you.

I've had quite a lot to think about, regarding dll functions, just as I thought I'd essentially finished what I set out to do, leaving me like a startled fawn. I'm going to have to 'come out of retirement' again, and come back to dll functions.

- list of parameter types, their sizes (in x64/x32), whether signed/unsigned
--> you can get the sizes using the C++ method ('including' header files where necessary)
--> in HotKeyIt's list, where did the parameter size/type information come from?
--> ... is there information inside the dlls?
--> ... you can get the signed/unsigned property by relying on other lists (bad)
--> ... can you get the signed/unsigned property by checking header files in Visual Studio perhaps?
--> e.g. '.h' files in C:\Program Files (x86)\Windows Kits\8.1
--> complicated, perhaps easier when I confirm certain things: adapting the information to allow things like 'Ptr|IntP' / 'Ptr|Str' / 'Ptr|PtrP'

- list of dlls, their functions, their structs
--> you can use SKAN's function to get a dll's list of functions
--> in HotKeyIt's list, where did the struct information come from?
--> ... downloading htms en masse from MSDN?
--> ... is the information available inside header in the Visual Studio folder?
--> are there errors in some of the structs at MSDN and/or other sources?

[SKAN's function to list a dll's functions]
DllListExports() - List of Function exports of a DLL - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=6&t=4563

- parsing structs to extract the parameter type and 'variable name', and know that the rest can be discarded
--> the information from the AHK_H link, gives me all sorts of test data, to check that my parser is perfect
--> ... that will then allow me to focus on being able to retrieve the 'variable names'
--> ... logically, information should be retrieved for every function in a dll

- which dlls to include
--> e.g. we need to handle msvcrt and Gdip functions [EDIT: it appears that gdiplus is in the AHK_H list]
--> I would advocate creating 2 files per dll, an MSDN-style file, and an AHK-style file
--> the dlls in HotKeyIt's list are virtually the same ones I included, I'm not planning to add any more, but people could propose dlls to add

- additional information to include
--> what did nnnik have in mind?
--> ... what functions does opengl32.dll have that you use, are you saying that the AHK_H list only lists 10% of opengl32's functions?
--> ... adding parameter names is fine
--> ... what is 'a bit of description', what other descriptive material beyond parameter types and 'variable names' would you like?
--> ... 'and a link to documentation', an MSDN link for every dll function?

What are the best resources/links available that could assist me to do further work on this topic, including the best list of parameter type names and their AHK equivalents.

Also, is there a difference between LPCVOID/LPVOID/PVOID/VOID* (are they all 'Ptr or PtrP'), and LPBOOL/PBOOL/BOOL* (are they all 'Ptr or IntP')? What is **?

Fundamentally I need to upload 3 things:
- my list of parameter types and their sizes (derived via C++, a massive list)
- confirm the best current list of parameter types and their AHK equivalents (and share my suggested extensions to it, or indeed my own version of it) (also any general non-AHK lists of parameter types and their sizes/signed/unsigned information)
- my functions for parsing dll structs (that I've written) and parsing the AHK_H list (that I'm about to write)

@Helgef, yes, you've pretty much summed up my line of thinking.

Cheers.

==================================================

Information example:

Code: Select all

BOOL WINAPI GetMenuBarInfo(
  _In_    HWND         hwnd,
  _In_    LONG         idObject,
  _In_    LONG         idItem,
  _Inout_ PMENUBARINFO pmbi
);

[one-line version of struct, with multiple whitespace replaced with single spaces]
BOOL WINAPI GetMenuBarInfo(_In_ HWND hwnd, _In_ LONG idObject, _In_ LONG idItem, _Inout_ PMENUBARINFO pmbi);

[proposed content of new MSDN-style/AHK-style files]
user32\GetMenuBarInfo, HWND,hwnd, LONG,idObject, LONG,idItem, PMENUBARINFO,pmbi, (BOOL)
user32\GetMenuBarInfo, Ptr,hwnd, Int,idObject, Int,idItem, Ptr,pmbi, (Int)

from AHK_H list: tuiuiti -> t ui ui t i -> ptr uint uint ptr (int)
which clashes with information above: ptr int int ptr (int)
Summary of dll functions I posted cf. the AHK_H list:

Code: Select all

;29 dlls listed at:
;WinApi
;https://hotkeyit.github.io/v2/docs/commands/WinApi.htm
;note: Kernel32 appears twice in that list

;x indicates that no dll functions from that dll
;appear in my present list

	Advapi32.dll
	Comctl32.dll
x	Comdlg32.dll
	Crypt32.dll
	Gdi32.dll
x	Gdiplus.dll
x	Glu32.dll
x	Hid.dll
	Kernel32.dll
	Ole32.dll
	Oleacc.dll
	OleAut32.dll
x	Opengl32.dll
	psapi.dll
x	Rasapi32.dll
x	Rasdlg.dll
x	Rasman.dll
	Shell32.dll
	Shlwapi.dll
x	Tapi32.dll
	User32.dll
x	Userenv.dll
	UxTheme.dll
x	Version.dll
x	Winhttp.dll
	Wininet.dll
	Winmm.dll
x	Winspool.dll
	Ws2_32.dll
I will do some checks on the AHK_H list, counting the number of functions, and comparing them with the count returned by SKAN's function for listing functions in a dll.
Last edited by jeeswg on 23 Apr 2017, 10:11, edited 1 time in total.
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: list of dll functions with parameter types for DllCall

23 Apr 2017, 09:03

You need to understand that OpenGL is not opengl32.dll. OpenGL is a specification of function names their received types etc.
Your graphics card vendor then creates an implementation of OpenGL and ships it with your graphics card driver.
If you install a new graphics card driver on Windows it is likely that openGL32.dll will change.
The second thing is that the specification of OpenGL grew and changed over the years. It never changed how functions work though just added new ones and removed old ones.
Not every graphics card supports every OpenGL version. The older the graphics card the more likel it is that will only support older OpenGL versions.
The latest specification is 4.5. You can look it up here.
However if you want backwards compatability you need every OpenGL function from every version. ( That's impossible to do alone )
jeeswg wrote:--> the dlls in HotKeyIt's list are virtually the same ones I included, I'm not planning to add any more, but people could propose dlls to add
You could solve this problem by hosting this list on github since other people could contribute to it. This would allow us to document .dlls that are not on MSDN e.g. Bass.dll SciLexer.dll...
jeeswg wrote:--> ... what is 'a bit of description', what other descriptive material beyond parameter types and 'variable names' would you like?
A one-liner about functionality would be nice. e.g "SubStr allows you to return a part of a string"
jeeswg wrote:--> ... 'and a link to documentation', an MSDN link for every dll function?
Yeah or wherever we find good documentation for that function.
What I pictured when I made those suggestions was a tool for an editor. Do you know what IntelliSense is? It is kind of an auto complete for functions/variables or whatever else you want completed but it also displays you information about the function as you type.
With this sort of document we could create such a tool for DllCalls and built them into AutoHotkeys main editors.
Recommends AHK Studio
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: list of dll functions with parameter types for DllCall

23 Apr 2017, 09:43

@nnnik
Cheers for the OpenGL clarification, I did check the Wikipedia article, it wasn't very clear what it was.

Yes, I intend to try and get to grips with GitHub for this project. I.e. to start using it for the first time.

Regarding function descriptions and urls. I would advocate separate description/url ini files for each dll. So 4 files per dll: MSDN-style, AHK-style, description, link (url). Allowing more than one url per function, possibly pipe-separated. Although I have no desire to work on any description/link files myself. However, I do plan, completely separately, to create a list of handy dll functions with descriptions.

Yes, IntelliSense would be a good use for this information. Personally I would use hotstrings for certain dlls, and/or a hotkey/menu option that retrieves the dll function within some selected text, and expands it into a DllCall line. I often find IntelliSense slow to use in practice.

Many thanks for your comments.

[EDIT:] I think a 5th file per dll is needed, a raw, horizontal one-line version of the struct for each dll function, basically just like in the AHK_H list.
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
HotKeyIt
Posts: 2364
Joined: 29 Sep 2013, 18:35
Contact:

Re: list of dll functions with parameter types for DllCall

23 Apr 2017, 17:12

Attached is the definition file I built for a custom scite editor, including the description, I got the functions from various places, msdn, sdk headers...

Also attached user.ahk.api for SciTE4AutoHotkey and AHK_H.

EDIT:
Also note that for DllCall it is not important whether it is signed or unsigned for input parameter, only output parameter matters.
Also WinAPI does only accept pointer for IntP and similar. Using getvar(var:=0) you can retrieve that pointer for a variable to fill it (e.g. QueryPerformanceCounter(getvar(count:=0))). After calling the function you might need to read the parameter using functions like ToInt!
Attachments
user.ahk.zip
(89.4 KiB) Downloaded 384 times
DllCall Definitions.zip
(633.8 KiB) Downloaded 411 times
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: list of dll functions with parameter types for DllCall

27 Apr 2017, 12:54

Lately I've been thinking about using JSON to encode this information.
Recommends AHK Studio
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: list of dll functions with parameter types for DllCall

30 Apr 2017, 20:29

I'm planning to get the x64 and x86 parameter size values for the 19486 parameters in:
http://katahiromz.web.fc2.com/win32/winwords.txt

One issue would be: how many/which headers to include, to get as many as possible to work first time. (I'd fill some gaps in later.)

Another issue is that last time I did something similar I believe it clogged the system with the remnants of loads of small files (even though they were deleted and overwritten each time). I don't know if perhaps the AHK File object can overwrite files in a cleaner way. Also, the sheer number made it quite slow.

@nnnik
You can start collecting urls and descriptions if you like. A list of functions with urls that link to MSDN pages that contain the struct definitions would be very useful. Do you have some plans to retrieve urls systematically or do something like repeated Google 'I'm Feeling Lucky' searches? Thanks.
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: list of dll functions with parameter types for DllCall

01 May 2017, 02:32

We will need to check every function that we add there by hand. I would probably add links then - though we could probably use scripts to automate the searching.
Recommends AHK Studio
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: list of dll functions with parameter types for DllCall

01 May 2017, 02:50

If you do multiple Google searches, it thinks you're a bot and you have to do CAPTCHA

I used a search url template:
https://social.msdn.microsoft.com/searc ... SearchText

And used InStr to find urls that started with this:
https://msdn.microsoft.com/en-us/librar ... ws/desktop

Although maybe an HTMLFile object could have worked.

I checked the webpage title and/or contents to make sure the page was the right one.

However maybe there are better ways, including using some MSDN indexes. Maybe even some websites that have done some of this already. When I collected information before it was for less than 600 functions, so it wasn't too bad.

Btw if you download all the MSDN pages the disk space can add up surprisingly.
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: list of dll functions with parameter types for DllCall

01 May 2017, 17:06

@HotKeyIt: Thanks for the link.

[EDIT:] Package This! is a small GUI exe (161 KB) with a treeview of Windows related stuff. It was slow to load, I think it was gathering information from the Internet.

I spent a good amount of time looking through the treeview, but I couldn't find any references to dll functions! If you wouldn't mind, please say a little bit about how you use it. Thanks.

==================================================

I'm having problems getting the parameter types for:
ATLAPI / STDAPI / WINAPI / WINOLEAPI / WSAAPI
I.e. what do you put for ReturnType, is it Int, Ptr or something else?

Sources:
- MSDN
- pinvoke.net (look up a dll function that contains the parameter)
- .h files (manually reading .h files in C:\Program Files (x86)\Windows Kits\8.1) (checking for lines that start with '#define' or 'typedef')
- sizeof in C++ (no matter what .h files I include I can't get these to work with sizeof in C++)
- occasional Stack Overflow pages

Part of the problem is that I'm getting conflicting information.

==================================================

E.g.

[STDAPI is HRESULT]
STDAPI
https://msdn.microsoft.com/library/ms686631(vs.85).aspx
Defines an API function that returns an HRESULT.

[HRESULT is LONG, so STDAPI is LONG (i.e. Int)]
Windows Data Types (Windows)
https://msdn.microsoft.com/en-gb/librar ... s.85).aspx
typedef LONG HRESULT;

[AccessibleObjectFromPoint returns STDAPI]
AccessibleObjectFromPoint function (Windows)
https://msdn.microsoft.com/en-us/librar ... s.85).aspx

STDAPI AccessibleObjectFromPoint(
_In_ POINT ptScreen,
_Out_ IAccessible **ppacc,
_Out_ VARIANT *pvarChild
);

[AccessibleObjectFromPoint returns STDAPI which is IntPtr (i.e. INT_PTR i.e. Ptr)]
pinvoke.net: Search Results
http://www.pinvoke.net/search.aspx?sear ... pace=[All]

IntPtr success = AccessibleObjectFromPoint(pt, out accObj, out varChildID);

==================================================
Last edited by jeeswg on 02 May 2017, 17:13, edited 6 times in total.
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: list of dll functions with parameter types for DllCall

01 May 2017, 17:18

Those are calling conventions, not return types.
https://autohotkey.com/boards/viewtopic ... 567#p32145
Recommends AHK Studio
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: list of dll functions with parameter types for DllCall

20 May 2017, 09:03

You can use sizeof(DWORD) to find out that the size of DWORD is 4.

But you can do something like typeof or decltype to find out that DWORD is UInt? Cheers.

(C++ didn't have typeof, and decltype(DWORD) didn't work.)

[EDIT:] Another idea would be to write then read a value, to determine if the value was signed/unsigned. But I don't have too much experience with C++, so I wouldn't be sure how to do this.
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: list of dll functions with parameter types for DllCall

05 Jul 2017, 10:06

As promised I created:
list of handy dll functions - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=7&t=34017

Btw when gdiplus.dll is used, which file is actually used, for example, it's not in my system32 folder on Windows 7, it seems to be present on the PC, but in some very obscure folders. Cheers.
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: list of dll functions with parameter types for DllCall

26 Aug 2017, 23:04

DLL NAME TO DLL PATH
I searched in Google for 'gdiplus location' and found this link, which suggested to use LoadLibrary and GetModuleFileName.
where is the GDIPLUS.DLL ? - PowerBASIC Peer Support Community
https://forum.powerbasic.com/forum/jose ... diplus-dll

Code: Select all

q:: ;dll get path
hModule := DllCall("LoadLibrary", Str,"gdiplus", Ptr)
VarSetCapacity(vPath, 260*2, 0)
DllCall("GetModuleFileName", Ptr,hModule, Str,vPath, UInt,260*2, UInt)
MsgBox, % vPath

;get path correct case
Loop, Files, % vPath, FD
	vPath2 := A_LoopFileLongPath
MsgBox, % vPath2
return

;e.g. returned:
;C:\windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.23807_none_5c02a265a011fb02\gdiplus.DLL
;e.g. case corrected:
;C:\Windows\winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.23807_none_5c02a265a011fb02\GdiPlus.dll
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
User avatar
SKAN
Posts: 1551
Joined: 29 Sep 2013, 16:58

Re: list of dll functions with parameter types for DllCall

02 Sep 2017, 06:13

jeeswg wrote:DLL NAME TO DLL PATH
I wouldn't say the following is better.. Its just an another way:

Code: Select all

DLL := "gdiplus"

VarSetCapacity(LOADED_IMAGE, A_PtrSize*10+8, 0)
hModule := DllCall( "LoadLibrary", "Str","ImageHlp.dll", "Ptr" )
DllCall("ImageHlp\MapAndLoad", "AStr",DLL, "Int",0, "Ptr",&LOADED_IMAGE, "Int",True, "Int",True)

dllPath := StrGet( NumGet(LOADED_IMAGE),"" )

DllCall( "ImageHlp\UnMapAndLoad", "Ptr",&LOADED_IMAGE )
DllCall( "FreeLibrary", "Ptr",hModule )

MsgBox % dllPath

Edit: Without VarSetCapacity

Code: Select all

DLL := "gdiplus.dll"

hModule := DllCall( "LoadLibrary", "Str","ImageHlp.dll", "Ptr" )
pLOADED_IMAGE := DllCall("ImageHlp\ImageLoad", "AStr",DLL, "Int",0, "UPtr")
dllPath := StrGet( NumGet(pLOADED_IMAGE+0),"" )
DllCall( "ImageHlp\ImageUnload", "Ptr",pLOADED_IMAGE )
DllCall( "FreeLibrary", "Ptr",hModule )

MsgBox % dllPath
My Scripts and Functions: V1  V2

Return to “Tips and Tricks (v1)”

Who is online

Users browsing this forum: No registered users and 13 guests