diff win32/shellapi.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/win32/shellapi.d	Tue Apr 05 20:44:01 2011 +0200
@@ -0,0 +1,412 @@
+/***********************************************************************\
+*                               shellapi.d                              *
+*                                                                       *
+*                       Windows API header module                       *
+*                                                                       *
+*                 Translated from MinGW Windows headers                 *
+*                           by Stewart Gordon                           *
+*                                                                       *
+*                       Placed into public domain                       *
+\***********************************************************************/
+module win32.shellapi;
+pragma(lib, "shell32.lib");
+
+private import win32.w32api, win32.windef, win32.basetyps;
+
+enum : UINT {
+	ABE_LEFT,
+	ABE_TOP,
+	ABE_RIGHT,
+	ABE_BOTTOM // = 3
+}
+
+enum : UINT {
+	ABS_AUTOHIDE    = 1,
+	ABS_ALWAYSONTOP
+}
+
+const 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 (WINVER >= 0x501) {
+	const 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) {
+	const NOTIFYICON_VERSION = 3;
+
+	enum : DWORD {
+		NIM_SETFOCUS = 3,
+		NIM_SETVERSION
+	}
+}
+
+const UINT
+	NIF_MESSAGE = 1,
+	NIF_ICON    = 2,
+	NIF_TIP     = 4,
+	NIF_STATE   = 8;
+
+static if (_WIN32_IE >= 0x500) {
+	const UINT NIF_INFO = 0x00000010;
+}
+
+static if (_WIN32_IE >= 0x600) {
+	const 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
+	}
+}
+
+const DWORD
+	NIS_HIDDEN     = 1,
+	NIS_SHAREDICON = 2;
+
+const HINSTANCE
+	SE_ERR_FNF             = cast(HANDLE)  2,
+	SE_ERR_PNF             = cast(HANDLE)  3,
+	SE_ERR_ACCESSDENIED    = cast(HANDLE)  5,
+	SE_ERR_OOM             = cast(HANDLE)  8,
+	SE_ERR_DLLNOTFOUND     = cast(HANDLE) 32,
+	SE_ERR_SHARE           = cast(HANDLE) 26,
+	SE_ERR_ASSOCINCOMPLETE = cast(HANDLE) 27,
+	SE_ERR_DDETIMEOUT      = cast(HANDLE) 28,
+	SE_ERR_DDEFAIL         = cast(HANDLE) 29,
+	SE_ERR_DDEBUSY         = cast(HANDLE) 30,
+	SE_ERR_NOASSOC         = cast(HANDLE) 31;
+
+enum : UINT {
+	FO_MOVE = 1,
+	FO_COPY,
+	FO_DELETE,
+	FO_RENAME
+}
+
+const 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 site
+enum {
+	PO_DELETE     = 19,
+	PO_RENAME     = 20,
+	PO_PORTCHANGE = 32,
+	PO_REN_PORT   = 52
+}
+
+const 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;
+
+const SHERB_NOCONFIRMATION = 1;
+const SHERB_NOPROGRESSUI   = 2;
+const SHERB_NOSOUND        = 4;
+
+alias WORD FILEOP_FLAGS, PRINTEROP_FLAGS;
+alias HANDLE HDROP;
+
+align(2):
+
+struct APPBARDATA {
+	DWORD  cbSize = APPBARDATA.sizeof;
+	HWND   hWnd;
+	UINT   uCallbackMessage;
+	UINT   uEdge;
+	RECT   rc;
+	LPARAM lParam;
+}
+alias APPBARDATA* PAPPBARDATA;
+
+struct NOTIFYICONDATAA {
+	DWORD cbSize = NOTIFYICONDATAA.sizeof;
+	HWND  hWnd;
+	UINT  uID;
+	UINT  uFlags;
+	UINT  uCallbackMessage;
+	HICON hIcon;
+	static if (_WIN32_IE >= 0x500) {
+		CHAR[128] szTip;
+		DWORD     dwState;
+		DWORD     dwStateMask;
+		CHAR[256] szInfo;
+		union {
+			UINT  uTimeout;
+			UINT  uVersion;
+		}
+		CHAR[64]  szInfoTitle;
+		DWORD     dwInfoFlags;
+	} else {
+		CHAR[64]  szTip;
+	}
+	static if (_WIN32_IE >= 0x600) {
+		GUID      guidItem;
+	}
+}
+alias NOTIFYICONDATAA* PNOTIFYICONDATAA;
+
+struct NOTIFYICONDATAW {
+	DWORD cbSize = NOTIFYICONDATAW.sizeof;
+	HWND  hWnd;
+	UINT  uID;
+	UINT  uFlags;
+	UINT  uCallbackMessage;
+	HICON hIcon;
+	static if (_WIN32_IE >= 0x500) {
+		WCHAR[128] szTip;
+		DWORD      dwState;
+		DWORD      dwStateMask;
+		WCHAR[256] szInfo;
+		union {
+			UINT   uTimeout;
+			UINT   uVersion;
+		}
+		WCHAR[64]  szInfoTitle;
+		DWORD      dwInfoFlags;
+	} else {
+		WCHAR[64]  szTip;
+	}
+	static if (_WIN32_IE >= 0x600) {
+		GUID guidItem;
+	}
+}
+alias NOTIFYICONDATAW* PNOTIFYICONDATAW;
+
+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 SHELLEXECUTEINFOA* LPSHELLEXECUTEINFOA;
+
+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 SHELLEXECUTEINFOW* LPSHELLEXECUTEINFOW;
+
+struct SHFILEOPSTRUCTA {
+	HWND         hwnd;
+	UINT         wFunc;
+	LPCSTR       pFrom;
+	LPCSTR       pTo;
+	FILEOP_FLAGS fFlags;
+	BOOL         fAnyOperationsAborted;
+	PVOID        hNameMappings;
+	LPCSTR       lpszProgressTitle;
+}
+alias SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA;
+
+struct SHFILEOPSTRUCTW {
+	HWND         hwnd;
+	UINT         wFunc;
+	LPCWSTR      pFrom;
+	LPCWSTR      pTo;
+	FILEOP_FLAGS fFlags;
+	BOOL         fAnyOperationsAborted;
+	PVOID        hNameMappings;
+	LPCWSTR      lpszProgressTitle;
+}
+alias SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW;
+
+struct SHFILEINFOA {
+	HICON          hIcon;
+	int            iIcon;
+	DWORD          dwAttributes;
+	CHAR[MAX_PATH] szDisplayName;
+	CHAR[80]       szTypeName;
+}
+
+struct SHFILEINFOW {
+	HICON           hIcon;
+	int             iIcon;
+	DWORD           dwAttributes;
+	WCHAR[MAX_PATH] szDisplayName;
+	WCHAR[80]       szTypeName;
+}
+
+struct SHQUERYRBINFO {
+	DWORD cbSize = SHQUERYRBINFO.sizeof;
+	long  i64Size;
+	long  i64NumItems;
+}
+alias SHQUERYRBINFO* LPSHQUERYRBINFO;
+
+extern (Windows) {
+	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 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 SHGetFileInfoA(LPCSTR, DWORD, SHFILEINFOA*, UINT, UINT);
+	DWORD 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 NOTIFYICONDATAW NOTIFYICONDATA;
+	alias SHELLEXECUTEINFOW SHELLEXECUTEINFO;
+	alias SHFILEOPSTRUCTW SHFILEOPSTRUCT;
+	alias SHFILEINFOW SHFILEINFO;
+	alias DragQueryFileW DragQueryFile;
+	alias ExtractAssociatedIconW ExtractAssociatedIcon;
+	alias ExtractIconW ExtractIcon;
+	alias ExtractIconExW ExtractIconEx;
+	alias FindExecutableW FindExecutable;
+	alias Shell_NotifyIconW Shell_NotifyIcon;
+	alias ShellAboutW ShellAbout;
+	alias ShellExecuteW ShellExecute;
+	alias ShellExecuteExW ShellExecuteEx;
+	alias SHFileOperationW SHFileOperation;
+	alias SHGetFileInfoW SHGetFileInfo;
+	alias SHQueryRecycleBinW SHQueryRecycleBin;
+	alias SHEmptyRecycleBinW SHEmptyRecycleBin;
+} else {
+	alias NOTIFYICONDATAA NOTIFYICONDATA;
+	alias SHELLEXECUTEINFOA SHELLEXECUTEINFO;
+	alias SHFILEOPSTRUCTA SHFILEOPSTRUCT;
+	alias SHFILEINFOA SHFILEINFO;
+	alias DragQueryFileA DragQueryFile;
+	alias ExtractAssociatedIconA ExtractAssociatedIcon;
+	alias ExtractIconA ExtractIcon;
+	alias ExtractIconExA ExtractIconEx;
+	alias FindExecutableA FindExecutable;
+	alias Shell_NotifyIconA Shell_NotifyIcon;
+	alias ShellAboutA ShellAbout;
+	alias ShellExecuteA ShellExecute;
+	alias ShellExecuteExA ShellExecuteEx;
+	alias SHFileOperationA SHFileOperation;
+	alias SHGetFileInfoA SHGetFileInfo;
+	alias SHQueryRecycleBinA SHQueryRecycleBin;
+	alias SHEmptyRecycleBinA SHEmptyRecycleBin;
+}
+
+alias NOTIFYICONDATA* PNOTIFYICONDATA;
+alias SHELLEXECUTEINFO* LPSHELLEXECUTEINFO;
+alias SHFILEOPSTRUCT* LPSHFILEOPSTRUCT;