Wolfgang Thallergcc16 merge934c3885 months agoHistory
433 lines · 11.6 KB · D
RawDownload
/** * Windows API header module * * Translated from MinGW Windows headers * * Authors: Stewart Gordon * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) * Source: $(DRUNTIMESRC core/sys/windows/_shellapi.d) */module core.sys.windows.shellapi;version (Windows): version (ANSI) {} else version = Unicode;pragma(lib, "shell32"); import core.sys.windows.w32api, core.sys.windows.windef, core.sys.windows.basetyps; enum : UINT {    ABE_LEFT,    ABE_TOP,    ABE_RIGHT,    ABE_BOTTOM // = 3} enum : UINT {    ABS_AUTOHIDE    = 1,    ABS_ALWAYSONTOP} enum ULONG    SEE_MASK_CLASSNAME      =        1,    SEE_MASK_CLASSKEY       =        3,    SEE_MASK_IDLIST         =        4,    SEE_MASK_INVOKEIDLIST   =       12,    SEE_MASK_ICON           = 0x000010,    SEE_MASK_HOTKEY         = 0x000020,    SEE_MASK_NOCLOSEPROCESS = 0x000040,    SEE_MASK_CONNECTNETDRV  = 0x000080,    SEE_MASK_FLAG_DDEWAIT   = 0x000100,    SEE_MASK_DOENVSUBST     = 0x000200,    SEE_MASK_FLAG_NO_UI     = 0x000400,    SEE_MASK_NO_CONSOLE     = 0x008000,    SEE_MASK_UNICODE        = 0x010000,    SEE_MASK_ASYNCOK        = 0x100000,    SEE_MASK_HMONITOR       = 0x200000; enum : DWORD {    ABM_NEW,    ABM_REMOVE,    ABM_QUERYPOS,    ABM_SETPOS,    ABM_GETSTATE,    ABM_GETTASKBARPOS,    ABM_ACTIVATE,    ABM_GETAUTOHIDEBAR,    ABM_SETAUTOHIDEBAR,    ABM_WINDOWPOSCHANGED // = 9} static if (_WIN32_WINNT >= 0x501) {enum DWORD ABM_SETSTATE = 10;} enum : UINT {    ABN_STATECHANGE,    ABN_POSCHANGED,    ABN_FULLSCREENAPP,    ABN_WINDOWARRANGE} enum : DWORD {    NIM_ADD,    NIM_MODIFY,    NIM_DELETE} static if (_WIN32_IE >= 0x500) {enum NOTIFYICON_VERSION = 3;     enum : DWORD {        NIM_SETFOCUS = 3,        NIM_SETVERSION    }} enum UINT    NIF_MESSAGE = 1,    NIF_ICON    = 2,    NIF_TIP     = 4,    NIF_STATE   = 8; static if (_WIN32_IE >= 0x500) {enum UINT NIF_INFO = 0x00000010;} static if (_WIN32_IE >= 0x600) {enum UINT NIF_GUID = 0x00000020;} static if (_WIN32_IE >= 0x500) {    enum : DWORD {        NIIF_NONE,        NIIF_INFO,        NIIF_WARNING,        NIIF_ERROR    }} static if (_WIN32_IE >= 0x600) {    enum : DWORD {        NIIF_ICON_MASK = 15,        NIIF_NOSOUND    }} enum DWORD    NIS_HIDDEN     = 1,    NIS_SHAREDICON = 2; enum HINSTANCE    SE_ERR_FNF             = cast(HINSTANCE)  2,    SE_ERR_PNF             = cast(HINSTANCE)  3,    SE_ERR_ACCESSDENIED    = cast(HINSTANCE)  5,    SE_ERR_OOM             = cast(HINSTANCE)  8,    SE_ERR_DLLNOTFOUND     = cast(HINSTANCE) 32,    SE_ERR_SHARE           = cast(HINSTANCE) 26,    SE_ERR_ASSOCINCOMPLETE = cast(HINSTANCE) 27,    SE_ERR_DDETIMEOUT      = cast(HINSTANCE) 28,    SE_ERR_DDEFAIL         = cast(HINSTANCE) 29,    SE_ERR_DDEBUSY         = cast(HINSTANCE) 30,    SE_ERR_NOASSOC         = cast(HINSTANCE) 31; enum : UINT {    FO_MOVE = 1,    FO_COPY,    FO_DELETE,    FO_RENAME} enum FILEOP_FLAGS    FOF_MULTIDESTFILES        = 0x0001,    FOF_CONFIRMMOUSE          = 0x0002,    FOF_SILENT                = 0x0004,    FOF_RENAMEONCOLLISION     = 0x0008,    FOF_NOCONFIRMATION        = 0x0010,    FOF_WANTMAPPINGHANDLE     = 0x0020,    FOF_ALLOWUNDO             = 0x0040,    FOF_FILESONLY             = 0x0080,    FOF_SIMPLEPROGRESS        = 0x0100,    FOF_NOCONFIRMMKDIR        = 0x0200,    FOF_NOERRORUI             = 0x0400,    FOF_NOCOPYSECURITYATTRIBS = 0x0800; // these are not documented on the MSDN siteenum {    PO_DELETE     = 19,    PO_RENAME     = 20,    PO_PORTCHANGE = 32,    PO_REN_PORT   = 52} enum UINT    SHGFI_LARGEICON         = 0x000000,    SHGFI_SMALLICON         = 0x000001,    SHGFI_OPENICON          = 0x000002,    SHGFI_SHELLICONSIZE     = 0x000004,    SHGFI_PIDL              = 0x000008,    SHGFI_USEFILEATTRIBUTES = 0x000010,    SHGFI_ICON              = 0x000100,    SHGFI_DISPLAYNAME       = 0x000200,    SHGFI_TYPENAME          = 0x000400,    SHGFI_ATTRIBUTES        = 0x000800,    SHGFI_ICONLOCATION      = 0x001000,    SHGFI_EXETYPE           = 0x002000,    SHGFI_SYSICONINDEX      = 0x004000,    SHGFI_LINKOVERLAY       = 0x008000,    SHGFI_SELECTED          = 0x010000,    SHGFI_ATTR_SPECIFIED    = 0x020000; static if (_WIN32_IE >= 0x500) {enum uint        SHGFI_ADDOVERLAYS   = 0x000020,        SHGFI_OVERLAYINDEX  = 0x000040;} enum SHERB_NOCONFIRMATION = 1;enum SHERB_NOPROGRESSUI   = 2;enum SHERB_NOSOUND        = 4; alias FILEOP_FLAGS = WORD, PRINTEROP_FLAGS = WORD;alias HDROP = HANDLE; //align(2): // 1 in Win32, default in Win64 struct APPBARDATA {    DWORD  cbSize = APPBARDATA.sizeof;    HWND   hWnd;    UINT   uCallbackMessage;    UINT   uEdge;    RECT   rc;    LPARAM lParam;}alias PAPPBARDATA = APPBARDATA*; struct NOTIFYICONDATAA {    DWORD cbSize = NOTIFYICONDATAA.sizeof;    HWND  hWnd;    UINT  uID;    UINT  uFlags;    UINT  uCallbackMessage;    HICON hIcon;    static if (_WIN32_IE >= 0x500) {        CHAR[128] szTip = 0;        DWORD     dwState;        DWORD     dwStateMask;        CHAR[256] szInfo = 0;        union {            UINT  uTimeout;            UINT  uVersion;        }        CHAR[64]  szInfoTitle = 0;        DWORD     dwInfoFlags;    } else {        CHAR[64]  szTip = 0;    }    static if (_WIN32_IE >= 0x600) {        GUID      guidItem;    }}alias PNOTIFYICONDATAA = NOTIFYICONDATAA*; struct NOTIFYICONDATAW {    DWORD cbSize = NOTIFYICONDATAW.sizeof;    HWND  hWnd;    UINT  uID;    UINT  uFlags;    UINT  uCallbackMessage;    HICON hIcon;    static if (_WIN32_IE >= 0x500) {        WCHAR[128] szTip = 0;        DWORD      dwState;        DWORD      dwStateMask;        WCHAR[256] szInfo = 0;        union {            UINT   uTimeout;            UINT   uVersion;        }        WCHAR[64]  szInfoTitle = 0;        DWORD      dwInfoFlags;    } else {        WCHAR[64]  szTip = 0;    }    static if (_WIN32_IE >= 0x600) {        GUID guidItem;    }}alias PNOTIFYICONDATAW = NOTIFYICONDATAW*; struct SHELLEXECUTEINFOA {    DWORD     cbSize = SHELLEXECUTEINFOA.sizeof;    ULONG     fMask;    HWND      hwnd;    LPCSTR    lpVerb;    LPCSTR    lpFile;    LPCSTR    lpParameters;    LPCSTR    lpDirectory;    int       nShow;    HINSTANCE hInstApp;    PVOID     lpIDList;    LPCSTR    lpClass;    HKEY      hkeyClass;    DWORD     dwHotKey;    HANDLE    hIcon;    HANDLE    hProcess;}alias LPSHELLEXECUTEINFOA = SHELLEXECUTEINFOA*; struct SHELLEXECUTEINFOW {    DWORD     cbSize = SHELLEXECUTEINFOW.sizeof;    ULONG     fMask;    HWND      hwnd;    LPCWSTR   lpVerb;    LPCWSTR   lpFile;    LPCWSTR   lpParameters;    LPCWSTR   lpDirectory;    int       nShow;    HINSTANCE hInstApp;    PVOID     lpIDList;    LPCWSTR   lpClass;    HKEY      hkeyClass;    DWORD     dwHotKey;    HANDLE    hIcon;    HANDLE    hProcess;}alias LPSHELLEXECUTEINFOW = SHELLEXECUTEINFOW*; align(1) struct SHFILEOPSTRUCTA {align(1):    HWND         hwnd;    UINT         wFunc;    version (Win64)        WORD     _padding1;    LPCSTR       pFrom;    LPCSTR       pTo;    FILEOP_FLAGS fFlags;    version (Win64)        DWORD     _padding2;    BOOL         fAnyOperationsAborted;    PVOID        hNameMappings;    LPCSTR       lpszProgressTitle;}alias LPSHFILEOPSTRUCTA = SHFILEOPSTRUCTA*; align(1) struct SHFILEOPSTRUCTW {align(1):    HWND         hwnd;    UINT         wFunc;    version (Win64)        DWORD     _padding1;    LPCWSTR      pFrom;    LPCWSTR      pTo;    FILEOP_FLAGS fFlags;    version (Win64)        WORD     _padding2;    BOOL         fAnyOperationsAborted;    PVOID        hNameMappings;    LPCWSTR      lpszProgressTitle;}alias LPSHFILEOPSTRUCTW = SHFILEOPSTRUCTW*; struct SHFILEINFOA {    HICON          hIcon;    int            iIcon;    DWORD          dwAttributes;    CHAR[MAX_PATH] szDisplayName = 0;    CHAR[80]       szTypeName = 0;} struct SHFILEINFOW {    HICON           hIcon;    int             iIcon;    DWORD           dwAttributes;    WCHAR[MAX_PATH] szDisplayName = 0;    WCHAR[80]       szTypeName = 0;} align(1) struct SHQUERYRBINFO {align(1):    DWORD cbSize = SHQUERYRBINFO.sizeof;    version (Win64)        DWORD _padding;    long  i64Size;    long  i64NumItems;}alias LPSHQUERYRBINFO = SHQUERYRBINFO*; extern (Windows) nothrow @nogc {    LPWSTR* CommandLineToArgvW(LPCWSTR, int*);    void DragAcceptFiles(HWND, BOOL);    void DragFinish(HDROP);    UINT DragQueryFileA(HDROP, UINT, LPSTR, UINT);    UINT DragQueryFileW(HDROP, UINT, LPWSTR, UINT);    BOOL DragQueryPoint(HDROP, LPPOINT);    HICON DuplicateIcon(HINSTANCE, HICON);    HICON ExtractAssociatedIconA(HINSTANCE, LPCSTR, PWORD);    HICON ExtractAssociatedIconW(HINSTANCE, LPCWSTR, PWORD);    HICON ExtractIconA(HINSTANCE, LPCSTR, UINT);    HICON ExtractIconW(HINSTANCE, LPCWSTR, UINT);    UINT ExtractIconExA(LPCSTR, int, HICON*, HICON*, UINT);    UINT ExtractIconExW(LPCWSTR, int, HICON*, HICON*, UINT);    HINSTANCE FindExecutableA(LPCSTR, LPCSTR, LPSTR);    HINSTANCE FindExecutableW(LPCWSTR, LPCWSTR, LPWSTR);    UINT_PTR SHAppBarMessage(DWORD, PAPPBARDATA);    BOOL Shell_NotifyIconA(DWORD, PNOTIFYICONDATAA);    BOOL Shell_NotifyIconW(DWORD, PNOTIFYICONDATAW);    int ShellAboutA(HWND, LPCSTR, LPCSTR, HICON);    int ShellAboutW(HWND, LPCWSTR, LPCWSTR, HICON);    HINSTANCE ShellExecuteA(HWND, LPCSTR, LPCSTR, LPCSTR, LPCSTR, INT);    HINSTANCE ShellExecuteW(HWND, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, INT);    BOOL ShellExecuteExA(LPSHELLEXECUTEINFOA);    BOOL ShellExecuteExW(LPSHELLEXECUTEINFOW);    int SHFileOperationA(LPSHFILEOPSTRUCTA);    int SHFileOperationW(LPSHFILEOPSTRUCTW);    void SHFreeNameMappings(HANDLE);    DWORD_PTR SHGetFileInfoA(LPCSTR, DWORD, SHFILEINFOA*, UINT, UINT);    DWORD_PTR SHGetFileInfoW(LPCWSTR, DWORD, SHFILEINFOW*, UINT, UINT);    HRESULT SHQueryRecycleBinA(LPCSTR,  LPSHQUERYRBINFO);    HRESULT SHQueryRecycleBinW(LPCWSTR,  LPSHQUERYRBINFO);    HRESULT SHEmptyRecycleBinA(HWND, LPCSTR, DWORD);    HRESULT SHEmptyRecycleBinW(HWND, LPCWSTR, DWORD);} version (Unicode) {    alias NOTIFYICONDATA = NOTIFYICONDATAW;    alias SHELLEXECUTEINFO = SHELLEXECUTEINFOW;    alias SHFILEOPSTRUCT = SHFILEOPSTRUCTW;    alias SHFILEINFO = SHFILEINFOW;    alias DragQueryFile = DragQueryFileW;    alias ExtractAssociatedIcon = ExtractAssociatedIconW;    alias ExtractIcon = ExtractIconW;    alias ExtractIconEx = ExtractIconExW;    alias FindExecutable = FindExecutableW;    alias Shell_NotifyIcon = Shell_NotifyIconW;    alias ShellAbout = ShellAboutW;    alias ShellExecute = ShellExecuteW;    alias ShellExecuteEx = ShellExecuteExW;    alias SHFileOperation = SHFileOperationW;    alias SHGetFileInfo = SHGetFileInfoW;    alias SHQueryRecycleBin = SHQueryRecycleBinW;    alias SHEmptyRecycleBin = SHEmptyRecycleBinW;} else {    alias NOTIFYICONDATA = NOTIFYICONDATAA;    alias SHELLEXECUTEINFO = SHELLEXECUTEINFOA;    alias SHFILEOPSTRUCT = SHFILEOPSTRUCTA;    alias SHFILEINFO = SHFILEINFOA;    alias DragQueryFile = DragQueryFileA;    alias ExtractAssociatedIcon = ExtractAssociatedIconA;    alias ExtractIcon = ExtractIconA;    alias ExtractIconEx = ExtractIconExA;    alias FindExecutable = FindExecutableA;    alias Shell_NotifyIcon = Shell_NotifyIconA;    alias ShellAbout = ShellAboutA;    alias ShellExecute = ShellExecuteA;    alias ShellExecuteEx = ShellExecuteExA;    alias SHFileOperation = SHFileOperationA;    alias SHGetFileInfo = SHGetFileInfoA;    alias SHQueryRecycleBin = SHQueryRecycleBinA;    alias SHEmptyRecycleBin = SHEmptyRecycleBinA;} alias PNOTIFYICONDATA = NOTIFYICONDATA*;alias LPSHELLEXECUTEINFO = SHELLEXECUTEINFO*;alias LPSHFILEOPSTRUCT = SHFILEOPSTRUCT*;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t