File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                shlobj.d                               *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.shlobj;
4e2933c620 2015-04-21        kinaba: pragma(lib, "shell32.lib");
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // TODO: fix bitfields
4e2933c620 2015-04-21        kinaba: // TODO: CMIC_VALID_SEE_FLAGS
4e2933c620 2015-04-21        kinaba: // SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: import win32.commctrl, win32.ole2, win32.shlguid, win32.shellapi;
4e2933c620 2015-04-21        kinaba: private import win32.prsht, win32.unknwn, win32.w32api, win32.winbase,
4e2933c620 2015-04-21        kinaba:   win32.winnt, win32.winuser, win32.wtypes, win32.objfwd, win32.objidl;
4e2933c620 2015-04-21        kinaba: private import win32.winnetwk; // for NETRESOURCE
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: clean up Windows version support
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(1):
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const BIF_RETURNONLYFSDIRS = 1;
4e2933c620 2015-04-21        kinaba: const BIF_DONTGOBELOWDOMAIN = 2;
4e2933c620 2015-04-21        kinaba: const BIF_STATUSTEXT = 4;
4e2933c620 2015-04-21        kinaba: const BIF_RETURNFSANCESTORS = 8;
4e2933c620 2015-04-21        kinaba: const BIF_EDITBOX = 16;
4e2933c620 2015-04-21        kinaba: const BIF_VALIDATE = 32;
4e2933c620 2015-04-21        kinaba: const BIF_NEWDIALOGSTYLE = 64;
4e2933c620 2015-04-21        kinaba: const BIF_BROWSEINCLUDEURLS = 128;
4e2933c620 2015-04-21        kinaba: const BIF_USENEWUI =  BIF_EDITBOX | BIF_NEWDIALOGSTYLE;
4e2933c620 2015-04-21        kinaba: const BIF_BROWSEFORCOMPUTER = 0x1000;
4e2933c620 2015-04-21        kinaba: const BIF_BROWSEFORPRINTER = 0x2000;
4e2933c620 2015-04-21        kinaba: const BIF_BROWSEINCLUDEFILES = 0x4000;
4e2933c620 2015-04-21        kinaba: const BIF_SHAREABLE = 0x8000;
4e2933c620 2015-04-21        kinaba: const BFFM_INITIALIZED = 1;
4e2933c620 2015-04-21        kinaba: const BFFM_SELCHANGED = 2;
4e2933c620 2015-04-21        kinaba: const BFFM_VALIDATEFAILEDA = 3;
4e2933c620 2015-04-21        kinaba: const BFFM_VALIDATEFAILEDW = 4;
4e2933c620 2015-04-21        kinaba: const BFFM_SETSTATUSTEXTA = WM_USER + 100;
4e2933c620 2015-04-21        kinaba: const BFFM_ENABLEOK = WM_USER + 101;
4e2933c620 2015-04-21        kinaba: const BFFM_SETSELECTIONA = WM_USER + 102;
4e2933c620 2015-04-21        kinaba: const BFFM_SETSELECTIONW = WM_USER + 103;
4e2933c620 2015-04-21        kinaba: const BFFM_SETSTATUSTEXTW = WM_USER + 104;
4e2933c620 2015-04-21        kinaba: const BFFM_SETOKTEXT = WM_USER + 105;
4e2933c620 2015-04-21        kinaba: const BFFM_SETEXPANDED = WM_USER + 106;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version(Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias BFFM_SETSTATUSTEXTW BFFM_SETSTATUSTEXT;
4e2933c620 2015-04-21        kinaba: 	alias BFFM_SETSELECTIONW BFFM_SETSELECTION;
4e2933c620 2015-04-21        kinaba: 	alias BFFM_VALIDATEFAILEDW BFFM_VALIDATEFAILED;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias BFFM_SETSTATUSTEXTA BFFM_SETSTATUSTEXT;
4e2933c620 2015-04-21        kinaba: 	alias BFFM_SETSELECTIONA BFFM_SETSELECTION;
4e2933c620 2015-04-21        kinaba: 	alias BFFM_VALIDATEFAILEDA BFFM_VALIDATEFAILED;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DVASPECT_SHORTNAME = 2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SHARD_PIDL = 1;
4e2933c620 2015-04-21        kinaba: const SHARD_PATH = 2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SHCNE_RENAMEITEM = 1;
4e2933c620 2015-04-21        kinaba: const SHCNE_CREATE = 2;
4e2933c620 2015-04-21        kinaba: const SHCNE_DELETE = 4;
4e2933c620 2015-04-21        kinaba: const SHCNE_MKDIR = 8;
4e2933c620 2015-04-21        kinaba: const SHCNE_RMDIR = 16;
4e2933c620 2015-04-21        kinaba: const SHCNE_MEDIAINSERTED = 32;
4e2933c620 2015-04-21        kinaba: const SHCNE_MEDIAREMOVED = 64;
4e2933c620 2015-04-21        kinaba: const SHCNE_DRIVEREMOVED = 128;
4e2933c620 2015-04-21        kinaba: const SHCNE_DRIVEADD = 256;
4e2933c620 2015-04-21        kinaba: const SHCNE_NETSHARE = 512;
4e2933c620 2015-04-21        kinaba: const SHCNE_NETUNSHARE = 1024;
4e2933c620 2015-04-21        kinaba: const SHCNE_ATTRIBUTES = 2048;
4e2933c620 2015-04-21        kinaba: const SHCNE_UPDATEDIR = 4096;
4e2933c620 2015-04-21        kinaba: const SHCNE_UPDATEITEM = 8192;
4e2933c620 2015-04-21        kinaba: const SHCNE_SERVERDISCONNECT = 16384;
4e2933c620 2015-04-21        kinaba: const SHCNE_UPDATEIMAGE = 32768;
4e2933c620 2015-04-21        kinaba: const SHCNE_DRIVEADDGUI = 65536;
4e2933c620 2015-04-21        kinaba: const SHCNE_RENAMEFOLDER = 0x20000;
4e2933c620 2015-04-21        kinaba: const SHCNE_FREESPACE = 0x40000;
4e2933c620 2015-04-21        kinaba: const SHCNE_ASSOCCHANGED = 0x8000000;
4e2933c620 2015-04-21        kinaba: const SHCNE_DISKEVENTS = 0x2381F;
4e2933c620 2015-04-21        kinaba: const SHCNE_GLOBALEVENTS = 0xC0581E0;
4e2933c620 2015-04-21        kinaba: const SHCNE_ALLEVENTS = 0x7FFFFFFF;
4e2933c620 2015-04-21        kinaba: const SHCNE_INTERRUPT = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SHCNF_IDLIST = 0;
4e2933c620 2015-04-21        kinaba: const SHCNF_PATHA = 1;
4e2933c620 2015-04-21        kinaba: const SHCNF_PRINTERA = 2;
4e2933c620 2015-04-21        kinaba: const SHCNF_DWORD = 3;
4e2933c620 2015-04-21        kinaba: const SHCNF_PATHW = 5;
4e2933c620 2015-04-21        kinaba: const SHCNF_PRINTERW = 6;
4e2933c620 2015-04-21        kinaba: const SHCNF_TYPE = 0xFF;
4e2933c620 2015-04-21        kinaba: const SHCNF_FLUSH = 0x1000;
4e2933c620 2015-04-21        kinaba: const SHCNF_FLUSHNOWAIT = 0x2000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version(Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias SHCNF_PATHW SHCNF_PATH;
4e2933c620 2015-04-21        kinaba: 	alias SHCNF_PRINTERW SHCNF_PRINTER;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias SHCNF_PATHA SHCNF_PATH;
4e2933c620 2015-04-21        kinaba: 	alias SHCNF_PRINTERA SHCNF_PRINTER;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SFGAO_CANCOPY = DROPEFFECT.DROPEFFECT_COPY;
4e2933c620 2015-04-21        kinaba: const SFGAO_CANMOVE = DROPEFFECT.DROPEFFECT_MOVE;
4e2933c620 2015-04-21        kinaba: const SFGAO_CANLINK = DROPEFFECT.DROPEFFECT_LINK;
4e2933c620 2015-04-21        kinaba: const SFGAO_CANRENAME = 0x00000010L;
4e2933c620 2015-04-21        kinaba: const SFGAO_CANDELETE = 0x00000020L;
4e2933c620 2015-04-21        kinaba: const SFGAO_HASPROPSHEET = 0x00000040L;
4e2933c620 2015-04-21        kinaba: const SFGAO_DROPTARGET = 0x00000100L;
4e2933c620 2015-04-21        kinaba: const SFGAO_CAPABILITYMASK = 0x00000177L;
4e2933c620 2015-04-21        kinaba: const SFGAO_GHOSTED = 0x00008000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_LINK = 0x00010000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_SHARE = 0x00020000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_READONLY = 0x00040000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_HIDDEN = 0x00080000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_DISPLAYATTRMASK = 0x000F0000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_FILESYSANCESTOR = 0x10000000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_FOLDER = 0x20000000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_FILESYSTEM = 0x40000000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_HASSUBFOLDER = 0x80000000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_CONTENTSMASK = 0x80000000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_VALIDATE = 0x01000000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_REMOVABLE = 0x02000000L;
4e2933c620 2015-04-21        kinaba: const SFGAO_COMPRESSED = 0x04000000L;
4e2933c620 2015-04-21        kinaba: const STRRET_WSTR = 0;
4e2933c620 2015-04-21        kinaba: const STRRET_OFFSET = 1;
4e2933c620 2015-04-21        kinaba: const STRRET_CSTR = 2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	SHGDFIL_FINDDATA = 1,
4e2933c620 2015-04-21        kinaba: 	SHGDFIL_NETRESOURCE,
4e2933c620 2015-04-21        kinaba: 	SHGDFIL_DESCRIPTIONID
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	SHDID_ROOT_REGITEM = 1,
4e2933c620 2015-04-21        kinaba: 	SHDID_FS_FILE,
4e2933c620 2015-04-21        kinaba: 	SHDID_FS_DIRECTORY,
4e2933c620 2015-04-21        kinaba: 	SHDID_FS_OTHER,
4e2933c620 2015-04-21        kinaba: 	SHDID_COMPUTER_DRIVE35,
4e2933c620 2015-04-21        kinaba: 	SHDID_COMPUTER_DRIVE525,
4e2933c620 2015-04-21        kinaba: 	SHDID_COMPUTER_REMOVABLE,
4e2933c620 2015-04-21        kinaba: 	SHDID_COMPUTER_FIXED,
4e2933c620 2015-04-21        kinaba: 	SHDID_COMPUTER_NETDRIVE,
4e2933c620 2015-04-21        kinaba: 	SHDID_COMPUTER_CDROM,
4e2933c620 2015-04-21        kinaba: 	SHDID_COMPUTER_RAMDISK,
4e2933c620 2015-04-21        kinaba: 	SHDID_COMPUTER_OTHER,
4e2933c620 2015-04-21        kinaba: 	SHDID_NET_DOMAIN,
4e2933c620 2015-04-21        kinaba: 	SHDID_NET_SERVER,
4e2933c620 2015-04-21        kinaba: 	SHDID_NET_SHARE,
4e2933c620 2015-04-21        kinaba: 	SHDID_NET_RESTOFNET,
4e2933c620 2015-04-21        kinaba: 	SHDID_NET_OTHER
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const TCHAR[] REGSTR_PATH_EXPLORER = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer";
4e2933c620 2015-04-21        kinaba: const TCHAR[] REGSTR_PATH_SPECIAL_FOLDERS=REGSTR_PATH_EXPLORER ~ "\\Shell Folders";
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	CSIDL_DESKTOP = 0,
4e2933c620 2015-04-21        kinaba: 	CSIDL_INTERNET,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PROGRAMS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_CONTROLS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PRINTERS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PERSONAL,
4e2933c620 2015-04-21        kinaba: 	CSIDL_FAVORITES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_STARTUP,
4e2933c620 2015-04-21        kinaba: 	CSIDL_RECENT,
4e2933c620 2015-04-21        kinaba: 	CSIDL_SENDTO,
4e2933c620 2015-04-21        kinaba: 	CSIDL_BITBUCKET,
4e2933c620 2015-04-21        kinaba: 	CSIDL_STARTMENU, // = 11
4e2933c620 2015-04-21        kinaba: 	CSIDL_DESKTOPDIRECTORY = 16,
4e2933c620 2015-04-21        kinaba: 	CSIDL_DRIVES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_NETWORK,
4e2933c620 2015-04-21        kinaba: 	CSIDL_NETHOOD,
4e2933c620 2015-04-21        kinaba: 	CSIDL_FONTS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_TEMPLATES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_STARTMENU,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_PROGRAMS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_STARTUP,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_DESKTOPDIRECTORY,
4e2933c620 2015-04-21        kinaba: 	CSIDL_APPDATA,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PRINTHOOD,
4e2933c620 2015-04-21        kinaba: 	CSIDL_LOCAL_APPDATA,
4e2933c620 2015-04-21        kinaba: 	CSIDL_ALTSTARTUP,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_ALTSTARTUP,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_FAVORITES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_INTERNET_CACHE,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COOKIES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_HISTORY,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_APPDATA,
4e2933c620 2015-04-21        kinaba: 	CSIDL_WINDOWS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_SYSTEM,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PROGRAM_FILES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_MYPICTURES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PROFILE,
4e2933c620 2015-04-21        kinaba: 	CSIDL_SYSTEMX86,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PROGRAM_FILESX86,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PROGRAM_FILES_COMMON,
4e2933c620 2015-04-21        kinaba: 	CSIDL_PROGRAM_FILES_COMMONX86,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_TEMPLATES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_DOCUMENTS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_ADMINTOOLS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_ADMINTOOLS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_CONNECTIONS, // =49
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_MUSIC = 53,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_PICTURES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_VIDEO,
4e2933c620 2015-04-21        kinaba: 	CSIDL_RESOURCES,
4e2933c620 2015-04-21        kinaba: 	CSIDL_RESOURCES_LOCALIZED,
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMMON_OEM_LINKS,
4e2933c620 2015-04-21        kinaba: 	CSIDL_CDBURN_AREA, // = 59
4e2933c620 2015-04-21        kinaba: 	CSIDL_COMPUTERSNEARME = 61,
4e2933c620 2015-04-21        kinaba: 	CSIDL_FLAG_DONT_VERIFY = 0x4000,
4e2933c620 2015-04-21        kinaba: 	CSIDL_FLAG_CREATE = 0x8000,
4e2933c620 2015-04-21        kinaba: 	CSIDL_FLAG_MASK = 0xFF00
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const TCHAR[]
4e2933c620 2015-04-21        kinaba: 	CFSTR_SHELLIDLIST       = "Shell IDList Array",
4e2933c620 2015-04-21        kinaba: 	CFSTR_SHELLIDLISTOFFSET = "Shell Object Offsets",
4e2933c620 2015-04-21        kinaba: 	CFSTR_NETRESOURCES      = "Net Resource",
4e2933c620 2015-04-21        kinaba: 	CFSTR_FILECONTENTS      = "FileContents",
4e2933c620 2015-04-21        kinaba: 	CFSTR_FILENAMEA         = "FileName",
4e2933c620 2015-04-21        kinaba: 	CFSTR_FILENAMEMAPA      = "FileNameMap",
4e2933c620 2015-04-21        kinaba: 	CFSTR_FILEDESCRIPTORA   = "FileGroupDescriptor",
4e2933c620 2015-04-21        kinaba: 	CFSTR_INETURLA          = "UniformResourceLocator",
4e2933c620 2015-04-21        kinaba: 	CFSTR_SHELLURL          = CFSTR_INETURLA,
4e2933c620 2015-04-21        kinaba: 	CFSTR_FILENAMEW         = "FileNameW",
4e2933c620 2015-04-21        kinaba: 	CFSTR_FILENAMEMAPW      = "FileNameMapW",
4e2933c620 2015-04-21        kinaba: 	CFSTR_FILEDESCRIPTORW   = "FileGroupDescriptorW",
4e2933c620 2015-04-21        kinaba: 	CFSTR_INETURLW          = "UniformResourceLocatorW";
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version(Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias CFSTR_FILENAMEW CFSTR_FILENAME;
4e2933c620 2015-04-21        kinaba: 	alias CFSTR_FILENAMEMAPW CFSTR_FILENAMEMAP;
4e2933c620 2015-04-21        kinaba: 	alias CFSTR_FILEDESCRIPTORW CFSTR_FILEDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 	alias CFSTR_INETURLW CFSTR_INETURL;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias CFSTR_FILENAMEA CFSTR_FILENAME;
4e2933c620 2015-04-21        kinaba: 	alias CFSTR_FILENAMEMAPA CFSTR_FILENAMEMAP;
4e2933c620 2015-04-21        kinaba: 	alias CFSTR_FILEDESCRIPTORA CFSTR_FILEDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 	alias CFSTR_INETURLA CFSTR_INETURL;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: const TCHAR[]
4e2933c620 2015-04-21        kinaba: 	CFSTR_PRINTERGROUP        = "PrinterFriendlyName",
4e2933c620 2015-04-21        kinaba: 	CFSTR_INDRAGLOOP          = "InShellDragLoop",
4e2933c620 2015-04-21        kinaba: 	CFSTR_PASTESUCCEEDED      = "Paste Succeeded",
4e2933c620 2015-04-21        kinaba: 	CFSTR_PERFORMEDDROPEFFECT = "Performed DropEffect",
4e2933c620 2015-04-21        kinaba: 	CFSTR_PREFERREDDROPEFFECT = "Preferred DropEffect";
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const CMF_NORMAL=0;
4e2933c620 2015-04-21        kinaba: const CMF_DEFAULTONLY=1;
4e2933c620 2015-04-21        kinaba: const CMF_VERBSONLY=2;
4e2933c620 2015-04-21        kinaba: const CMF_EXPLORE=4;
4e2933c620 2015-04-21        kinaba: const CMF_NOVERBS=8;
4e2933c620 2015-04-21        kinaba: const CMF_CANRENAME=16;
4e2933c620 2015-04-21        kinaba: const CMF_NODEFAULT=32;
4e2933c620 2015-04-21        kinaba: const CMF_INCLUDESTATIC=64;
4e2933c620 2015-04-21        kinaba: const CMF_RESERVED=0xffff0000;
4e2933c620 2015-04-21        kinaba: const GCS_VERBA=0;
4e2933c620 2015-04-21        kinaba: const GCS_HELPTEXTA=1;
4e2933c620 2015-04-21        kinaba: const GCS_VALIDATEA=2;
4e2933c620 2015-04-21        kinaba: const GCS_VERBW=4;
4e2933c620 2015-04-21        kinaba: const GCS_HELPTEXTW=5;
4e2933c620 2015-04-21        kinaba: const GCS_VALIDATEW=6;
4e2933c620 2015-04-21        kinaba: const GCS_UNICODE=4;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version(Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias GCS_VERBW GCS_VERB;
4e2933c620 2015-04-21        kinaba: 	alias GCS_HELPTEXTW GCS_HELPTEXT;
4e2933c620 2015-04-21        kinaba: 	alias GCS_VALIDATEW GCS_VALIDATE;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias GCS_VERBA GCS_VERB;
4e2933c620 2015-04-21        kinaba: 	alias GCS_HELPTEXTA GCS_HELPTEXT;
4e2933c620 2015-04-21        kinaba: 	alias GCS_VALIDATEA GCS_VALIDATE;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const TCHAR[]
4e2933c620 2015-04-21        kinaba: 	CMDSTR_NEWFOLDER   = "NewFolder",
4e2933c620 2015-04-21        kinaba: 	CMDSTR_VIEWLIST    = "ViewList",
4e2933c620 2015-04-21        kinaba: 	CMDSTR_VIEWDETAILS = "ViewDetails";
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const CMIC_MASK_HOTKEY     = SEE_MASK_HOTKEY;
4e2933c620 2015-04-21        kinaba: const CMIC_MASK_ICON       = SEE_MASK_ICON;
4e2933c620 2015-04-21        kinaba: const CMIC_MASK_FLAG_NO_UI = SEE_MASK_FLAG_NO_UI;
4e2933c620 2015-04-21        kinaba: const CMIC_MASK_MODAL      = 0x80000000;
4e2933c620 2015-04-21        kinaba: // TODO: This isn't defined anywhere in MinGW.
4e2933c620 2015-04-21        kinaba: //const CMIC_VALID_SEE_FLAGS=SEE_VALID_CMIC_FLAGS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const GIL_OPENICON = 1;
4e2933c620 2015-04-21        kinaba: const GIL_FORSHELL = 2;
4e2933c620 2015-04-21        kinaba: const GIL_SIMULATEDOC = 1;
4e2933c620 2015-04-21        kinaba: const GIL_PERINSTANCE = 2;
4e2933c620 2015-04-21        kinaba: const GIL_PERCLASS = 4;
4e2933c620 2015-04-21        kinaba: const GIL_NOTFILENAME = 8;
4e2933c620 2015-04-21        kinaba: const GIL_DONTCACHE = 16;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const FVSIF_RECT = 1;
4e2933c620 2015-04-21        kinaba: const FVSIF_PINNED = 2;
4e2933c620 2015-04-21        kinaba: const FVSIF_NEWFAILED = 0x8000000;
4e2933c620 2015-04-21        kinaba: const FVSIF_NEWFILE = 0x80000000;
4e2933c620 2015-04-21        kinaba: const FVSIF_CANVIEWIT = 0x40000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const CDBOSC_SETFOCUS = 0;
4e2933c620 2015-04-21        kinaba: const CDBOSC_KILLFOCUS = 1;
4e2933c620 2015-04-21        kinaba: const CDBOSC_SELCHANGE = 2;
4e2933c620 2015-04-21        kinaba: const CDBOSC_RENAME = 3;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const FCIDM_SHVIEWFIRST = 0;
4e2933c620 2015-04-21        kinaba: const FCIDM_SHVIEWLAST = 0x7fff;
4e2933c620 2015-04-21        kinaba: const FCIDM_BROWSERFIRST = 0xa000;
4e2933c620 2015-04-21        kinaba: const FCIDM_BROWSERLAST = 0xbf00;
4e2933c620 2015-04-21        kinaba: const FCIDM_GLOBALFIRST = 0x8000;
4e2933c620 2015-04-21        kinaba: const FCIDM_GLOBALLAST = 0x9fff;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_FILE = FCIDM_GLOBALFIRST;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_EDIT = FCIDM_GLOBALFIRST+0x0040;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_VIEW = FCIDM_GLOBALFIRST+0x0080;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_VIEW_SEP_OPTIONS = FCIDM_GLOBALFIRST+0x0081;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_TOOLS = FCIDM_GLOBALFIRST+0x00c0;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_TOOLS_SEP_GOTO = FCIDM_GLOBALFIRST+0x00c1;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_HELP = FCIDM_GLOBALFIRST+0x0100;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_FIND = FCIDM_GLOBALFIRST+0x0140;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_EXPLORE = FCIDM_GLOBALFIRST+0x0150;
4e2933c620 2015-04-21        kinaba: const FCIDM_MENU_FAVORITES = FCIDM_GLOBALFIRST+0x0170;
4e2933c620 2015-04-21        kinaba: const FCIDM_TOOLBAR = FCIDM_BROWSERFIRST;
4e2933c620 2015-04-21        kinaba: const FCIDM_STATUS = FCIDM_BROWSERFIRST+1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SBSP_DEFBROWSER = 0;
4e2933c620 2015-04-21        kinaba: const SBSP_SAMEBROWSER = 1;
4e2933c620 2015-04-21        kinaba: const SBSP_NEWBROWSER = 2;
4e2933c620 2015-04-21        kinaba: const SBSP_DEFMODE = 0;
4e2933c620 2015-04-21        kinaba: const SBSP_OPENMODE = 16;
4e2933c620 2015-04-21        kinaba: const SBSP_EXPLOREMODE = 32;
4e2933c620 2015-04-21        kinaba: const SBSP_ABSOLUTE = 0;
4e2933c620 2015-04-21        kinaba: const SBSP_RELATIVE = 0x1000;
4e2933c620 2015-04-21        kinaba: const SBSP_PARENT = 0x2000;
4e2933c620 2015-04-21        kinaba: const SBSP_INITIATEDBYHLINKFRAME = 0x80000000;
4e2933c620 2015-04-21        kinaba: const SBSP_REDIRECT = 0x40000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	FCW_STATUS=1,
4e2933c620 2015-04-21        kinaba: 	FCW_TOOLBAR,
4e2933c620 2015-04-21        kinaba: 	FCW_TREE
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const FCT_MERGE=1;
4e2933c620 2015-04-21        kinaba: const FCT_CONFIGABLE=2;
4e2933c620 2015-04-21        kinaba: const FCT_ADDTOEND=4;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SVSI_DESELECT=0;
4e2933c620 2015-04-21        kinaba: const SVSI_SELECT=1;
4e2933c620 2015-04-21        kinaba: const SVSI_EDIT=3;
4e2933c620 2015-04-21        kinaba: const SVSI_DESELECTOTHERS=4;
4e2933c620 2015-04-21        kinaba: const SVSI_ENSUREVISIBLE=8;
4e2933c620 2015-04-21        kinaba: const SVSI_FOCUSED=16;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SVGIO_BACKGROUND=0;
4e2933c620 2015-04-21        kinaba: const SVGIO_SELECTION=1;
4e2933c620 2015-04-21        kinaba: const SVGIO_ALLVIEW=2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const UINT SV2GV_CURRENTVIEW=-1;
4e2933c620 2015-04-21        kinaba: const UINT SV2GV_DEFAULTVIEW=-2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias ULONG SFGAOF;
4e2933c620 2015-04-21        kinaba: alias DWORD SHGDNF;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct CIDA {
4e2933c620 2015-04-21        kinaba: 	UINT    cidl;
4e2933c620 2015-04-21        kinaba: 	UINT[1] aoffset;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias CIDA* LPIDA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SHITEMID {
4e2933c620 2015-04-21        kinaba: 	USHORT  cb;
4e2933c620 2015-04-21        kinaba: 	BYTE[1] abID;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SHITEMID*       LPSHITEMID;
4e2933c620 2015-04-21        kinaba: alias CPtr!(SHITEMID) LPCSHITEMID;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ITEMIDLIST {
4e2933c620 2015-04-21        kinaba: 	SHITEMID mkid;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ITEMIDLIST*       LPITEMIDLIST;
4e2933c620 2015-04-21        kinaba: alias CPtr!(ITEMIDLIST) LPCITEMIDLIST;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias int function(HWND,UINT,LPARAM,LPARAM) BFFCALLBACK;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct BROWSEINFOA {
4e2933c620 2015-04-21        kinaba: 	HWND          hwndOwner;
4e2933c620 2015-04-21        kinaba: 	LPCITEMIDLIST pidlRoot;
4e2933c620 2015-04-21        kinaba: 	LPSTR         pszDisplayName;
4e2933c620 2015-04-21        kinaba: 	LPCSTR        lpszTitle;
4e2933c620 2015-04-21        kinaba: 	UINT          ulFlags;
4e2933c620 2015-04-21        kinaba: 	BFFCALLBACK   lpfn;
4e2933c620 2015-04-21        kinaba: 	LPARAM        lParam;
4e2933c620 2015-04-21        kinaba: 	int           iImage;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias BROWSEINFOA* PBROWSEINFOA, LPBROWSEINFOA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct BROWSEINFOW {
4e2933c620 2015-04-21        kinaba: 	HWND          hwndOwner;
4e2933c620 2015-04-21        kinaba: 	LPCITEMIDLIST pidlRoot;
4e2933c620 2015-04-21        kinaba: 	LPWSTR        pszDisplayName;
4e2933c620 2015-04-21        kinaba: 	LPCWSTR       lpszTitle;
4e2933c620 2015-04-21        kinaba: 	UINT          ulFlags;
4e2933c620 2015-04-21        kinaba: 	BFFCALLBACK   lpfn;
4e2933c620 2015-04-21        kinaba: 	LPARAM        lParam;
4e2933c620 2015-04-21        kinaba: 	int           iImage;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias BROWSEINFOW* PBROWSEINFOW, LPBROWSEINFOW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct CMINVOKECOMMANDINFO {
4e2933c620 2015-04-21        kinaba: 	DWORD cbSize = this.sizeof;
4e2933c620 2015-04-21        kinaba: 	DWORD fMask;
4e2933c620 2015-04-21        kinaba: 	HWND hwnd;
4e2933c620 2015-04-21        kinaba: 	LPCSTR lpVerb;
4e2933c620 2015-04-21        kinaba: 	LPCSTR lpParameters;
4e2933c620 2015-04-21        kinaba: 	LPCSTR lpDirectory;
4e2933c620 2015-04-21        kinaba: 	int nShow;
4e2933c620 2015-04-21        kinaba: 	DWORD dwHotKey;
4e2933c620 2015-04-21        kinaba: 	HANDLE hIcon;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias CMINVOKECOMMANDINFO* LPCMINVOKECOMMANDINFO;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct DROPFILES {
4e2933c620 2015-04-21        kinaba: 	DWORD pFiles;
4e2933c620 2015-04-21        kinaba: 	POINT pt;
4e2933c620 2015-04-21        kinaba: 	BOOL fNC;
4e2933c620 2015-04-21        kinaba: 	BOOL fWide;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias DROPFILES* LPDROPFILES;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SHGNO {
4e2933c620 2015-04-21        kinaba: 	SHGDN_NORMAL             = 0,
4e2933c620 2015-04-21        kinaba: 	SHGDN_INFOLDER,
4e2933c620 2015-04-21        kinaba: 	SHGDN_FOREDITING         = 0x1000,
4e2933c620 2015-04-21        kinaba: 	SHGDN_INCLUDE_NONFILESYS = 0x2000,
4e2933c620 2015-04-21        kinaba: 	SHGDN_FORADDRESSBAR      = 0x4000,
4e2933c620 2015-04-21        kinaba: 	SHGDN_FORPARSING         = 0x8000
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SHCONTF {
4e2933c620 2015-04-21        kinaba: 	SHCONTF_FOLDERS            = 32,
4e2933c620 2015-04-21        kinaba: 	SHCONTF_NONFOLDERS         = 64,
4e2933c620 2015-04-21        kinaba: 	SHCONTF_INCLUDEHIDDEN      = 128,
4e2933c620 2015-04-21        kinaba: 	SHCONTF_INIT_ON_FIRST_NEXT = 256,
4e2933c620 2015-04-21        kinaba: 	SHCONTF_NETPRINTERSRCH     = 512,
4e2933c620 2015-04-21        kinaba: 	SHCONTF_SHAREABLE          = 1024,
4e2933c620 2015-04-21        kinaba: 	SHCONTF_STORAGE            = 2048
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct STRRET {
4e2933c620 2015-04-21        kinaba: 	UINT uType;
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		LPWSTR pOleStr;
4e2933c620 2015-04-21        kinaba: 		UINT uOffset;
4e2933c620 2015-04-21        kinaba: 		char cStr[MAX_PATH];
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias STRRET* LPSTRRET;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum FD_FLAGS {
4e2933c620 2015-04-21        kinaba: 	FD_CLSID      = 1,
4e2933c620 2015-04-21        kinaba: 	FD_SIZEPOINT  = 2,
4e2933c620 2015-04-21        kinaba: 	FD_ATTRIBUTES = 4,
4e2933c620 2015-04-21        kinaba: 	FD_CREATETIME = 8,
4e2933c620 2015-04-21        kinaba: 	FD_ACCESSTIME = 16,
4e2933c620 2015-04-21        kinaba: 	FD_WRITESTIME = 32,
4e2933c620 2015-04-21        kinaba: 	FD_FILESIZE   = 64,
4e2933c620 2015-04-21        kinaba: 	FD_LINKUI     = 0x8000
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FILEDESCRIPTORA {
4e2933c620 2015-04-21        kinaba: 	DWORD dwFlags;
4e2933c620 2015-04-21        kinaba: 	CLSID clsid;
4e2933c620 2015-04-21        kinaba: 	SIZEL sizel;
4e2933c620 2015-04-21        kinaba: 	POINTL pointl;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileAttributes;
4e2933c620 2015-04-21        kinaba: 	FILETIME ftCreationTime;
4e2933c620 2015-04-21        kinaba: 	FILETIME ftLastAccessTime;
4e2933c620 2015-04-21        kinaba: 	FILETIME ftLastWriteTime;
4e2933c620 2015-04-21        kinaba: 	DWORD nFileSizeHigh;
4e2933c620 2015-04-21        kinaba: 	DWORD nFileSizeLow;
4e2933c620 2015-04-21        kinaba: 	CHAR cFileName[MAX_PATH];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FILEDESCRIPTORA* LPFILEDESCRIPTORA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FILEDESCRIPTORW {
4e2933c620 2015-04-21        kinaba: 	DWORD dwFlags;
4e2933c620 2015-04-21        kinaba: 	CLSID clsid;
4e2933c620 2015-04-21        kinaba: 	SIZEL sizel;
4e2933c620 2015-04-21        kinaba: 	POINTL pointl;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileAttributes;
4e2933c620 2015-04-21        kinaba: 	FILETIME ftCreationTime;
4e2933c620 2015-04-21        kinaba: 	FILETIME ftLastAccessTime;
4e2933c620 2015-04-21        kinaba: 	FILETIME ftLastWriteTime;
4e2933c620 2015-04-21        kinaba: 	DWORD nFileSizeHigh;
4e2933c620 2015-04-21        kinaba: 	DWORD nFileSizeLow;
4e2933c620 2015-04-21        kinaba: 	WCHAR cFileName[MAX_PATH];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FILEDESCRIPTORW* LPFILEDESCRIPTORW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FILEGROUPDESCRIPTORA {
4e2933c620 2015-04-21        kinaba: 	UINT cItems;
4e2933c620 2015-04-21        kinaba: 	FILEDESCRIPTORA fgd[1];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FILEGROUPDESCRIPTORA* LPFILEGROUPDESCRIPTORA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FILEGROUPDESCRIPTORW {
4e2933c620 2015-04-21        kinaba: 	UINT cItems;
4e2933c620 2015-04-21        kinaba: 	FILEDESCRIPTORW fgd[1];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FILEGROUPDESCRIPTORW* LPFILEGROUPDESCRIPTORW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SLR_FLAGS {
4e2933c620 2015-04-21        kinaba: 	SLR_NO_UI      = 1,
4e2933c620 2015-04-21        kinaba: 	SLR_ANY_MATCH  = 2,
4e2933c620 2015-04-21        kinaba: 	SLR_UPDATE     = 4,
4e2933c620 2015-04-21        kinaba: 	SLR_NOUPDATE   = 8,
4e2933c620 2015-04-21        kinaba: 	SLR_NOSEARCH   = 16,
4e2933c620 2015-04-21        kinaba: 	SLR_NOTRACK    = 32,
4e2933c620 2015-04-21        kinaba: 	SLR_NOLINKINFO = 64,
4e2933c620 2015-04-21        kinaba: 	SLR_INVOKE_MSI = 128
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SLGP_FLAGS {
4e2933c620 2015-04-21        kinaba: 	SLGP_SHORTPATH=1,
4e2933c620 2015-04-21        kinaba: 	SLGP_UNCPRIORITY=2,
4e2933c620 2015-04-21        kinaba: 	SLGP_RAWPATH=4
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias PBYTE LPVIEWSETTINGS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum FOLDERFLAGS {
4e2933c620 2015-04-21        kinaba: 	FWF_AUTOARRANGE         = 1,
4e2933c620 2015-04-21        kinaba: 	FWF_ABBREVIATEDNAMES    = 2,
4e2933c620 2015-04-21        kinaba: 	FWF_SNAPTOGRID          = 4,
4e2933c620 2015-04-21        kinaba: 	FWF_OWNERDATA           = 8,
4e2933c620 2015-04-21        kinaba: 	FWF_BESTFITWINDOW       = 16,
4e2933c620 2015-04-21        kinaba: 	FWF_DESKTOP             = 32,
4e2933c620 2015-04-21        kinaba: 	FWF_SINGLESEL           = 64,
4e2933c620 2015-04-21        kinaba: 	FWF_NOSUBFOLDERS        = 128,
4e2933c620 2015-04-21        kinaba: 	FWF_TRANSPARENT         = 256,
4e2933c620 2015-04-21        kinaba: 	FWF_NOCLIENTEDGE        = 512,
4e2933c620 2015-04-21        kinaba: 	FWF_NOSCROLL            = 0x400,
4e2933c620 2015-04-21        kinaba: 	FWF_ALIGNLEFT           = 0x800,
4e2933c620 2015-04-21        kinaba: 	FWF_SINGLECLICKACTIVATE = 0x8000
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum FOLDERVIEWMODE {
4e2933c620 2015-04-21        kinaba: 	FVM_ICON      = 1,
4e2933c620 2015-04-21        kinaba: 	FVM_SMALLICON,
4e2933c620 2015-04-21        kinaba: 	FVM_LIST,
4e2933c620 2015-04-21        kinaba: 	FVM_DETAILS
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FOLDERSETTINGS {
4e2933c620 2015-04-21        kinaba: 	UINT ViewMode;
4e2933c620 2015-04-21        kinaba: 	UINT fFlags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FOLDERSETTINGS*       LPFOLDERSETTINGS;
4e2933c620 2015-04-21        kinaba: alias CPtr!(FOLDERSETTINGS) LPCFOLDERSETTINGS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FVSHOWINFO {
4e2933c620 2015-04-21        kinaba: 	DWORD cbSize = this.sizeof;
4e2933c620 2015-04-21        kinaba: 	HWND hwndOwner;
4e2933c620 2015-04-21        kinaba: 	int iShow;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFlags;
4e2933c620 2015-04-21        kinaba: 	RECT rect;
4e2933c620 2015-04-21        kinaba: 	LPUNKNOWN punkRel;
4e2933c620 2015-04-21        kinaba: 	OLECHAR strNewFile[MAX_PATH];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FVSHOWINFO* LPFVSHOWINFO;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct NRESARRAY {
4e2933c620 2015-04-21        kinaba: 	UINT cItems;
4e2933c620 2015-04-21        kinaba: 	NETRESOURCE nr[1];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias NRESARRAY* LPNRESARRAY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	SBSC_HIDE,
4e2933c620 2015-04-21        kinaba: 	SBSC_SHOW,
4e2933c620 2015-04-21        kinaba: 	SBSC_TOGGLE,
4e2933c620 2015-04-21        kinaba: 	SBSC_QUERY
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	SBCMDID_ENABLESHOWTREE,
4e2933c620 2015-04-21        kinaba: 	SBCMDID_SHOWCONTROL,
4e2933c620 2015-04-21        kinaba: 	SBCMDID_CANCELNAVIGATION,
4e2933c620 2015-04-21        kinaba: 	SBCMDID_MAYSAVECHANGES,
4e2933c620 2015-04-21        kinaba: 	SBCMDID_SETHLINKFRAME,
4e2933c620 2015-04-21        kinaba: 	SBCMDID_ENABLESTOP,
4e2933c620 2015-04-21        kinaba: 	SBCMDID_OPTIONS
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: enum SVUIA_STATUS {
4e2933c620 2015-04-21        kinaba: 	SVUIA_DEACTIVATE,
4e2933c620 2015-04-21        kinaba: 	SVUIA_ACTIVATE_NOFOCUS,
4e2933c620 2015-04-21        kinaba: 	SVUIA_ACTIVATE_FOCUS,
4e2933c620 2015-04-21        kinaba: 	SVUIA_INPLACEACTIVATE
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_IE >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct EXTRASEARCH
4e2933c620 2015-04-21        kinaba: 	 {
4e2933c620 2015-04-21        kinaba: 		GUID guidSearch;
4e2933c620 2015-04-21        kinaba: 		WCHAR wszFriendlyName[80];
4e2933c620 2015-04-21        kinaba: 		WCHAR wszUrl[2084];
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias EXTRASEARCH* LPEXTRASEARCH;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	alias DWORD SHCOLSTATEF;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct SHCOLUMNID {
4e2933c620 2015-04-21        kinaba: 		GUID fmtid;
4e2933c620 2015-04-21        kinaba: 		DWORD pid;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHCOLUMNID*       LPSHCOLUMNID;
4e2933c620 2015-04-21        kinaba: 	alias CPtr!(SHCOLUMNID) LPCSHCOLUMNID;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct SHELLDETAILS {
4e2933c620 2015-04-21        kinaba: 		int fmt;
4e2933c620 2015-04-21        kinaba: 		int cxChar;
4e2933c620 2015-04-21        kinaba: 		STRRET str;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHELLDETAILS* LPSHELLDETAILS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct PERSIST_FOLDER_TARGET_INFO
4e2933c620 2015-04-21        kinaba: 	 {
4e2933c620 2015-04-21        kinaba: 		LPITEMIDLIST pidlTargetFolder;
4e2933c620 2015-04-21        kinaba: 		WCHAR szTargetParsingName[MAX_PATH];
4e2933c620 2015-04-21        kinaba: 		WCHAR szNetworkProvider[MAX_PATH];
4e2933c620 2015-04-21        kinaba: 		DWORD dwAttributes;
4e2933c620 2015-04-21        kinaba: 		int csidl;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	enum SHGFP_TYPE {
4e2933c620 2015-04-21        kinaba: 		SHGFP_TYPE_CURRENT = 0,
4e2933c620 2015-04-21        kinaba: 		SHGFP_TYPE_DEFAULT = 1,
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IEnumIDList: IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT Next(ULONG,LPITEMIDLIST*,ULONG*);
4e2933c620 2015-04-21        kinaba: 	HRESULT Skip(ULONG);
4e2933c620 2015-04-21        kinaba: 	HRESULT Reset();
4e2933c620 2015-04-21        kinaba: 	HRESULT Clone(IEnumIDList**);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IEnumIDList *LPENUMIDLIST;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IObjMgr : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT Append(IUnknown*);
4e2933c620 2015-04-21        kinaba: 	HRESULT Remove(IUnknown*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IContextMenu : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryContextMenu(HMENU,UINT,UINT,UINT,UINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetCommandString(UINT,UINT,PUINT,LPSTR,UINT);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IContextMenu* LPCONTEXTMENU;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IContextMenu2 : IContextMenu
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryContextMenu(HMENU,UINT,UINT,UINT,UINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetCommandString(UINT,UINT,PUINT,LPSTR,UINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT HandleMenuMsg(UINT,WPARAM,LPARAM);
4e2933c620 2015-04-21        kinaba: };
4e2933c620 2015-04-21        kinaba: alias IContextMenu2* LPCONTEXTMENU2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_IE >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	align(8):
4e2933c620 2015-04-21        kinaba: 	struct SHCOLUMNINIT {
4e2933c620 2015-04-21        kinaba: 		ULONG dwFlags;
4e2933c620 2015-04-21        kinaba: 		ULONG dwReserved;
4e2933c620 2015-04-21        kinaba: 		WCHAR wszFolder[MAX_PATH];
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHCOLUMNINIT*       LPSHCOLUMNINIT;
4e2933c620 2015-04-21        kinaba: 	alias CPtr!(SHCOLUMNINIT) LPCSHCOLUMNINIT;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct SHCOLUMNDATA {
4e2933c620 2015-04-21        kinaba: 		ULONG dwFlags;
4e2933c620 2015-04-21        kinaba: 		DWORD dwFileAttributes;
4e2933c620 2015-04-21        kinaba: 		ULONG dwReserved;
4e2933c620 2015-04-21        kinaba: 		WCHAR *pwszExt;
4e2933c620 2015-04-21        kinaba: 		WCHAR wszFile[MAX_PATH];
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHCOLUMNDATA*       LPSHCOLUMNDATA;
4e2933c620 2015-04-21        kinaba: 	alias CPtr!(SHCOLUMNDATA) LPCSHCOLUMNDATA;
4e2933c620 2015-04-21        kinaba: 	align:
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	const MAX_COLUMN_NAME_LEN = 80;
4e2933c620 2015-04-21        kinaba: 	const MAX_COLUMN_DESC_LEN = 128;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	align(1):
4e2933c620 2015-04-21        kinaba: 	struct SHCOLUMNINFO {
4e2933c620 2015-04-21        kinaba: 		SHCOLUMNID scid;
4e2933c620 2015-04-21        kinaba: 		VARTYPE vt;
4e2933c620 2015-04-21        kinaba: 		DWORD fmt;
4e2933c620 2015-04-21        kinaba: 		UINT cChars;
4e2933c620 2015-04-21        kinaba: 		DWORD csFlags;
4e2933c620 2015-04-21        kinaba: 		WCHAR wszTitle[MAX_COLUMN_NAME_LEN];
4e2933c620 2015-04-21        kinaba: 		WCHAR wszDescription[MAX_COLUMN_DESC_LEN];
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHCOLUMNINFO*       LPSHCOLUMNINFO;
4e2933c620 2015-04-21        kinaba: 	alias CPtr!(SHCOLUMNINFO) LPCSHCOLUMNINFO;
4e2933c620 2015-04-21        kinaba: 	align:
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	enum SHCOLSTATE {
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_TYPE_STR      = 0x00000001,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_TYPE_INT      = 0x00000002,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_TYPE_DATE     = 0x00000003,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_TYPEMASK      = 0x0000000f,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_ONBYDEFAULT   = 0x00000010,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_SLOW          = 0x00000020,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_EXTENDED      = 0x00000040,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_SECONDARYUI   = 0x00000080,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_HIDDEN        = 0x00000100,
4e2933c620 2015-04-21        kinaba: 		SHCOLSTATE_PREFER_VARCMP = 0x00000200
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	interface IColumnProvider : IUnknown
4e2933c620 2015-04-21        kinaba: 	 {
4e2933c620 2015-04-21        kinaba: 		HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 		ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 		ULONG Release();
4e2933c620 2015-04-21        kinaba: 		HRESULT Initialize(LPCSHCOLUMNINIT);
4e2933c620 2015-04-21        kinaba: 		HRESULT GetColumnInfo(DWORD,SHCOLUMNINFO*);
4e2933c620 2015-04-21        kinaba: 		HRESULT GetItemData(LPCSHCOLUMNID,LPCSHCOLUMNDATA,VARIANT*);
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }/* _WIN32_IE >= 0x0500 */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IQueryInfo : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetInfoTip(DWORD,WCHAR**);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetInfoFlags(DWORD*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellExtInit : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT Initialize(LPCITEMIDLIST,LPDATAOBJECT,HKEY);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IShellExtInit *LPSHELLEXTINIT;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellPropSheetExt : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT AddPages(LPFNADDPROPSHEETPAGE,LPARAM);
4e2933c620 2015-04-21        kinaba: 	HRESULT ReplacePage(UINT,LPFNADDPROPSHEETPAGE,LPARAM);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IShellPropSheetExt *LPSHELLPROPSHEETEXT;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IExtractIconA : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetIconLocation(UINT,LPSTR,UINT,int*,PUINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT Extract(LPCSTR,UINT,HICON*,HICON*,UINT);
4e2933c620 2015-04-21        kinaba: };
4e2933c620 2015-04-21        kinaba: alias IExtractIconA *LPEXTRACTICONA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IExtractIconW : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetIconLocation(UINT,LPWSTR,UINT,int*,PUINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT Extract(LPCWSTR,UINT,HICON*,HICON*,UINT);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IExtractIconW *LPEXTRACTICONW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version(Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias IExtractIconW IExtractIcon;
4e2933c620 2015-04-21        kinaba: 	alias LPEXTRACTICONW LPEXTRACTICON;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias IExtractIconA IExtractIcon;
4e2933c620 2015-04-21        kinaba: 	alias LPEXTRACTICONA LPEXTRACTICON;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellLinkA : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetPath(LPSTR,int,WIN32_FIND_DATAA*,DWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetIDList(LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetIDList(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDescription(LPSTR,int);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetDescription(LPCSTR);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetWorkingDirectory(LPSTR,int);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetWorkingDirectory(LPCSTR);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetArguments(LPSTR,int);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetArguments(LPCSTR);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetHotkey(PWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetHotkey(WORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetShowCmd(int*);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetShowCmd(int);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetIconLocation(LPSTR,int,int*);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetIconLocation(LPCSTR,int);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetRelativePath(LPCSTR ,DWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT Resolve(HWND,DWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetPath(LPCSTR);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellLinkW : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetPath(LPWSTR,int,WIN32_FIND_DATAW*,DWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetIDList(LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetIDList(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDescription(LPWSTR,int);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetDescription(LPCWSTR);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetWorkingDirectory(LPWSTR,int);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetWorkingDirectory(LPCWSTR);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetArguments(LPWSTR,int);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetArguments(LPCWSTR);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetHotkey(PWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetHotkey(WORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetShowCmd(int*);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetShowCmd(int);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetIconLocation(LPWSTR,int,int*);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetIconLocation(LPCWSTR,int);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetRelativePath(LPCWSTR ,DWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT Resolve(HWND,DWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetPath(LPCWSTR);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellFolder : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG);
4e2933c620 2015-04-21        kinaba: 	HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*);
4e2933c620 2015-04-21        kinaba: 	HRESULT BindToObject(LPCITEMIDLIST,LPBC,REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT BindToStorage(LPCITEMIDLIST,LPBC,REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	HRESULT CreateViewObject(HWND,REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetAttributesOf(UINT,LPCITEMIDLIST*,PULONG);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetUIObjectOf(HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDisplayNameOf(LPCITEMIDLIST,DWORD,LPSTRRET);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IShellFolder *LPSHELLFOLDER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_IE >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IEnumExtraSearch: IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT Next(ULONG,LPEXTRASEARCH*,ULONG*);
4e2933c620 2015-04-21        kinaba: 	HRESULT Skip(ULONG);
4e2933c620 2015-04-21        kinaba: 	HRESULT Reset();
4e2933c620 2015-04-21        kinaba: 	HRESULT Clone(IEnumExtraSearch**);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IEnumExtraSearch *LPENUMEXTRASEARCH;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellFolder2 : IShellFolder
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG);
4e2933c620 2015-04-21        kinaba: 	HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*);
4e2933c620 2015-04-21        kinaba: 	HRESULT BindToObject(LPCITEMIDLIST,LPBC,REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT BindToStorage(LPCITEMIDLIST,LPBC,REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	HRESULT CreateViewObject(HWND,REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetAttributesOf(UINT,LPCITEMIDLIST*,PULONG);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetUIObjectOf(HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDisplayNameOf(LPCITEMIDLIST,DWORD,LPSTRRET);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDefaultSearchGUID(GUID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT EnumSearches(IEnumExtraSearch**);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDefaultColumn(DWORD,ULONG*,ULONG*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDefaultColumnState(UINT,SHCOLSTATEF*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDetailsEx(LPCITEMIDLIST, CPtr!(SHCOLUMNID),VARIANT*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetDetailsOf(LPCITEMIDLIST,UINT,SHELLDETAILS*);
4e2933c620 2015-04-21        kinaba: 	HRESULT MapColumnToSCID(UINT,SHCOLUMNID*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IShellFolder2 *LPSHELLFOLDER2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: } /* _WIN32_IE >= 0x0500 */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface ICopyHook : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	UINT CopyCallback(HWND,UINT,UINT,LPCSTR,DWORD,LPCSTR,DWORD);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ICopyHook *LPCOPYHOOK;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IFileViewerSite : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT SetPinnedWindow(HWND);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetPinnedWindow(HWND*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IFileViewerSite *LPFILEVIEWERSITE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IFileViewer : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT ShowInitialize(LPFILEVIEWERSITE);
4e2933c620 2015-04-21        kinaba: 	HRESULT Show(LPFVSHOWINFO);
4e2933c620 2015-04-21        kinaba: 	HRESULT PrintTo(LPSTR,BOOL);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IFileViewer *LPFILEVIEWER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IFileSystemBindData : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT SetFindData(CPtr!(WIN32_FIND_DATAW));
4e2933c620 2015-04-21        kinaba: 	HRESULT GetFindData(WIN32_FIND_DATAW*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IPersistFolder : IPersist
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetClassID(CLSID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT Initialize(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IPersistFolder *LPPERSISTFOLDER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IPersistFolder2 : IPersistFolder
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetClassID(CLSID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT Initialize(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetCurFolder(LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IPersistFolder2 *LPPERSISTFOLDER2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: }/* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_IE >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IPersistFolder3 : IPersistFolder2
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetClassID(CLSID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT Initialize(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetCurFolder(LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: 	HRESULT InitializeEx(IBindCtx*,LPCITEMIDLIST, CPtr!(PERSIST_FOLDER_TARGET_INFO));
4e2933c620 2015-04-21        kinaba: 	HRESULT GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IPersistFolder3 *LPPERSISTFOLDER3;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: } /* _WIN32_IE >= 0x0500 */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias IShellBrowser* LPSHELLBROWSER;
4e2933c620 2015-04-21        kinaba: alias IShellView* LPSHELLVIEW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellBrowser : IOleWindow
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetWindow(HWND*);
4e2933c620 2015-04-21        kinaba: 	HRESULT ContextSensitiveHelp(BOOL);
4e2933c620 2015-04-21        kinaba: 	HRESULT InsertMenusSB(HMENU,LPOLEMENUGROUPWIDTHS);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetMenuSB(HMENU,HOLEMENU,HWND);
4e2933c620 2015-04-21        kinaba: 	HRESULT RemoveMenusSB(HMENU);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetStatusTextSB(LPCOLESTR);
4e2933c620 2015-04-21        kinaba: 	HRESULT EnableModelessSB(BOOL);
4e2933c620 2015-04-21        kinaba: 	HRESULT TranslateAcceleratorSB(LPMSG,WORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT BrowseObject(LPCITEMIDLIST,UINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetViewStateStream(DWORD,LPSTREAM*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetControlWindow(UINT,HWND*);
4e2933c620 2015-04-21        kinaba: 	HRESULT SendControlMsg(UINT,UINT,WPARAM,LPARAM,LRESULT*);
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryActiveShellView(LPSHELLVIEW*);
4e2933c620 2015-04-21        kinaba: 	HRESULT OnViewWindowActive(LPSHELLVIEW);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetToolbarItems(LPTBBUTTON,UINT,UINT);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellView : IOleWindow
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetWindow(HWND*);
4e2933c620 2015-04-21        kinaba: 	HRESULT ContextSensitiveHelp(BOOL);
4e2933c620 2015-04-21        kinaba: 	HRESULT TranslateAccelerator(LPMSG);
4e2933c620 2015-04-21        kinaba: //[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT
4e2933c620 2015-04-21        kinaba: //[No] 	STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;
4e2933c620 2015-04-21        kinaba: //[Yes] #else
4e2933c620 2015-04-21        kinaba: 	HRESULT EnableModeless(BOOL);
4e2933c620 2015-04-21        kinaba: //[Yes] #endif
4e2933c620 2015-04-21        kinaba: 	HRESULT UIActivate(UINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT Refresh();
4e2933c620 2015-04-21        kinaba: 	HRESULT CreateViewWindow(IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*);
4e2933c620 2015-04-21        kinaba: 	HRESULT DestroyViewWindow();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetCurrentInfo(LPFOLDERSETTINGS);
4e2933c620 2015-04-21        kinaba: 	HRESULT AddPropertySheetPages(DWORD,LPFNADDPROPSHEETPAGE,LPARAM);
4e2933c620 2015-04-21        kinaba: 	HRESULT SaveViewState();
4e2933c620 2015-04-21        kinaba: 	HRESULT SelectItem(LPCITEMIDLIST,UINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetItemObject(UINT,REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface ICommDlgBrowser : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT OnDefaultCommand(IShellView*);
4e2933c620 2015-04-21        kinaba: 	HRESULT OnStateChange(IShellView*,ULONG);
4e2933c620 2015-04-21        kinaba: 	HRESULT IncludeObject(IShellView*,LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ICommDlgBrowser *LPCOMMDLGBROWSER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias GUID SHELLVIEWID;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SV2CVW2_PARAMS {
4e2933c620 2015-04-21        kinaba: 	DWORD cbSize = this.sizeof;
4e2933c620 2015-04-21        kinaba: 	IShellView *psvPrev;
4e2933c620 2015-04-21        kinaba: 	FOLDERSETTINGS  *pfs;
4e2933c620 2015-04-21        kinaba: 	IShellBrowser *psbOwner;
4e2933c620 2015-04-21        kinaba: 	RECT *prcView;
4e2933c620 2015-04-21        kinaba: 	CPtr!(SHELLVIEWID) pvid;
4e2933c620 2015-04-21        kinaba: 	HWND hwndView;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SV2CVW2_PARAMS* LPSV2CVW2_PARAMS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellView2 : IShellView
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetWindow(HWND*);
4e2933c620 2015-04-21        kinaba: 	HRESULT ContextSensitiveHelp(BOOL);
4e2933c620 2015-04-21        kinaba: 	HRESULT TranslateAccelerator(LPMSG);
4e2933c620 2015-04-21        kinaba: //[No] #ifdef _FIX_ENABLEMODELESS_CONFLICT
4e2933c620 2015-04-21        kinaba: //[No] 	STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;
4e2933c620 2015-04-21        kinaba: //[Yes] #else
4e2933c620 2015-04-21        kinaba: 	HRESULT EnableModeless(BOOL);
4e2933c620 2015-04-21        kinaba: //[Yes] #endif
4e2933c620 2015-04-21        kinaba: 	HRESULT UIActivate(UINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT Refresh();
4e2933c620 2015-04-21        kinaba: 	HRESULT CreateViewWindow(IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*);
4e2933c620 2015-04-21        kinaba: 	HRESULT DestroyViewWindow();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetCurrentInfo(LPFOLDERSETTINGS);
4e2933c620 2015-04-21        kinaba: 	HRESULT AddPropertySheetPages(DWORD,LPFNADDPROPSHEETPAGE,LPARAM);
4e2933c620 2015-04-21        kinaba: 	HRESULT SaveViewState();
4e2933c620 2015-04-21        kinaba: 	HRESULT SelectItem(LPCITEMIDLIST,UINT);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetItemObject(UINT,REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetView(SHELLVIEWID*,ULONG);
4e2933c620 2015-04-21        kinaba: 	HRESULT CreateViewWindow2(LPSV2CVW2_PARAMS);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellExecuteHookA : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT Execute(LPSHELLEXECUTEINFOA);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellExecuteHookW : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT Execute(LPSHELLEXECUTEINFOW);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellIcon : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT GetIconOf(LPCITEMIDLIST,UINT,PINT);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IShellIcon* LPSHELLICON;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SHELLFLAGSTATE {
4e2933c620 2015-04-21        kinaba: // TODO
4e2933c620 2015-04-21        kinaba:  short bitflags_; // for D.
4e2933c620 2015-04-21        kinaba:  /*
4e2933c620 2015-04-21        kinaba: 	BOOL fShowAllObjects : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fShowExtensions : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fNoConfirmRecycle : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fShowSysFiles : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fShowCompColor : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fDoubleClickInWebView : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fDesktopHTML : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fWin95Classic : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fDontPrettyPath : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fShowAttribCol : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fMapNetDrvBtn : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fShowInfoTip : 1;
4e2933c620 2015-04-21        kinaba: 	BOOL fHideIcons : 1;
4e2933c620 2015-04-21        kinaba: 	UINT fRestFlags : 3;
4e2933c620 2015-04-21        kinaba: */
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SHELLFLAGSTATE* LPSHELLFLAGSTATE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SSF_SHOWALLOBJECTS = 0x1;
4e2933c620 2015-04-21        kinaba: const SSF_SHOWEXTENSIONS = 0x2;
4e2933c620 2015-04-21        kinaba: const SSF_SHOWCOMPCOLOR = 0x8;
4e2933c620 2015-04-21        kinaba: const SSF_SHOWSYSFILES = 0x20;
4e2933c620 2015-04-21        kinaba: const SSF_DOUBLECLICKINWEBVIEW = 0x80;
4e2933c620 2015-04-21        kinaba: const SSF_SHOWATTRIBCOL = 0x100;
4e2933c620 2015-04-21        kinaba: const SSF_DESKTOPHTML = 0x200;
4e2933c620 2015-04-21        kinaba: const SSF_WIN95CLASSIC = 0x400;
4e2933c620 2015-04-21        kinaba: const SSF_DONTPRETTYPATH = 0x800;
4e2933c620 2015-04-21        kinaba: const SSF_MAPNETDRVBUTTON = 0x1000;
4e2933c620 2015-04-21        kinaba: const SSF_SHOWINFOTIP = 0x2000;
4e2933c620 2015-04-21        kinaba: const SSF_HIDEICONS = 0x4000;
4e2933c620 2015-04-21        kinaba: const SSF_NOCONFIRMRECYCLE = 0x8000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface IShellIconOverlayIdentifier : IUnknown
4e2933c620 2015-04-21        kinaba: {
4e2933c620 2015-04-21        kinaba: 	HRESULT QueryInterface(REFIID,PVOID*);
4e2933c620 2015-04-21        kinaba: 	ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 	ULONG Release();
4e2933c620 2015-04-21        kinaba: 	HRESULT IsMemberOf(LPCWSTR,DWORD);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetOverlayInfo(LPWSTR,int,int*,DWORD*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetPriority(int*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ISIOI_ICONFILE  = 0x00000001;
4e2933c620 2015-04-21        kinaba: const ISIOI_ICONINDEX = 0x00000002;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_WINNT >= 0x0500) {/* W2K */
4e2933c620 2015-04-21        kinaba: 	struct SHELLSTATE {
4e2933c620 2015-04-21        kinaba: 	//TODO:
4e2933c620 2015-04-21        kinaba: 	/*
4e2933c620 2015-04-21        kinaba: 		BOOL fShowAllObjects : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fShowExtensions : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fNoConfirmRecycle : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fShowSysFiles : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fShowCompColor : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fDoubleClickInWebView : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fDesktopHTML : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fWin95Classic : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fDontPrettyPath : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fShowAttribCol : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fMapNetDrvBtn : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fShowInfoTip : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fHideIcons : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fWebView : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fFilter : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fShowSuperHidden : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fNoNetCrawling : 1;
4e2933c620 2015-04-21        kinaba: 		DWORD dwWin95Unused;
4e2933c620 2015-04-21        kinaba: 		UINT uWin95Unused;
4e2933c620 2015-04-21        kinaba: 		LONG lParamSort;
4e2933c620 2015-04-21        kinaba: 		int iSortDirection;
4e2933c620 2015-04-21        kinaba: 		UINT version;
4e2933c620 2015-04-21        kinaba: 		UINT uNotUsed;
4e2933c620 2015-04-21        kinaba: 		BOOL fSepProcess : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fStartPanelOn : 1;
4e2933c620 2015-04-21        kinaba: 		BOOL fShowStartPage : 1;
4e2933c620 2015-04-21        kinaba: 		UINT fSpareFlags : 13;
4e2933c620 2015-04-21        kinaba: */
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHELLSTATE* LPSHELLSTATE;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_IE >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 	align(8):
4e2933c620 2015-04-21        kinaba: 	struct SHDRAGIMAGE {
4e2933c620 2015-04-21        kinaba: 		SIZE sizeDragImage;
4e2933c620 2015-04-21        kinaba: 		POINT ptOffset;
4e2933c620 2015-04-21        kinaba: 		HBITMAP hbmpDragImage;
4e2933c620 2015-04-21        kinaba: 		COLORREF crColorKey;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHDRAGIMAGE* LPSHDRAGIMAGE;
4e2933c620 2015-04-21        kinaba: 	align:
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	interface IDragSourceHelper : IUnknown
4e2933c620 2015-04-21        kinaba: 	 {
4e2933c620 2015-04-21        kinaba: 		HRESULT QueryInterface(REFIID riid, void **ppv);
4e2933c620 2015-04-21        kinaba: 		ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 		ULONG Release();
4e2933c620 2015-04-21        kinaba: 		HRESULT InitializeFromBitmap(LPSHDRAGIMAGE pshdi, IDataObject* pDataObject);
4e2933c620 2015-04-21        kinaba: 		HRESULT InitializeFromWindow(HWND hwnd, POINT* ppt, IDataObject* pDataObject);
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	interface IDropTargetHelper : IUnknown
4e2933c620 2015-04-21        kinaba: 	 {
4e2933c620 2015-04-21        kinaba: 		HRESULT QueryInterface(REFIID riid, void** ppv);
4e2933c620 2015-04-21        kinaba: 		ULONG AddRef();
4e2933c620 2015-04-21        kinaba: 		ULONG Release();
4e2933c620 2015-04-21        kinaba: 		HRESULT DragEnter(HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect);
4e2933c620 2015-04-21        kinaba: 		HRESULT DragLeave();
4e2933c620 2015-04-21        kinaba: 		HRESULT DragOver(POINT* ppt, DWORD dwEffect);
4e2933c620 2015-04-21        kinaba: 		HRESULT Drop(IDataObject* pDataObject, POINT* ppt, DWORD dwEffect);
4e2933c620 2015-04-21        kinaba: 		HRESULT Show(BOOL fShow);
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows):
4e2933c620 2015-04-21        kinaba: void SHAddToRecentDocs(UINT,PCVOID);
4e2933c620 2015-04-21        kinaba: LPITEMIDLIST SHBrowseForFolderA(PBROWSEINFOA);
4e2933c620 2015-04-21        kinaba: LPITEMIDLIST SHBrowseForFolderW(PBROWSEINFOW);
4e2933c620 2015-04-21        kinaba: void SHChangeNotify(LONG,UINT,PCVOID,PCVOID);
4e2933c620 2015-04-21        kinaba: HRESULT SHGetDataFromIDListA(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int);
4e2933c620 2015-04-21        kinaba: HRESULT SHGetDataFromIDListW(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int);
4e2933c620 2015-04-21        kinaba: HRESULT SHGetDesktopFolder(LPSHELLFOLDER*);
4e2933c620 2015-04-21        kinaba: HRESULT SHGetInstanceExplorer(IUnknown **);
4e2933c620 2015-04-21        kinaba: HRESULT SHGetMalloc(LPMALLOC*);
4e2933c620 2015-04-21        kinaba: BOOL SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR);
4e2933c620 2015-04-21        kinaba: BOOL SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR);
4e2933c620 2015-04-21        kinaba: HRESULT SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: HRESULT SHLoadInProc(REFCLSID);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_IE >= 0x0400) {
4e2933c620 2015-04-21        kinaba: 	BOOL SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL);
4e2933c620 2015-04-21        kinaba: 	BOOL SHGetSpecialFolderPathW(HWND,LPWSTR,int,BOOL);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */
4e2933c620 2015-04-21        kinaba: HRESULT SHGetFolderPathA(HWND,int,HANDLE,DWORD,LPSTR);
4e2933c620 2015-04-21        kinaba: HRESULT SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if ((_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500)) {/* ME or W2K */
4e2933c620 2015-04-21        kinaba: 	HRESULT SHGetFolderLocation(HWND,int,HANDLE,DWORD,LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_WINNT >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 	INT SHCreateDirectoryExA(HWND,LPCSTR,LPSECURITY_ATTRIBUTES);
4e2933c620 2015-04-21        kinaba: 	INT SHCreateDirectoryExW(HWND,LPCWSTR,LPSECURITY_ATTRIBUTES);
4e2933c620 2015-04-21        kinaba: 	HRESULT SHBindToParent(LPCITEMIDLIST,REFIID,VOID**,LPCITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_WINNT >= 0x0501) {/* XP */
4e2933c620 2015-04-21        kinaba: 	HRESULT SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR);
4e2933c620 2015-04-21        kinaba: 	HRESULT SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: void SHGetSettings(LPSHELLFLAGSTATE,DWORD);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_WINNT >= 0x0500) {/* W2K */
4e2933c620 2015-04-21        kinaba: 	void SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: static if (_WIN32_WINNT >= 0x0500) {/* W2K */
4e2933c620 2015-04-21        kinaba: 	BOOL ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	BOOL ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL);
4e2933c620 2015-04-21        kinaba: 	BOOL ILRemoveLastID(LPITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	HRESULT ILLoadFromStream(IStream*, LPITEMIDLIST*);
4e2933c620 2015-04-21        kinaba: 	HRESULT ILSaveToStream(IStream*, LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	LPITEMIDLIST ILAppendID(LPITEMIDLIST, LPCSHITEMID, BOOL);
4e2933c620 2015-04-21        kinaba: 	LPITEMIDLIST ILClone(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	LPITEMIDLIST ILCloneFirst(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	LPITEMIDLIST ILCombine(LPCITEMIDLIST, LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	LPITEMIDLIST ILFindChild(LPCITEMIDLIST, LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	LPITEMIDLIST ILFindLastID(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	LPITEMIDLIST ILGetNext(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	UINT ILGetSize(LPCITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 	void ILFree(LPITEMIDLIST);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	HRESULT SHCoCreateInstance(LPCWSTR,REFCLSID,IUnknown*,REFIID,void**);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version(Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias IShellExecuteHookW IShellExecuteHook;
4e2933c620 2015-04-21        kinaba: 	alias IShellLinkW IShellLink;
4e2933c620 2015-04-21        kinaba: 	alias BROWSEINFOW BROWSEINFO;
4e2933c620 2015-04-21        kinaba: 	alias SHBrowseForFolderW SHBrowseForFolder;
4e2933c620 2015-04-21        kinaba: 	alias SHGetDataFromIDListW SHGetDataFromIDList;
4e2933c620 2015-04-21        kinaba: 	alias SHGetPathFromIDListW SHGetPathFromIDList;
4e2933c620 2015-04-21        kinaba: 	static if (_WIN32_IE >= 0x0400) {
4e2933c620 2015-04-21        kinaba: 		alias SHGetSpecialFolderPathW SHGetSpecialFolderPath;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHGetFolderPathW SHGetFolderPath;
4e2933c620 2015-04-21        kinaba: 	static if (_WIN32_WINNT >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 		alias SHCreateDirectoryExW SHCreateDirectoryEx;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	static if (_WIN32_WINNT >= 0x0501) {
4e2933c620 2015-04-21        kinaba: 		alias SHGetFolderPathAndSubDirW SHGetFolderPathAndSubDir;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias FILEDESCRIPTORW FILEDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 	alias LPFILEDESCRIPTORW LPFILEDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 	alias FILEGROUPDESCRIPTORW FILEGROUPDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 	alias LPFILEGROUPDESCRIPTORW LPFILEGROUPDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias IShellExecuteHookA IShellExecuteHook;
4e2933c620 2015-04-21        kinaba: 	alias IShellLinkA IShellLink;
4e2933c620 2015-04-21        kinaba: 	alias BROWSEINFOA BROWSEINFO;
4e2933c620 2015-04-21        kinaba: 	alias SHBrowseForFolderA SHBrowseForFolder;
4e2933c620 2015-04-21        kinaba: 	alias SHGetDataFromIDListA SHGetDataFromIDList;
4e2933c620 2015-04-21        kinaba: 	alias SHGetPathFromIDListA SHGetPathFromIDList;
4e2933c620 2015-04-21        kinaba: 	static if (_WIN32_IE >= 0x0400) {
4e2933c620 2015-04-21        kinaba: 		alias SHGetSpecialFolderPathA SHGetSpecialFolderPath;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SHGetFolderPathA SHGetFolderPath;
4e2933c620 2015-04-21        kinaba: 	static if (_WIN32_WINNT >= 0x0500) {
4e2933c620 2015-04-21        kinaba: 		alias SHCreateDirectoryExA SHCreateDirectoryEx;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	static if (_WIN32_WINNT >= 0x0501) {
4e2933c620 2015-04-21        kinaba: 		alias SHGetFolderPathAndSubDirA SHGetFolderPathAndSubDir;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias FILEDESCRIPTORA FILEDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 	alias LPFILEDESCRIPTORA LPFILEDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 	alias FILEGROUPDESCRIPTORA FILEGROUPDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 	alias LPFILEGROUPDESCRIPTORA LPFILEGROUPDESCRIPTOR;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO;