/* * shlobj.h Shell object interfaces and functions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef _SHLOBJ_H_ #define _SHLOBJ_H_ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* Macro to specify shell folder functions */ #define SHFOLDERAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE /* Macros to specify shell document functions */ #define SHDOCAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE #define SHDOCAPI_( x ) EXTERN_C DECLSPEC_IMPORT x STDAPICALLTYPE /* Forward declarations */ typedef interface IShellFolderViewCB IShellFolderViewCB; #if (NTDDI_VERSION >= 0x05010000) typedef interface IEnumPrivacyRecords IEnumPrivacyRecords; #endif /* Property sheet extension array handle data type */ DECLARE_HANDLE( HPSXA ); /* IExtractIcon::GetIconLocation() flags */ #define GIL_OPENICON 0x0001 #define GIL_FORSHELL 0x0002 #define GIL_ASYNC 0x0020 #define GIL_DEFAULTICON 0x0040 #define GIL_FORSHORTCUT 0x0080 #define GIL_CHECKSHIELD 0x0200 /* IExtractIcon::GetIconLocation() flags */ #define GIL_SIMULATEDOC 0x0001 #define GIL_PERINSTANCE 0x0002 #define GIL_PERCLASS 0x0004 #define GIL_NOTFILENAME 0x0008 #define GIL_DONTCACHE 0x0010 #define GIL_SHIELD 0x0200 #define GIL_FORCENOSHIELD 0x0400 /* IShellIconOverlayIdentifier indices */ #define ISIOI_ICONFILE 0x00000001 #define ISIOI_ICONINDEX 0x00000002 /* IShellIconOverlayManager indices */ #define SIOM_OVERLAYINDEX 1 #define SIOM_ICONINDEX 2 #define SIOM_RESERVED_SHARED 0 #define SIOM_RESERVED_LINK 1 #define SIOM_RESERVED_SLOWFILE 2 #define SIOM_RESERVED_DEFAULT 3 /* IShellIconOverlay indices */ #define OI_DEFAULT 0x00000000 #define OI_ASYNC 0xFFFFEEEE /* SHGetIconOverlayIndex() overlay identifiers */ #define IDO_SHGIOI_SHARE 0x0FFFFFFF #define IDO_SHGIOI_LINK 0x0FFFFFFE #define IDO_SHGIOI_SLOWFILE 0x0FFFFFFD #define IDO_SHGIOI_DEFAULT 0x0FFFFFFC /* NT console properties signatures */ #if (_WIN32_IE >= 0x0400) #define EXP_SZ_LINK_SIG 0xA0000001L #define NT_CONSOLE_PROPS_SIG 0xA0000002L #define NT_FE_CONSOLE_PROPS_SIG 0xA0000004L #define EXP_SPECIAL_FOLDER_SIG 0xA0000005L #endif #if (_WIN32_IE >= 0x0500) #define EXP_DARWIN_ID_SIG 0xA0000006L #endif #if (_WIN32_IE >= 0x0400) #define EXP_SZ_ICON_SIG 0xA0000007L #endif #if (_WIN32_IE >= 0x0400) && (NTDDI_VERSION >= 0x06000000) #define EXP_PROPERTYSTORAGE_SIG 0xA0000009L #endif /* IFileViewer show information flags */ #if (NTDDI_VERSION < 0x05000000) #define FVSIF_RECT 0x00000001L #define FVSIF_PINNED 0x00000002L #define FVSIF_NEWFAILED 0x08000000L #define FVSIF_CANVIEWIT 0x40000000L #define FVSIF_NEWFILE 0x80000000L #endif /* Shell menu item and control identifiers */ #define FCIDM_SHVIEWFIRST 0x0000 #define FCIDM_SHVIEWLAST 0x7FFF #define FCIDM_BROWSERFIRST 0xA000 #define FCIDM_BROWSERLAST 0xBF00 #define FCIDM_GLOBALFIRST 0x8000 #define FCIDM_GLOBALLAST 0x9FFF #define FCIDM_MENU_FILE (FCIDM_GLOBALFIRST + 0x0000) #define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST + 0x0040) #define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST + 0x0080) #define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST + 0x0081) #define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST + 0x00C0) #define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST + 0x00C1) #define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST + 0x0100) #define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST + 0x0140) #define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST + 0x0150) #define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST + 0x0170) #define FCIDM_TOOLBAR (FCIDM_BROWSERFIRST + 0) #define FCIDM_STATUS (FCIDM_BROWSERFIRST + 1) /* Shell cursor identifiers */ #if (_WIN32_IE >= 0x0400) #define IDC_OFFLINE_HAND 103 #endif #if (_WIN32_IE >= 0x0700) #define IDC_PANTOOL_HAND_OPEN 104 #define IDC_PANTOOL_HAND_CLOSED 105 #endif /* Shell status bar panes */ #define PANE_NONE 0xFFFFFFFF #define PANE_ZONE 1 #define PANE_OFFLINE 2 #define PANE_PRINTER 3 #define PANE_SSL 4 #define PANE_NAVIGATION 5 #define PANE_PROGRESS 6 #if (_WIN32_IE >= 0x0600) #define PANE_PRIVACY 7 #endif /* SHOpenFolderAndSelectItem() flags */ #if (NTDDI_VERSION >= 0x06000000) #define OFASI_EDIT 0x00000001L #define OFASI_OPENDESKTOP 0x00000002L #endif /* Special folders registry path */ #define REGSTR_PATH_SPECIAL_FOLDERS \ REGSTR_PATH_EXPLORER TEXT( "\\Shell Folders" ) /* Special folder identifiers */ #define CSIDL_DESKTOP 0x0000 #define CSIDL_INTERNET 0x0001 #define CSIDL_PROGRAMS 0x0002 #define CSIDL_CONTROLS 0x0003 #define CSIDL_PRINTERS 0x0004 #define CSIDL_PERSONAL 0x0005 #define CSIDL_FAVORITES 0x0006 #define CSIDL_STARTUP 0x0007 #define CSIDL_RECENT 0x0008 #define CSIDL_SENDTO 0x0009 #define CSIDL_BITBUCKET 0x000A #define CSIDL_STARTMENU 0x000B #define CSIDL_MYDOCUMENTS CSIDL_PERSONAL #define CSIDL_MYMUSIC 0x000D #define CSIDL_MYVIDEO 0x000E #define CSIDL_DESKTOPDIRECTORY 0x0010 #define CSIDL_DRIVES 0x0011 #define CSIDL_NETWORK 0x0012 #define CSIDL_NETHOOD 0x0013 #define CSIDL_FONTS 0x0014 #define CSIDL_TEMPLATES 0x0015 #define CSIDL_COMMON_STARTMENU 0x0016 #define CSIDL_COMMON_PROGRAMS 0x0017 #define CSIDL_COMMON_STARTUP 0x0018 #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019 #define CSIDL_APPDATA 0x001A #define CSIDL_PRINTHOOD 0x001B #ifndef CSIDL_LOCAL_APPDATA #define CSIDL_LOCAL_APPDATA 0x001C #endif #define CSIDL_ALTSTARTUP 0x001D #define CSIDL_COMMON_ALTSTARTUP 0x001E #define CSIDL_COMMON_FAVORITES 0x001F #ifndef _SHFOLDER_H_ #define CSIDL_INTERNET_CACHE 0x0020 #define CSIDL_COOKIES 0x0021 #define CSIDL_HISTORY 0x0022 #define CSIDL_COMMON_APPDATA 0x0023 #define CSIDL_WINDOWS 0x0024 #define CSIDL_SYSTEM 0x0025 #define CSIDL_PROGRAM_FILES 0x0026 #define CSIDL_MYPICTURES 0x0027 #endif #define CSIDL_PROFILE 0x0028 #define CSIDL_SYSTEMX86 0x0029 #define CSIDL_PROGRAMFILESX86 0x002A #ifndef _SHFOLDER_H_ #define CSIDL_PROGRAM_FILES_COMMON 0x002B #endif #define CSIDL_PROGRAM_FILES_COMMONX86 0x002C #define CSIDL_COMMON_TEMPLATES 0x002D #ifndef _SHFOLDER_H_ #define CSIDL_COMMON_DOCUMENTS 0x002E #define CSIDL_COMMON_ADMINTOOLS 0x002F #define CSIDL_ADMINTOOLS 0x0030 #endif #define CSIDL_CONNECTIONS 0x0031 #define CSIDL_COMMON_MUSIC 0x0035 #define CSIDL_COMMON_PICTURES 0x0036 #define CSIDL_COMMON_VIDEO 0x0037 #define CSIDL_RESOURCES 0x0038 #ifndef _SHFOLDER_H_ #define CSIDL_RESOURCES_LOCALIZED 0x0039 #endif #define CSIDL_COMMON_OEM_LINKS 0x003A #define CSIDL_CDBURN_AREA 0x003B #define CSIDL_COMPUTERSNEARME 0x003D #if (NTDDI_VERSION >= 0x05010000) #define CSIDL_FLAG_PER_USER_INIT 0x0800 #define CSIDL_FLAG_NO_ALIAS 0x1000 #endif #define CSIDL_FLAG_DONT_UNEXPAND 0x2000 #define CSIDL_FLAG_DONT_VERIFY 0x4000 #ifndef _SHFOLDER_H_ #define CSIDL_FLAG_CREATE 0x8000 #endif #define CSIDL_FLAG_MASK 0xFF00 /* Folder custom settings */ #if (NTDDI_VERSION >= 0x05000000) #define FCS_READ 0x00000001L #define FCS_FORCEWRITE 0x00000002L #define FCS_WRITE (FCS_READ | FCS_FORCEWRITE) #endif /* Folder custom settings flags */ #if (NTDDI_VERSION >= 0x05000000) #define FCS_FLAG_DRAGDROP 2 #endif /* Folder custom settings masks */ #if (NTDDI_VERSION >= 0x05000000) #define FCSM_VIEWID 0x00000001L #define FCSM_WEBVIEWTEMPLATE 0x00000002L #define FCSM_INFOTIP 0x00000004L #define FCSM_CLSID 0x00000008L #define FCSM_ICONFILE 0x00000010L #define FCSM_LOGO 0x00000020L #define FCSM_FLAGS 0x00000040L #endif /* SHBrowseForFolder() flags */ #define BIF_RETURNONLYFSDIRS 0x00000001 #define BIF_DONTGOBELOWDOMAIN 0x00000002 #define BIF_STATUSTEXT 0x00000004 #define BIF_RETURNFSANCESTORS 0x00000008 #define BIF_EDITBOX 0x00000010 #define BIF_VALIDATE 0x00000020 #define BIF_NEWDIALOGSTYLE 0x00000040 #define BIF_USENEWUI (BIF_NEWDIALOGSTYLE | BIF_EDITBOX) #define BIF_BROWSEINCLUDEURLS 0x00000080 #define BIF_UAHINT 0x00000100 #define BIF_NONEWFOLDERBUTTON 0x00000200 #define BIF_NOTRANSLATETARGETS 0x00000400 #define BIF_BROWSEFORCOMPUTER 0x00001000 #define BIF_BROWSEFORPRINTER 0x00002000 #define BIF_BROWSEINCLUDEFILES 0x00004000 #define BIF_SHAREABLE 0x00008000 #define BIF_BROWSEFILEJUNCTIONS 0x00010000 /* SHBrowseForFolder() callback messages */ #define BFFM_INITIALIZED 1 #define BFFM_SELCHANGED 2 #define BFFM_VALIDATEFAILEDA 3 #define BFFM_VALIDATEFAILEDW 4 #define BFFM_IUNKNOWN 5 #ifdef UNICODE #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDW #else #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDA #endif /* SHBrowseForFolder() messages */ #define BFFM_SETSTATUSTEXTA (WM_USER + 100) #define BFFM_ENABLEOK (WM_USER + 101) #define BFFM_SETSELECTIONA (WM_USER + 102) #define BFFM_SETSELECTIONW (WM_USER + 103) #define BFFM_SETSTATUSTEXTW (WM_USER + 104) #define BFFM_SETOKTEXT (WM_USER + 105) #define BFFM_SETEXPANDED (WM_USER + 106) #ifdef UNICODE #define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTW #define BFFM_SETSELECTION BFFM_SETSELECTIONW #else #define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTA #define BFFM_SETSELECTION BFFM_SETSELECTIONA #endif /* IShellFolder bind strings */ #define STR_PARSE_WITH_PROPERTIES L"ParseWithProperties" #define STR_PARSE_PARTIAL_IDLIST L"ParseOriginalItem" /* IProgressDialog::StartProgressDialog() flags */ #define PROGDLG_NORMAL 0x00000000L #define PROGDLG_MODAL 0x00000001L #define PROGDLG_AUTOTIME 0x00000002L #define PROGDLG_NOTIME 0x00000004L #define PROGDLG_NOMINIMIZE 0x00000008L #define PROGDLG_NOPROGRESSBAR 0x00000010L #if (_WIN32_IE >= 0x0700) #define PROGDLG_MARQUEEPROGRESS 0x00000020L #define PROGDLG_NOCANCEL 0x00000040L #endif /* Timer actions */ #define PDTIMER_RESET 0x00000001L #if (_WIN32_IE >= 0x0700) #define PDTIMER_PAUSE 0x00000002L #define PDTIMER_RESUME 0x00000003L #endif /* IDockingWindowFrame::RemoveToolbar() flags */ #define DWFRF_NORMAL 0x0000 #define DWFRF_DELETECONFIGDATA 0x0001 /* IDockingWindowFrame::AddToolbar() flags */ #define DWFAF_HIDDEN 0x0001 #define DWFAF_GROUP1 0x0002 #define DWFAF_GROUP2 0x0004 #define DWFAF_AUTOHIDE 0x0010 /* Shell image storage capability flags */ #if (NTDDI_VERSION >= 0x05000000) && (NTDDI_VERSION < 0x06000000) #define SHIMSTCAPFLAG_LOCKABLE 0x0001 #define SHIMSTCAPFLAG_PURGEABLE 0x0002 #endif /* Shell folder band masks */ #if (_WIN32_IE >= 0x0400) #define ISFB_MASK_STATE 0x00000001 #define ISFB_MASK_BKCOLOR 0x00000002 #define ISFB_MASK_VIEWMODE 0x00000004 #define ISFB_MASK_SHELLFOLDER 0x00000008 #define ISFB_MASK_IDLIST 0x00000010 #define ISFB_MASK_COLORS 0x00000020 #endif /* Shell folder band states */ #if (_WIN32_IE >= 0x0400) #define ISFB_STATE_DEFAULT 0x00000000 #define ISFB_STATE_DEBOSSED 0x00000001 #define ISFB_STATE_ALLOWRENAME 0x00000002 #define ISFB_STATE_NOSHOWTEXT 0x00000004 #define ISFB_STATE_CHANNELBAR 0x00000010 #define ISFB_STATE_QLINKSMODE 0x00000020 #define ISFB_STATE_FULLOPEN 0x00000040 #define ISFB_STATE_NONAMESORT 0x00000080 #define ISFB_STATE_BTNMINSIZE 0x00000100 #endif /* Shell folder band view modes */ #if (_WIN32_IE >= 0x0400) #define ISFBVIEWMODE_SMALLICONS 0x0001 #define ISFBVIEWMODE_LARGEICONS 0x0002 #if (_WIN32_IE < 0x0700) #define ISFBVIEWMODE_LOGOS 0x0003 #endif #endif /* IDeskBarClient::GetSize() flags */ #if (_WIN32_IE >= 0x0400) #define DBC_GS_IDEAL 0L #define DBC_GS_SIZEDOWN 1L #endif /* Desk bar client states */ #if (_WIN32_IE >= 0x0400) #define DBC_HIDE 0L #define DBC_SHOW 1L #define DBC_SHOWOBSCURE 2L #endif /* Component position special value */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define COMPONENT_TOP 0x3FFFFFFF #endif #endif /* Component types */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define COMP_TYPE_HTMLDOC 0 #define COMP_TYPE_PICTURE 1 #define COMP_TYPE_WEBSITE 2 #define COMP_TYPE_CONTROL 3 #define COMP_TYPE_CFHTML 4 #define COMP_TYPE_MAX 4 #endif #endif /* Component item states */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define IS_NORMAL 0x00000001L #define IS_FULLSCREEN 0x00000002L #define IS_SPLIT 0x00000004L #define IS_VALIDSIZESTATEBITS \ (IS_NORMAL | IS_SPLIT | IS_FULLSCREEN) #define IS_VALIDSTATEBITS \ (IS_NORMAL | IS_SPLIT | IS_FULLSCREEN | 0xC0000000L) #endif #endif /* IActiveDesktop::ApplyChanges() flags */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define AD_APPLY_SAVE 0x00000001L #define AD_APPLY_HTMLGEN 0x00000002L #define AD_APPLY_REFRESH 0x00000004L #define AD_APPLY_ALL \ (AD_APPLY_SAVE | AD_APPLY_HTMLGEN | AD_APPLY_REFRESH) #define AD_APPLY_FORCE 0x00000008L #define AD_APPLY_BUFFERED_REFRESH 0x00000010L #define AD_APPLY_DYNAMICREFRESH 0x00000020L #endif #endif /* IActiveDesktop::GetWallpaper() flags */ #if (NTDDI_VERSION >= 0x06000000) && (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define AD_GETWP_BMP 0x00000000L #define AD_GETWP_IMAGE 0x00000001L #define AD_GETWP_LAST_APPLIED 0x00000002L #endif #endif /* Wallpaper styles */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define WPSTYLE_CENTER 0 #define WPSTYLE_TILE 1 #define WPSTYLE_STRETCH 2 #if (NTDDI_VERSION >= 0x06010000) #define WPSTYLE_KEEPASPECT 3 #define WPSTYLE_CROPTOFIT 4 #define WPSTYLE_MAX 5 #else #define WPSTYLE_MAX 3 #endif #endif #endif /* IActiveDesktop::ModifyComponent() flags */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define COMP_ELEM_TYPE 0x00000001L #define COMP_ELEM_CHECKED 0x00000002L #define COMP_ELEM_DIRTY 0x00000004L #define COMP_ELEM_NOSCROLL 0x00000008L #define COMP_ELEM_POS_LEFT 0x00000010L #define COMP_ELEM_POS_TOP 0x00000020L #define COMP_ELEM_SIZE_WIDTH 0x00000040L #define COMP_ELEM_SIZE_HEIGHT 0x00000080L #define COMP_ELEM_POS_ZINDEX 0x00000100L #define COMP_ELEM_SOURCE 0x00000200L #define COMP_ELEM_FRIENDLYNAME 0x00000400L #define COMP_ELEM_SUBSCRIBEDURL 0x00000800L #define COMP_ELEM_ORIGINAL_CSI 0x00001000L #define COMP_ELEM_RESTORED_CSI 0x00002000L #define COMP_ELEM_CURITEMSTATE 0x00004000L #define COMP_ELEM_ALL \ (COMP_ELEM_TYPE | COMP_ELEM_CHECKED | COMP_ELEM_DIRTY | \ COMP_ELEM_NOSCROLL | COMP_ELEM_POS_LEFT | COMP_ELEM_SIZE_WIDTH | \ COMP_ELEM_SIZE_HEIGHT | COMP_ELEM_POS_ZINDEX | COMP_ELEM_SOURCE | \ COMP_ELEM_FRIENDLYNAME | COMP_ELEM_POS_TOP | COMP_ELEM_SUBSCRIBEDURL | \ COMP_ELEM_ORIGINAL_CSI | COMP_ELEM_RESTORED_CSI | COMP_ELEM_CURITEMSTATE) #endif #endif /* IActiveDesktop::AddUrl() flags */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define ADDURL_SILENT 0x00000001L #endif #endif /* Component default positions */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define COMPONENT_DEFAULT_LEFT 0xFFFF #define COMPONENT_DEFAULT_TOP 0xFFFF #endif #endif /* IActiveDesktopP::SetSafeMode() flags */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define SSM_CLEAR 0x00000000L #define SSM_SET 0x00000001L #define SSM_REFRESH 0x00000002L #define SSM_UPDATE 0x00000004L #endif #endif /* IActiveDesktopP::SetScheme() flags */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define SCHEME_DISPLAY 0x00000001L #define SCHEME_EDIT 0x00000002L #define SCHEME_LOCAL 0x00000004L #define SCHEME_GLOBAL 0x00000008L #define SCHEME_REFRESH 0x00000010L #define SCHEME_UPDATE 0x00000020L #define SCHEME_CREATE 0x00000080L #endif #endif /* IADesktopP2::GetADObjectFlags() flags */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #define GADOF_DIRTY 0x00000001L #endif #endif /* Shell column information maximum string lengths */ #if (_WIN32_IE >= 0x0500) #define MAX_COLUMN_NAME_LEN 80 #define MAX_COLUMN_DESC_LEN 128 #endif /* Shell column data flags */ #if (_WIN32_IE >= 0x0500) #define SHCDF_UPDATEITEM 0x00000001L #endif /* Shell clipboard format strings */ #define CFSTR_SHELLIDLIST TEXT( "Shell IDList Array" ) #define CFSTR_SHELLIDLISTOFFSET TEXT( "Shell Object Offsets" ) #define CFSTR_NETRESOURCES TEXT( "Net Resource" ) #define CFSTR_FILEDESCRIPTORA TEXT( "FileGroupDescriptor" ) #define CFSTR_FILEDESCRIPTORW TEXT( "FileGroupDescriptorW" ) #define CFSTR_FILECONTENTS TEXT( "FileContents" ) #define CFSTR_FILENAMEA TEXT( "FileName" ) #define CFSTR_FILENAMEW TEXT( "FileNameW" ) #define CFSTR_PRINTERGROUP TEXT( "PrinterFriendlyName" ) #define CFSTR_FILENAMEMAPA TEXT( "FileNameMap" ) #define CFSTR_FILENAMEMAPW TEXT( "FileNameMapW" ) #define CFSTR_SHELLURL TEXT( "UniformResourceLocator" ) #define CFSTR_INETURLA CFSTR_SHELLURL #define CFSTR_INETURLW TEXT( "UniformResourceLocatorW" ) #define CFSTR_PREFERREDDROPEFFECT TEXT( "Preferred DropEffect" ) #define CFSTR_PERFORMEDDROPEFFECT TEXT( "Performed DropEffect" ) #define CFSTR_PASTESUCCEEDED TEXT( "Paste Succeeded" ) #define CFSTR_INDRAGLOOP TEXT( "InShellDragLoop" ) #define CFSTR_MOUNTEDVOLUME TEXT( "MountedVolume" ) #define CFSTR_PERSISTEDDATAOBJECT TEXT( "PersistedDataObject" ) #define CFSTR_TARGETCLSID TEXT( "TargetCLSID" ) #define CFSTR_LOGICALPERFORMEDDROPEFFECT TEXT( "Logical Performed DropEffect" ) #define CFSTR_AUTOPLAY_SHELLIDLISTS TEXT( "Autoplay Enumerated IDList Array" ) #define CFSTR_UNTRUSTEDDRAGDROP TEXT( "UntrustedDragDrop" ) #define CFSTR_FILE_ATTRIBUTES_ARRAY TEXT( "File Attributes Array" ) #define CFSTR_INVOKECOMMAND_DROPPARAM TEXT( "InvokeCommand DropParam" ) #define CFSTR_SHELLDROPHANDLER TEXT( "DropHandlerCLSID" ) #define CFSTR_DROPDESCRIPTION TEXT( "DropDescription" ) #ifdef UNICODE #define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORW #define CFSTR_FILENAME CFSTR_FILENAMEW #define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPW #define CFSTR_INETURL CFSTR_INETURLW #else #define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORA #define CFSTR_FILENAME CFSTR_FILENAMEA #define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPA #define CFSTR_INETURL CFSTR_INETURLA #endif /* Shell data/view aspects */ #define DVASPECT_SHORTNAME 2 #define DVASPECT_COPY 3 #define DVASPECT_LINK 4 /* Shell change notification return flags */ #define SHCNRF_InterruptLevel 0x0001 #define SHCNRF_ShellLevel 0x0002 #define SHCNRF_RecursiveInterrupt 0x1000 #define SHCNRF_NewDelivery 0x8000 /* Shell change notification events */ #define SHCNE_RENAMEITEM 0x00000001L #define SHCNE_CREATE 0x00000002L #define SHCNE_DELETE 0x00000004L #define SHCNE_MKDIR 0x00000008L #define SHCNE_RMDIR 0x00000010L #define SHCNE_MEDIAINSERTED 0x00000020L #define SHCNE_MEDIAREMOVED 0x00000040L #define SHCNE_DRIVEREMOVED 0x00000080L #define SHCNE_DRIVEADD 0x00000100L #define SHCNE_NETSHARE 0x00000200L #define SHCNE_NETUNSHARE 0x00000400L #define SHCNE_ATTRIBUTES 0x00000800L #define SHCNE_UPDATEDIR 0x00001000L #define SHCNE_UPDATEITEM 0x00002000L #define SHCNE_SERVERDISCONNECT 0x00004000L #define SHCNE_UPDATEIMAGE 0x00008000L #define SHCNE_DRIVEADDGUI 0x00010000L #define SHCNE_RENAMEFOLDER 0x00020000L #define SHCNE_FREESPACE 0x00040000L #if (_WIN32_IE >= 0x0400) #define SHCNE_EXTENDED_EVENT 0x04000000L #endif #define SHCNE_ASSOCCHANGED 0x08000000L #define SHCNE_DISKEVENTS 0x0002381FL #define SHCNE_GLOBALEVENTS 0x0C0581E0L #define SHCNE_ALLEVENTS 0x7FFFFFFFL #define SHCNE_INTERRUPT 0x80000000L /* Shell change notification extended events */ #if (_WIN32_IE >= 0x0400) #define SHCNEE_ORDERCHANGED 2L #define SHCNEE_MSI_CHANGE 4L #define SHCNEE_MSI_UNINSTALL 5L #endif /* Shell change notification flags */ #define SHCNF_IDLIST 0x00000000 #define SHCNF_PATHA 0x00000001 #define SHCNF_PRINTERA 0x00000002 #define SHCNF_DWORD 0x00000003 #define SHCNF_PATHW 0x00000005 #define SHCNF_PRINTERW 0x00000006 #define SHCNF_TYPE 0x000000FF #define SHCNF_FLUSH 0x00001000 #define SHCNF_FLUSHNOWAIT 0x00003000 #define SHCNF_NOTIFYRECURSIVE 0x00010000 #ifdef UNICODE #define SHCNF_PATH SHCNF_PATHW #define SHCNF_PRINTER SHCNF_PRINTERW #else #define SHCNF_PATH SHCNF_PATHA #define SHCNF_PRINTER SHCNF_PRINTERA #endif /* IQueryInfo::GetInfoTip() flags */ #define QITIPF_DEFAULT 0x00000000L #define QITIPF_USENAME 0x00000001L #define QITIPF_LINKNOTARGET 0x00000002L #define QITIPF_LINKUSETARGET 0x00000004L #if (NTDDI_VERSION >= 0x05010000) #define QITIPF_USESLOWTIP 0x00000008L #endif #if (NTDDI_VERSION >= 0x06000000) #define QITIPF_SINGLELINE 0x00000010L #endif /* IQueryInfo::GetInfoFlags() flags */ #define QIF_CACHED 0x00000001L #define QIF_DONTEXPANDFOLDER 0x00000002L /* SHGetDataFromIDList() formats */ #define SHGDFIL_FINDDATA 1 #define SHGDFIL_NETRESOURCE 2 #define SHGDFIL_DESCRIPTIONID 3 /* Shell description identifiers */ #define SHGDID_ROOT_REGITEM 1L #define SHGDID_FS_FILE 2L #define SHGDID_FS_DIRECTORY 3L #define SHGDID_FS_OTHER 4L #define SHGDID_COMPUTER_DRIVE35 5L #define SHGDID_COMPUTER_DRIVE525 6L #define SHGDID_COMPUTER_REMOVABLE 7L #define SHGDID_COMPUTER_FIXED 8L #define SHGDID_COMPUTER_NETDRIVE 9L #define SHGDID_COMPUTER_CDROM 10L #define SHGDID_COMPUTER_RAMDISK 11L #define SHGDID_COMPUTER_OTHER 12L #define SHGDID_NET_DOMAIN 13L #define SHGDID_NET_SERVER 14L #define SHGDID_NET_SHARE 15L #define SHGDID_NET_RESTOFNET 16L #define SHGDID_NET_OTHER 17L #if (NTDDI_VERSION >= 0x05010000) #define SHGDID_COMPUTER_IMAGING 18L #define SHGDID_COMPUTER_AUDIO 19L #define SHGDID_COMPUTER_SHAREDDOCS 20L #endif #if (NTDDI_VERSION >= 0x06000000) #define SHGDID_MOBILE_DEVICE 21L #endif /* Path resolve flags */ #define PRF_VERIFYEXISTS 0x0001 #define PRF_TRYPROGRAMEXTENSIONS (0x0002 | PRF_VERIFYEXISTS) #define PRF_FIRSTDIRDEF 0x0004 #define PRF_DONTFINDLNK 0x0008 #if (NTDDI_VERSION >= 0x05010200) #define PRF_REQUIREABSOLUTE 0x0010 #endif /* Number of points for automatic scrolling */ #define NUM_POINTS 3 /* Cabinet state version number */ #define CABINETSTATE_VERSION 2 /* PathCleanupSpec() return flags */ #define PCS_REPLACEDCHAR 0x00000001 #define PCS_REMOVEDCHAR 0x00000002 #define PCS_TRUNCATED 0x00000004 #define PCS_PATHTOOLING 0x00000008 #define PCS_FATAL 0x80000000 /* Shell_MergeMenus() flags */ #define MM_ADDSEPARATOR 0x00000001L #define MM_SUBMENUSHAVEIDS 0x00000002L #define MM_DONTREMOVESEPS 0x00000004L /* SHObjectProperties() object types */ #define SHOP_PRINTERNAME 0x00000001L #define SHOP_FILEPATH 0x00000002L #define SHOP_VOLUMEGRID 0x00000004L /* SHFormatDrive() format identifier special value */ #define SHFMT_ID_DEFAULT 0xFFFF /* SHFormatDrive() options */ #define SHFMT_OPT_FULL 0x0001 #define SHFMT_OPT_SYSONLY 0x0002 /* SHFormatDrive() return values */ #define SHFMT_ERROR 0xFFFFFFFFL #define SHFMT_CANCEL 0xFFFFFFFEL #define SHFMT_NOFORMAT 0xFFFFFFFDL /* PathProcessCommand() flags */ #if (NTDDI_VERSION < 0x06000000) #define PPCF_ADDQUOTES 0x00000001 #define PPCF_ADDARGUMENTS 0x00000003 #define PPCF_NODIRECTORIES 0x00000010 #define PPCF_FORCEQUALITY 0x00000040 #define PPCF_LONGESTPOSSIBLE 0x00000080 #endif /* SHValidateUNC() flags */ #define VALIDATEUNC_CONNECT 0x0001 #define VALIDATEUNC_NOUI 0x0002 #define VALIDATEUNC_PRINT 0x0004 #if (NTDDI_VERSION >= 0x06000000) #define VALIDATEUNC_PERSIST 0x0008 #define VALIDATEUNC_VALID 0x000F #else #define VALIDATEUNC_VALID 0x0007 #endif /* PIF manager flags */ #define OPENPROPS_NONE 0x0000 #define OPENPROPS_INHIBITPIF 0x8000 #define GETPROPS_NONE 0x0000 #define SETPROPS_NONE 0x0000 #define CLOSEPROPS_NONE 0x0000 #define CLOSEPROPS_DISCARD 0x0001 /* PIF string lengths */ #define PIFNAMESIZE 30 #define PIFSTARTLOCSIZE 63 #define PIFDEFPATHSIZE 64 #define PIFPARAMSSIZE 64 #define PIFSHPROGSIZE 64 #define PIFSHDATASIZE 64 #define PIFDEFFILESIZE 80 #define PIFMAXFILEPATH 260 /* QCM information placement flags */ #define QCMINFO_PLACE_BEFORE 0 #define QCMINFO_PLACE_AFTER 1 /* Toolbar information flags */ #define TBIF_APPEND 0x00000000 #define TBIF_PREPEND 0x00000001 #define TBIF_REPLACE 0x00000002 #define TBIF_DEFAULT 0x00000000 #define TBIF_INTERNETBAR 0x00010000 #define TBIF_STANDARDTOOLBAR 0x00020000 #define TBIF_NOTOOLBAR 0x00030000 /* Shell folder view callback messages */ #define SFVM_MERGEMENU 1 #define SFVM_INVOKECOMMAND 2 #define SFVM_GETHELPTEXT 3 #define SFVM_GETTOOLTIPTEXT 4 #define SFVM_GETBUTTONINFO 5 #define SFVM_GETBUTTONS 6 #define SFVM_INITMENUPOPUP 7 #define SFVM_FSNOTIFY 14 #define SFVM_WINDOWCREATED 15 #define SFVM_GETDETAILSOF 23 #define SFVM_COLUMNCLICK 24 #define SFVM_QUERYFSNOTIFY 25 #define SFVM_DEFITEMCOUNT 26 #define SFVM_DEFVIEWMODE 27 #define SFVM_UNMERGEMENU 28 #define SFVM_UPDATESTATUSBAR 31 #define SFVM_BACKGROUNDENUM 32 #define SFVM_DIDDRAGDROP 36 #define SFVM_SETISFV 39 #define SFVM_THISIDLIST 41 #define SFVM_ADDPROPERTYPAGES 47 #define SFVM_BACKGROUNDENUMDONE 48 #define SFVM_GETNOTIFY 49 #define SFVM_GETSORTDEFAULTS 53 #define SFVM_SIZE 57 #define SFVM_GETZONE 58 #define SFVM_GETPANE 59 #define SFVM_GETHELPTOPIC 63 #define SFVM_GETANIMATION 68 /* IShellFolderView::SetObjectCount() flags */ #define SFVSOC_INVALIDATE_ALL 0x00000001L #define SFVSOC_NOSCROLL LVSICF_NOSCROLL /* IShellFolderView::SelectItems() selection types */ #define SFVS_SELECT_NONE 0x00000000L #define SFVS_SELECT_ALLITEMS 0x00000001L #define SFVS_SELECT_INVERT 0x00000002L /* Default folder menu callback messages */ #define DFM_MERGECONTEXTMENU 1 #define DFM_INVOKECOMMAND 2 #define DFM_GETHELPTEXT 5 #define DFM_WM_MEASUREITEM 6 #define DFM_WM_DRAWITEM 7 #define DFM_WM_INITMENUPOPUP 8 #define DFM_VALIDATECMD 9 #define DFM_MERGECONTEXTMENU_TOP 10 #define DFM_GETHELPTEXTW 11 #define DFM_INVOKECOMMANDEX 12 #define DFM_MAPCOMMANDNAME 13 #define DFM_GETDEFSTATICID 14 #define DFM_GETVERBW 15 #define DFM_GETVERBA 16 #define DFM_MERGECONTEXTMENU_BOTTOM 17 #define DFM_MODIFYQCMFLAGS 18 /* DFM_INVOKECOMMAND commands */ #define DFM_CMD_DELETE ((UINT)-1) #define DFM_CMD_MOVE ((UINT)-2) #define DFM_CMD_COPY ((UINT)-3) #define DFM_CMD_LINK ((UINT)-4) #define DFM_CMD_PROPERTIES ((UINT)-5) #define DFM_CMD_NEWFOLDER ((UINT)-6) #define DFM_CMD_PASTE ((UINT)-7) #define DFM_CMD_VIEWLIST ((UINT)-8) #define DFM_CMD_VIEWDETAILS ((UINT)-9) #define DFM_CMD_PASTELINK ((UINT)-10) #define DFM_CMD_PASTESPECIAL ((UINT)-11) #define DFM_CMD_MODALPROP ((UINT)-12) #define DFM_CMD_RENAME ((UINT)-13) /* Shell folder view messages */ #define SFVM_REARRANGE 0x00000001 #define SFVM_ADDOBJECT 0x00000003 #define SFVM_REMOVEOBJECT 0x00000006 #define SFVM_UPDATEOBJECT 0x00000007 #define SFVM_GETSELECTEDOBJECTS 0x00000009 #define SFVM_SETITEMPOS 0x0000000E #define SFVM_SETCLIPBOARD 0x00000010 #define SFVM_SETPOINTS 0x00000017 /* Internet shortcut property identifiers */ #define PID_IS_URL 2 #define PID_IS_NAME 4 #define PID_IS_WORKINGDIR 5 #define PID_IS_HOTKEY 6 #define PID_IS_SHOWCMD 7 #define PID_IS_ICONINDEX 8 #define PID_IS_ICONFILE 9 #define PID_IS_WHATSNEW 10 #define PID_IS_AUTHOR 11 #define PID_IS_DESCRIPTION 12 #define PID_IS_COMMENT 13 /* Internet site property identifiers */ #define PID_INTSITE_WHATSNEW 2 #define PID_INTSITE_AUTHOR 3 #define PID_INTSITE_VISIT 4 #define PID_INTSITE_LASTMOD 5 #define PID_INTSITE_VISITCOUNT 6 #define PID_INTSITE_DESCRIPTION 7 #define PID_INTSITE_COMMENT 8 #define PID_INTSITE_FLAGS 9 #define PID_INTSITE_CONTENTLEN 10 #define PID_INTSITE_CONTENTCODE 11 #define PID_INTSITE_RECURSE 12 #define PID_INTSITE_WATCH 13 #define PID_INTSITE_SUBSCRIPTION 14 #define PID_INTSITE_URL 15 #define PID_INTSITE_TITLE 16 #define PID_INTSITE_CODEPAGE 18 #define PID_INTSITE_TRACKING 19 #define PID_INTSITE_ICONINDEX 20 #define PID_INTSITE_ICONFILE 21 /* PID_IS_FLAGS flags */ #define PIDISF_RECENTLYCHANGED 0x00000001 #define PIDISF_CACHEDSTICKY 0x00000002 #define PIDISF_CACHEIMAGES 0x00000010 #define PIDISF_FOLLOWALLLINKS 0x00000020 /* PID_INTSITE_WATCH values */ #define PIDISM_GLOBAL 0 #define PIDISM_WATCH 1 #define PIDISM_DONTWATCH 2 /* Shell state version numbers */ #define SHELLSTATEVERSION_IE4 9 #define SHELLSTATEVERSION_WIN2K 10 /* Shell setting flags */ #define SSF_SHOWALLOBJECTS 0x00000001 #define SSF_SHOWEXTENSIONS 0x00000002 #define SSF_HIDDENFILEEXTS 0x00000004 #define SSF_SERVERADMINUI 0x00000004 #define SSF_SHOWCOMPCOLOR 0x00000008 #define SSF_SORTCOLUMNS 0x00000010 #define SSF_SHOWSYSFILES 0x00000020 #define SSF_DOUBLECLICKINWEBVIEW 0x00000080 #define SSF_SHOWATTRIBCOL 0x00000100 #define SSF_DESKTOPHTML 0x00000200 #define SSF_WIN95CLASSIC 0x00000400 #define SSF_DONTPRETTYPATH 0x00000800 #define SSF_MAPNETDRVBUTTON 0x00001000 #define SSF_SHOWINFOTIP 0x00002000 #define SSF_HIDEICONS 0x00004000 #define SSF_NOCONFIRMRECYCLE 0x00008000 #define SSF_FILTER 0x00010000 #define SSF_WEBVIEW 0x00020000 #define SSF_SHOWSUPERHIDDEN 0x00040000 #define SSF_SEPPROCESS 0x00080000 #if (NTDDI_VERSION >= 0x05010000) #define SSF_NONETCRAWLING 0x00100000 #define SSF_STARTPANELON 0x00200000 #define SSF_SHOWSTARTPAGE 0x00400000 #endif #if (NTDDI_VERSION >= 0x06000000) #define SSF_AUTOCHECKSELECT 0x00800000 #define SSF_ICONSONLY 0x01000000 #define SSF_SHOWTYPEOVERLAY 0x02000000 #endif /* SHPathPrepareForWrite() flags */ #define SHPPFW_NONE 0x00000000 #define SHPPFW_DIRCREATE 0x00000001 #define SHPPFW_ASKDIRCREATE 0x00000002 #define SHPPFW_IGNOREFILENAME 0x00000004 #define SHPPFW_NOWRITECHECK 0x00000008 #if (NTDDI_VERSION >= 0x05010000) #define SHPPFW_MEDIACHECKONLY 0x00000010 #endif #define SHPPFW_DEFAULT SHPPFW_DIRCREATE /* Shell link data flags */ #if (_WIN32_IE >= 0x0400) typedef enum { SLDF_DEFAULT = 0x00000000, SLDF_HAS_ID_LIST = 0x00000001, SLDF_HAS_LINK_INFO = 0x00000002, SLDF_HAS_NAME = 0x00000004, SLDF_HAS_RELPATH = 0x00000008, SLDF_HAS_WORKINGDIR = 0x00000010, SLDF_HAS_ARGS = 0x00000020, SLDF_HAS_ICONLOCATION = 0x00000040, SLDF_UNICODE = 0x00000080, SLDF_FORCE_NO_LINKINFO = 0x00000100, SLDF_HAS_EXP_SZ = 0x00000200, SLDF_RUN_IN_SEPARATE = 0x00000400, #if (NTDDI_VERSION < 0x06000000) SLDF_HAS_LOGO3ID = 0x00000800, #endif SLDF_HAS_DARWINID = 0x00001000, SLDF_RUNAS_USER = 0x00002000, SLDF_HAS_EXP_ICON_SZ = 0x00004000, #if (NTDDI_VERSION >= 0x05010000) SLDF_NO_PIDL_ALIAS = 0x00008000, SLDF_FORCE_UNCNAME = 0x00010000, SLDF_RUN_WITH_SHIMLAYER = 0x00020000, #endif #if (NTDDI_VERSION >= 0x06000000) SLDF_FORCE_NO_LINKTRACK = 0x00040000, SLDF_ENABLE_TARGET_METADATA = 0x00080000, SLDF_DISABLE_LINK_PATH_TRACKING = 0x00100000, SLDF_DISABLE_KNOWNFOLDER_RELATIVE_TRACKING = 0x00200000, #endif #if (NTDDI_VERSION >= 0x06010000) SLDF_NO_KF_ALIAS = 0x00400000, SLDF_ALLOW_LINK_TO_LINK = 0x00800000, SLDF_UNALIAS_ON_SAVE = 0x01000000, SLDF_PREFER_ENVIRONMENT_PATH = 0x02000000, SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET = 0x04000000, SLDF_VALID = 0x07FFF7FF, #elif (NTDDI_VERSION >= 0x06000000) SLDF_VALID = 0x003FF7FF, #endif SLDF_RESERVED = 0x80000000 } SHELL_LINK_DATA_FLAGS; #endif /* Data block header */ #if (_WIN32_IE >= 0x0400) typedef struct tagDATABLOCKHEADER { DWORD cbSize; DWORD dwSignature; } DATABLOCK_HEADER; typedef DATABLOCK_HEADER *LPDATABLOCK_HEADER; typedef DATABLOCK_HEADER *LPDBLIST; #endif /* NT console properties */ #if (_WIN32_IE >= 0x0400) typedef struct { #ifdef __cplusplus DATABLOCK_HEADER dbh; #else DATABLOCK_HEADER; #endif WORD wFillAttribute; WORD wPopupFillAttribute; COORD dwScreenBufferSize; COORD dwWindowSize; COORD dwWindowOrigin; DWORD nFont; DWORD nInputBufferSize; COORD dwFontSize; UINT uFontFamily; UINT uFontWeight; WCHAR FaceName[LF_FACESIZE]; UINT uCursorSize; BOOL bFullScreen; BOOL bQuickEdit; BOOL bInsertMode; BOOL bAutoPosition; UINT uHistoryBufferSize; UINT uNumberOfHistoryBuffers; BOOL bHistoryNoDup; COLORREF ColorTable[16]; } NT_CONSOLE_PROPS; typedef NT_CONSOLE_PROPS *LPNT_CONSOLE_PROPS; #endif /* NT FE console properties */ #if (_WIN32_IE >= 0x0400) typedef struct { #ifdef __cplusplus DATABLOCK_HEADER dbh; #else DATABLOCK_HEADER; #endif UINT uCodePage; } NT_FE_CONSOLE_PROPS; typedef NT_FE_CONSOLE_PROPS *PNT_FE_CONSOLE_PROPS; #endif /* Darwin link */ #if (_WIN32_IE >= 0x0500) typedef struct { #ifdef __cplusplus DATABLOCK_HEADER dbh; #else DATABLOCK_HEADER; #endif CHAR szDarwinID[MAX_PATH]; WCHAR wszDarwinID[MAX_PATH]; } EXP_DARWIN_LINK; typedef EXP_DARWIN_LINK *LPEXP_DARWIN_LINK; #endif /* Special folder */ #if (_WIN32_IE >= 0x0400) typedef struct { DWORD cbSize; DWORD dwSignature; DWORD idSpecialFolder; DWORD cbOffset; } EXP_SPECIAL_FOLDER; typedef EXP_SPECIAL_FOLDER *LPEXP_SPECIAL_FOLDER; #endif /* String link */ #if (_WIN32_IE >= 0x0400) typedef struct { DWORD cbSize; DWORD dwSignature; CHAR szTarget[MAX_PATH]; WCHAR wszTarget[MAX_PATH]; } EXP_SZ_LINK; typedef EXP_SZ_LINK *LPEXP_SZ_LINK; #endif /* Property storage */ #if (_WIN32_IE >= 0x0400) && (NTDDI_VERSION >= 0x06000000) typedef struct { DWORD cbSize; DWORD dwSignature; BYTE abPropertyStorage[1]; } EXP_PROPERTYSTORAGE; #endif /* IFileViewer show information */ #if (NTDDI_VERSION < 0x05000000) #include typedef struct { DWORD cbSize; HWND hwndOwner; int iShow; DWORD dwFlags; RECT rect; IUnknown *punkRel; OLECHAR strNewFile[MAX_PATH]; } FVSHOWINFO; typedef FVSHOWINFO *LPFVSHOWINFO; #include #endif /* SHGetPathFromIDListEx() flags */ #if (NTDDI_VERSION >= 0x06000000) enum tagGPFIDL_FLAGS { GPFIDL_DEFAULT = 0x0000, GPFIDL_ALTNAME = 0x0001, GPFIDL_UNCPRINTER = 0x0002 }; typedef int GPFIDL_FLAGS; #endif /* SHGetFolderPath() types */ #if (NTDDI_VERSION >= 0x05000000) typedef enum { SHGFP_TYPE_CURRENT = 0, SHGFP_TYPE_DEFAULT = 1 } SHGFP_TYPE; #endif /* Known folder flags */ #if (NTDDI_VERSION >= 0x06000000) typedef enum { KF_FLAG_DEFAULT = 0x00000000, KF_FLAG_CREATE = 0x00008000, KF_FLAG_DONT_VERIFY = 0x00004000, KF_FLAG_DONT_UNEXPAND = 0x00002000, KF_FLAG_NO_ALIAS = 0x00001000, KF_FLAG_INIT = 0x00000800, KF_FLAG_DEFAULT_PATH = 0x00000400, KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200, KF_FLAG_SIMPLE_IDLIST = 0x00000100, KF_FLAG_ALIAS_ONLY = 0x80000000 } KNOWN_FOLDER_FLAG; #endif /* Folder custom settings */ #if (NTDDI_VERSION >= 0x06000000) #include typedef struct { DWORD dwSize; DWORD dwMask; SHELLVIEWID *pvid; LPWSTR pszWebViewTemplate; DWORD cchWebViewTemplate; LPWSTR pszWebViewTemplateVersion; LPWSTR pszInfoTip; DWORD cchInfoTip; CLSID *pclsid; DWORD dwFlags; LPWSTR pszIconFile; DWORD cchIconFile; int iIconIndex; LPWSTR pszLogo; DWORD cchLogo; } SHFOLDERCUSTOMSETTINGS; typedef SHFOLDERCUSTOMSETTINGS *LPSHFOLDERCUSTOMSETTINGS; #include #endif /* SHBrowseForFolder() callback */ typedef int (CALLBACK *BFFCALLBACK)( HWND, UINT, LPARAM, LPARAM ); /* SHBrowseForFolder() parameters */ #include typedef struct _browseinfoA { HWND hwndOwner; PCIDLIST_ABSOLUTE pidlRoot; LPSTR pszDisplayName; LPCSTR lpszTitle; UINT ulFlags; BFFCALLBACK lpfn; LPARAM lParam; int iImage; } BROWSEINFOA; typedef BROWSEINFOA *PBROWSEINFOA; typedef BROWSEINFOA *LPBROWSEINFOA; typedef struct _browseinfoW { HWND hwndOwner; PCIDLIST_ABSOLUTE pidlRoot; LPWSTR pszDisplayName; LPCWSTR lpszTitle; UINT ulFlags; BFFCALLBACK lpfn; LPARAM lParam; int iImage; } BROWSEINFOW; typedef BROWSEINFOW *PBROWSEINFOW; typedef BROWSEINFOW *LPBROWSEINFOW; #ifdef UNICODE typedef BROWSEINFOW BROWSEINFO; typedef PBROWSEINFOW PBROWSEINFO; typedef LPBROWSEINFOW LPBROWSEINFO; #else typedef BROWSEINFOA BROWSEINFO; typedef PBROWSEINFOA PBROWSEINFO; typedef LPBROWSEINFOA LPBROWSEINFO; #endif #include /* Internet shortcut command identifier */ #if (_WIN32_IE >= 0x0501) enum { ISHCUTCMDID_DOWNLOADICON = 0, #if (_WIN32_IE >= 0x0700) ISHCUTCMDID_INTSHORTCUTCREATE = 1, ISHCUTCMDID_COMMITHISTORY = 2, ISHCUTCMDID_SETUSERAWURL = 3 #else ISHCUTCMDID_INTSHORTCUTCREATE = 1 #endif }; #define CMDID_INTSHORTCUTCREATE ISHCUTCMDID_INTSHORTCUTCREATE #endif /* Autocomplete list options */ typedef enum _tagAUTOCOMPLETELISTOPTIONS { ACLO_NONE = 0, ACLO_CURRENTDIR = 1, ACLO_MYCOMPUTER = 2, ACLO_DESKTOP = 4, ACLO_FAVORITES = 8, #if (_WIN32_IE >= 0x0600) ACLO_FILESYSONLY = 16, #if (_WIN32_IE >= 0x0700) ACLO_FILESYSDIRS = 32, ACLO_VIRTUALNAMESPACE = 64, #else ACLO_FILESYSDIRS = 32 #endif #else ACLO_FILESYSONLY = 16 #endif } AUTOCOMPLETELISTOPTIONS; /* IEnumShellImageStore data */ #if (NTDDI_VERSION >= 0x05000000) && (NTDDI_VERSION < 0x06000000) #include typedef struct _EnumImageStoreDATAtag { WCHAR szPath[MAX_PATH]; FILETIME ftTimeStamp; } ENUMSHELLIMAGESTOREDATA; typedef ENUMSHELLIMAGESTOREDATA *PENUMSHELLIMAGESTOREDATA; #include #endif /* Shell folder band information */ #if (_WIN32_IE >= 0x0400) #include typedef struct { DWORD dwMask; DWORD dwStateMask; DWORD dwState; COLORREF crBkgnd; COLORREF crBtnLt; COLORREF crBtnDk; WORD wViewMode; WORD wAlign; IShellFolder *psf; PIDLIST_ABSOLUTE pidl; } BANDINFOSFB; typedef BANDINFOSFB *PBANDINFOSFB; #include #endif /* Command target identifiers */ #if (_WIN32_IE >= 0x0400) enum { SFBID_PIDLCHANGED = 0 }; #endif /* Desk bar client identifiers */ #if (_WIN32_IE >= 0x0400) enum { DBCID_EMPTY = 0, DBCID_ONDRAG = 1, DBCID_CLSIDOFBAR = 2, DBCID_RESIZE = 3, DBCID_GETBAR = 4 }; #endif /* Wallpaper option */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ typedef struct _tagWALLPAPEROPT { DWORD dwSize; DWORD dwStyle; } WALLPAPEROPT; typedef WALLPAPEROPT *LPWALLPAPEROPT; typedef const WALLPAPEROPT *LPCWALLPAPEROPT; #endif #endif /* Components options */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ typedef struct _tagCOMPONENTSOPT { DWORD dwSize; BOOL fEnableComponents; BOOL fActiveDesktop; } COMPONENTSOPT; typedef COMPONENTSOPT *LPCOMPONENTSOPT; typedef const COMPONENTSOPT *LPCCOMPONENTSOPT; #endif #endif /* Component position */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ typedef struct _tagCOMPPOS { DWORD dwSize; int iLeft; int iTop; DWORD dwWidth; DWORD dwHeight; int izIndex; BOOL fCanResize; BOOL fCanResizeX; BOOL fCanResizeY; int iPreferredLeftPercent; int iPreferredTopPercent; } COMPPOS; typedef COMPPOS *LPCOMPPOS; typedef const COMPPOS *LPCCOMPPOS; #endif #endif /* Component state information */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ typedef struct _tagCOMPSTATEINFO { DWORD dwSize; int iLeft; int iTop; DWORD dwWidth; DWORD dwHeight; DWORD dwItemState; } COMPSTATEINFO; typedef COMPSTATEINFO *LPCOMPSTATEINFO; typedef const COMPSTATEINFO *LPCCOMPSTATEINFO; #endif #endif /* Component (Internet Explorer 4.0 version) */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ typedef struct _tagIE4COMPONENT { DWORD dwSize; DWORD dwID; int iComponentType; BOOL fChecked; BOOL fDirty; BOOL fNoScroll; COMPPOS cpPos; WCHAR wszFriendlyName[MAX_PATH]; WCHAR wszSource[INTERNET_MAX_URL_LENGTH]; WCHAR wszSubscribedURL[INTERNET_MAX_URL_LENGTH]; } IE4COMPONENT; typedef IE4COMPONENT *LPIE4COMPONENT; typedef const IE4COMPONENT *LPCIE4COMPONENT; #endif #endif /* Component */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ typedef struct _tagCOMPONENT { DWORD dwSize; DWORD dwID; int iComponentType; BOOL fChecked; BOOL fDirty; BOOL fNoScroll; COMPPOS cpPos; WCHAR wszFriendlyName[MAX_PATH]; WCHAR wszSource[INTERNET_MAX_URL_LENGTH]; WCHAR wszSubscribedURL[INTERNET_MAX_URL_LENGTH]; DWORD dwCurItemState; COMPSTATEINFO csiOriginal; COMPSTATEINFO csiRestored; } COMPONENT; typedef COMPONENT *LPCOMPONENT; typedef const COMPONENT *LPCCOMPONENT; #endif #endif /* IActiveDesktop::AddDesktopWithUI() flags */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ enum _tagDTI_ADTIWUI { DTI_ADDUI_DEFAULT = 0x00000000, DTI_ADDUI_DISPSUBWIZARD = 0x00000001, DTI_ADDUI_POSITIONITEM = 0x00000002 }; #endif #endif /* Shell column information */ #if (_WIN32_IE >= 0x0500) #include typedef struct { SHCOLUMNID scid; VARTYPE vt; DWORD fmt; UINT cChars; DWORD csFlags; WCHAR wszTitle[MAX_COLUMN_NAME_LEN]; WCHAR wszDescription[MAX_COLUMN_DESC_LEN]; } SHCOLUMNINFO; typedef SHCOLUMNINFO *LPSHCOLUMNINFO; typedef const SHCOLUMNINFO *LPCSHCOLUMNINFO; #include #endif /* Shell column initialization information */ #if (_WIN32_IE >= 0x0500) #include typedef struct { ULONG dwFlags; ULONG dwReserved; WCHAR wszFolder[MAX_PATH]; } SHCOLUMNINIT; typedef SHCOLUMNINIT *LPSHCOLUMNINIT; typedef const SHCOLUMNINIT *LPCSHCOLUMNINIT; #include #endif /* Shell column data */ #if (_WIN32_IE >= 0x0500) #include typedef struct { ULONG dwFlags; DWORD dwFileAttributes; ULONG dwReserved; WCHAR *pwszExt; WCHAR wszFile[MAX_PATH]; } SHCOLUMNDATA; typedef SHCOLUMNDATA *LPSHCOLUMNDATA; typedef const SHCOLUMNDATA *LPCSHCOLUMNDATA; #include #endif /* Network resource array */ #include typedef struct _NRESARRAY { UINT cItems; NETRESOURCE nr[1]; } NRESARRAY; typedef NRESARRAY *LPNRESARRAY; #include /* Clipboard item identifier list */ typedef struct _IDA { UINT cidl; UINT aoffset[1]; } CIDA; typedef CIDA *LPIDA; /* File descriptor flags */ typedef enum { FD_CLSID = 0x00000001, FD_SIZEPOINT = 0x00000002, FD_ATTRIBUTES = 0x00000004, FD_CREATETIME = 0x00000008, FD_ACCESSTIME = 0x00000010, FD_WRITESTIME = 0x00000020, FD_FILESIZE = 0x00000040, FD_PROGRESSUI = 0x00004000, #if (NTDDI_VERSION >= 0x06000000) FD_LINKUI = 0x00008000, FD_UNICODE = 0x80000000 #else FD_LINKUI = 0x00008000 #endif } FD_FLAGS; /* File descriptor */ typedef struct _FILEDESCRIPTORA { DWORD dwFlags; CLSID clsid; SIZEL sizel; POINTL pointl; DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; CHAR cFileName[MAX_PATH]; } FILEDESCRIPTORA; typedef FILEDESCRIPTORA *LPFILEDESCRIPTORA; typedef struct _FILEDESCRIPTORW { DWORD dwFlags; CLSID clsid; SIZEL sizel; POINTL pointl; DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; WCHAR cFileName[MAX_PATH]; } FILEDESCRIPTORW; typedef FILEDESCRIPTORW *LPFILEDESCRIPTORW; #ifdef UNICODE typedef FILEDESCRIPTORW FILEDESCRIPTOR; typedef LPFILEDESCRIPTORW LPFILEDESCRIPTOR; #else typedef FILEDESCRIPTORA FILEDESCRIPTOR; typedef LPFILEDESCRIPTORA LPFILEDESCRIPTOR; #endif /* File group descriptor */ typedef struct _FILEGROUPDESCRIPTORA { UINT cItems; FILEDESCRIPTORA fgd[1]; } FILEGROUPDESCRIPTORA; typedef FILEGROUPDESCRIPTORA *LPFILEGROUPDESCRIPTORA; typedef struct _FILEGROUPDESCRIPTORW { UINT cItems; FILEDESCRIPTORW fgd[1]; } FILEGROUPDESCRIPTORW; typedef FILEGROUPDESCRIPTORW *LPFILEGROUPDESCRIPTORW; #ifdef UNICODE typedef FILEGROUPDESCRIPTORW FILEGROUPDESCRIPTOR; typedef LPFILEGROUPDESCRIPTORW LPFILEGROUPDESCRIPTOR; #else typedef FILEGROUPDESCRIPTORA FILEGROUPDESCRIPTOR; typedef LPFILEGROUPDESCRIPTORA LPFILEGROUPDESCRIPTOR; #endif /* Drop files */ typedef struct _DROPFILES { DWORD pFiles; POINT pt; BOOL fNC; BOOL fWide; } DROPFILES; typedef DROPFILES *LPDROPFILES; /* File attributes array */ #if (NTDDI_VERSION >= 0x06000000) typedef struct { UINT cItems; DWORD dwSumFileAttributes; DWORD dwProductFileAttributes; DWORD rgdwFileAttributes[1]; } FILE_ATTRIBUTES_ARRAY; #endif /* Drop image types */ #if (NTDDI_VERSION >= 0x06000000) typedef enum { DROPIMAGE_INVALID = -1, DROPIMAGE_NONE = 0, DROPIMAGE_COPY = DROPEFFECT_COPY, DROPIMAGE_MOVE = DROPEFFECT_MOVE, DROPIMAGE_LINK = DROPEFFECT_LINK, DROPIMAGE_LABEL = 6, DROPIMAGE_WARNING = 7, DROPIMAGE_NOIMAGE = 8 } DROPIMAGETYPE; #endif /* Drop description */ #if (NTDDI_VERSION >= 0x06000000) typedef struct { DROPIMAGETYPE type; WCHAR szMessage[MAX_PATH]; WCHAR szInsert[MAX_PATH]; } DROPDESCRIPTION; #endif /* Shell change notification entry */ typedef struct _SHChangeNotifyEntry { PCIDLIST_ABSOLUTE pidl; BOOL fRecursive; } SHChangeNotifyEntry; /* SHAddToRecentDocs() flags */ typedef enum { SHARD_PIDL = 0x00000001, SHARD_PATHA = 0x00000002, #if (NTDDI_VERSION >= 0x06010000) SHARD_PATHW = 0x00000003, SHARD_APPIDINFO = 0x00000004, SHARD_APPIDINFOIDLIST = 0x00000005, SHARD_LINK = 0x00000006, SHARD_APPIDINFOLINK = 0x00000007, SHARD_SHELLITEM = 0x00000008 #else SHARD_PATHW = 0x00000003 #endif } SHARD; #ifdef UNICODE #define SHARD_PATH SHARD_PATHW #else #define SHARD_PATH SHARD_PATHA #endif /* SHAddToRecentDocs() application identifier information */ #if (NTDDI_VERSION >= 0x06010000) typedef struct SHARDAPPIDINFO { IShellItem *psi; PCWSTR pszAppID; } SHARDAPPIDINFO; #endif /* SHAddToRecentDocs() application identifier information identifier list */ #if (NTDDI_VERSION >= 0x06010000) typedef struct SHARDAPPIDINFOIDLIST { PCIDLIST_ABSOLUTE pidl; PCWSTR pszAppID; } SHARDAPPIDINFOIDLIST; #endif /* SHAddToRecentDocs() application identifier information link */ #if (NTDDI_VERSION >= 0x06010000) typedef struct SHARDAPPIDINFOLINK { IShellLink *psl; PCWSTR pszAppID; } SHARDAPPIDINFOLINK; #endif /* Shell change DWORD as identifier list entry */ typedef struct _SHChangeDWORDAsIDList { USHORT cb; DWORD dwItem1; DWORD dwItem2; USHORT cbZero; } SHChangeDWORDAsIDList; typedef SHChangeDWORDAsIDList *LPSHChangeDWORDAsIDList; /* Shell change update image identifier list entry */ #if (NTDDI_VERSION >= 0x05000000) typedef struct _SHChangeUpdateImageIDList { USHORT cb; int iIconIndex; int iCurIndex; UINT uFlags; DWORD dwProcessID; WCHAR szName[MAX_PATH]; USHORT cbZero; } SHChangeUpdateImageIDList; typedef SHChangeUpdateImageIDList *LPSHChangeUpdateImageIDList; #endif /* Shell change product key as identifier list entry */ #if (NTDDI_VERSION >= 0x05000000) typedef struct _SHChangeProductKeyAsIDList { USHORT cb; WCHAR wszProductKey[39]; USHORT cbZero; } SHChangeProductKeyAsIDList; typedef SHChangeProductKeyAsIDList *LPSHChangeProductKeyAsIDList; #endif /* SHChangeNotifyRegisterThread() status values */ typedef enum { SCNRT_ENABLE = 0, SCNRT_DISABLE = 1 } SCNRT_STATUS; /* Shell description identifier */ #include typedef struct _SHDESCRIPTIONID { DWORD dwDescriptionId; CLSID clsid; } SHDESCRIPTIONID; typedef SHDESCRIPTIONID *LPSHDESCRIPTIONID; #include /* Automatic scrolling data */ typedef struct { int iNextSample; DWORD dwLastScroll; BOOL bFull; POINT pts[NUM_POINTS]; DWORD dwTimes[NUM_POINTS]; } AUTO_SCROLL_DATA; /* Cabinet state */ typedef struct { WORD cLength; WORD nVersion; BOOL fFullPathTitle : 1; BOOL fSaveLocalView : 1; BOOL fNotShell : 1; BOOL fSimpleDefault : 1; BOOL fDontShowDescBar : 1; BOOL fNewWindowMode : 1; BOOL fShowCompColor : 1; BOOL fDontPrettyNames : 1; BOOL fAdminsCreateCommonGroups : 1; UINT fUnusedFlags : 7; UINT fMenuEnumFilter; } CABINETSTATE; typedef CABINETSTATE *LPCABINETSTATE; /* Shell restrictions */ typedef enum RESTRICTIONS { REST_NONE = 0x00000000, REST_NORUN = 0x00000001, REST_NOCLOSE = 0x00000002, REST_NOSAVESET = 0x00000004, REST_NOFILEMENU = 0x00000008, REST_NOSETFOLDERS = 0x00000010, REST_NOSETTASKBAR = 0x00000020, REST_NODESKTOP = 0x00000040, REST_NOFIND = 0x00000080, REST_NODRIVES = 0x00000100, REST_NODRIVEAUTORUN = 0x00000200, REST_NODRIVETYPEAUTORUN = 0x00000400, REST_NONETHOOD = 0x00000800, REST_STARTBANNER = 0x00001000, REST_RESTRICTRUN = 0x00002000, REST_NOPRINTERTABS = 0x00004000, REST_NOPRINTERDELETE = 0x00008000, REST_NOPRINTERADD = 0x00010000, REST_NOSTARTMENUSUBFOLDERS = 0x00020000, REST_MYDOCSONNET = 0x00040000, REST_NOEXITTODOS = 0x00080000, REST_ENFORCESHELLEXTSECURITY = 0x00100000, REST_LINKRESOLVEIGNORELINKINFO = 0x00200000, REST_NOCOMMONGROUPS = 0x00400000, REST_SEPARATEDESKTOPPROCESS = 0x00800000, REST_NOWEB = 0x01000000, REST_NOTRAYCONTEXTMENU = 0x02000000, REST_NOVIEWCONTEXTMENU = 0x04000000, REST_NONETCONNECTDISCONNECT = 0x08000000, REST_STARTMENULOGOFF = 0x10000000, REST_NOSETTINGSASSIST = 0x20000000, REST_NOINTERNETICON = 0x40000001, REST_NORECENTDOCSHISTORY = 0x40000002, REST_NORECENTDOCSMENU = 0x40000003, REST_NOACTIVEDESKTOP = 0x40000004, REST_NOACTIVEDESKTOPCHANGES = 0x40000005, REST_NOFAVORITESMENU = 0x40000006, REST_CLEARRECENTDOCSONEXIT = 0x40000007, REST_CLASSICSHELL = 0x40000008, REST_NOCUSTOMIZEWEBVIEW = 0x40000009, REST_NOHTMLWALLPAPER = 0x40000010, REST_NOCHANGINGWALLPAPER = 0x40000011, REST_NODESKCOMP = 0x40000012, REST_NOADDDESKCOMP = 0x40000013, REST_NODELDESKCOMP = 0x40000014, REST_NOCLOSEDESKCOMP = 0x40000015, REST_NOCLOSE_DRAGDROPBAND = 0x40000016, REST_NOMOVINGBAND = 0x40000017, REST_NOEDITDESKCOMP = 0x40000018, REST_NORESOLVESEARCH = 0x40000019, REST_NORESOLVETRACK = 0x4000001A, REST_FORCECOPYACLWITHFILE = 0x4000001B, #if (NTDDI_VERSION < 0x06000000) REST_NOLOGO3CHANNELNOTIFY = 0x4000001C, #endif REST_NOFORGETSOFTWAREUPDATE = 0x4000001D, REST_NOSETACTIVEDESKTOP = 0x4000001E, REST_NOUPDATEWINDOWS = 0x4000001F, REST_NOCHANGESTARTMENU = 0x40000020, REST_NOFOLDEROPTIONS = 0x40000021, REST_HASFINDCOMPUTERS = 0x40000022, REST_INTELLIMENUS = 0x40000023, REST_RUNDLGMEMCHECKBOX = 0x40000024, REST_ARP_ShowPostSetup = 0x40000025, REST_NOCSC = 0x40000026, REST_NOCONTROLPANEL = 0x40000027, REST_ENUMWORKGROUP = 0x40000028, REST_ARP_NOARP = 0x40000029, REST_ARP_NOREMOVEPAGE = 0x4000002A, REST_ARP_NOADDPAGE = 0x4000002B, REST_ARP_NOWINSETUPPAGE = 0x4000002C, REST_GREYMSIADS = 0x4000002D, REST_NOCHANGEMAPPEDDRIVELABEL = 0x4000002E, REST_NOCHANGEMAPPEDDRIVECOMMENT = 0x4000002F, REST_MaxRecentDocs = 0x40000030, REST_NONETWORKCONNECTIONS = 0x40000031, REST_FORCESTARTMENULOGOFF = 0x40000032, REST_NOWEBVIEW = 0x40000033, REST_NOCUSTOMIZETHISFOLDER = 0x40000034, REST_NOENCRYPTION = 0x40000035, REST_DONTSHOWSUPERHIDDEN = 0x40000037, REST_NOSHELLSEARCHBUTTON = 0x40000038, REST_NOHARDWARETAB = 0x40000039, REST_NORUNASINSTALLPROMPT = 0x4000003A, REST_PROMPTRUNASINSTALLNETPATH = 0x4000003B, REST_NOMANAGEMYCOMPUTERVERB = 0x4000003C, REST_DISALLOWRUN = 0x4000003E, REST_NOWELCOMESCREEN = 0x4000003F, REST_RESTRICTCPL = 0x40000040, REST_DISALLOWCPL = 0x40000041, REST_NOSMBALLOONTIP = 0x40000042, REST_NOSMHELP = 0x40000043, REST_NOWINKEYS = 0x40000044, REST_NOENCRYPTONMOVE = 0x40000045, REST_NOLOCALMACHINERUN = 0x40000046, REST_NOCURRENTUSERRUN = 0x40000047, REST_NOLOCALMACHINERUNONCE = 0x40000048, REST_NOCURRENTUSERRUNONCE = 0x40000049, REST_FORCEACTIVEDESKTOPON = 0x4000004A, REST_NOVIEWONDRIVE = 0x4000004C, #if (NTDDI_VERSION >= 0x05010000) REST_NONETCRAWL = 0x4000004D, REST_NOSHAREDDOCUMENTS = 0x4000004E, #endif REST_NOSMMYDOCS = 0x4000004F, #if (NTDDI_VERSION >= 0x05010000) REST_NOSMMYPICS = 0x40000050, REST_ALLOWBITBUCKDRIVES = 0x40000051, REST_NOLEGACYSHELLMODE = 0x40000052, REST_NOCONTROLPANELBARRIACDE = 0x40000053, REST_NOSTARTPAGE = 0x40000054, REST_NOAUTOTRAYNOTIFY = 0x40000055, REST_NOTASKGROUPING = 0x40000056, REST_NOCDBURNING = 0x40000057, #endif #if (NTDDI_VERSION >= 0x05000300) REST_MYCOMPNOPROP = 0x40000058, REST_MYDOCSNOPROP = 0x40000059, #endif #if (NTDDI_VERSION >= 0x05010000) REST_NOSTARTPANEL = 0x4000005A, REST_NODISPLAYAPPEARANCEPAGE = 0x4000005B, REST_NOTHEMESTAB = 0x4000005C, REST_NOVISUALSTYLECHOICE = 0x4000005D, REST_NOSIZECHOICE = 0x4000005E, REST_NOCOLORCHOICE = 0x4000005F, REST_SETVISUALSTYLE = 0x40000060, #endif #if (NTDDI_VERSION >= 0x05000300) REST_STARTRUNNOHOMEPATH = 0x40000061, #endif #if (NTDDI_VERSION >= 0x05010000) REST_NOUSERNAMEINSTARTPANEL = 0x40000062, REST_NOMYCOMPUTERICON = 0x40000063, REST_NOSMNETWORKPLACES = 0x40000064, REST_NOSMPINNEDLIST = 0x40000065, REST_NOSMMYMUSIC = 0x40000066, REST_NOSMEJECTPC = 0x40000067, REST_NOSMMOREPROGRAMS = 0x40000068, REST_NOSMMFUPROGRAMS = 0x40000069, REST_NOTRAYITEMSDISPLAY = 0x4000006A, REST_NOTOOLBARSONTASKBAR = 0x4000006B, #endif #if (NTDDI_VERSION >= 0x05000300) REST_NOSMCONFIGUREPROGRAMS = 0x4000006F, #endif #if (NTDDI_VERSION >= 0x05010000) REST_HIDECLOCK = 0x40000070, REST_NOLOWDISKSPACECHECKS = 0x40000071, #endif #if (NTDDI_VERSION >= 0x05000400) REST_NOENTIRENETWORK = 0x40000072, #endif #if (NTDDI_VERSION >= 0x05010000) REST_NODESKTOPCLEANUP = 0x40000073, REST_BITBUCKNUKEONDELETE = 0x40000074, REST_BITBUCKCONFIRMDELETE = 0x40000075, REST_BITBUCKNOPROP = 0x40000076, REST_NODISPBACKGROUND = 0x40000077, REST_NODISPSCREENSAVEPG = 0x40000078, REST_NODISPSETTINGSPG = 0x40000079, REST_NODISPSCREENSAVEPREVIEW = 0x4000007A, REST_NODISPLAYCPL = 0x4000007B, REST_HIDERUNASVERB = 0x4000007C, REST_NOTHUMBNAILCACHE = 0x4000007D, #endif #if (NTDDI_VERSION >= 0x05010100) REST_NOSTRCMPLOGICAL = 0x4000007E, REST_NOPUBLISHWIZARD = 0x4000007F, REST_NOONLINEPRINTSWIZARD = 0x40000080, REST_NOWEBSERVICES = 0x40000081, #endif #if (NTDDI_VERSION >= 0x05000300) REST_ALLOWUNHASHEDWEBVIEW = 0x40000082, #endif REST_ALLOWLEGACYWEBVIEW = 0x40000083, #if (NTDDI_VERSION >= 0x05000300) REST_REVERTWEBVIEWSECURITY = 0x40000084, #endif #if (NTDDI_VERSION >= 0x05000400) REST_INHERITCONSOLEHANDLES = 0x40000086, #endif #if (NTDDI_VERSION >= 0x05010200) && (NTDDI_VERSION < 0x06000000) REST_SORTMAXITEMCOUNT = 0x40000087, #endif #if (NTDDI_VERSION >= 0x05010200) REST_NOREMOTERECURSIVEEVENTS = 0x40000089, REST_NOREMOTECHANGENOTIFY = 0x40000091, #if (NTDDI_VERSION < 0x06000000) REST_NOSIMPLENETIDLIST = 0x40000092, #endif REST_NOENUMENTIRENETWORK = 0x40000093, #if (NTDDI_VERSION < 0x06000000) REST_NODETAILSTHUMBNAILONNETWORK = 0x40000094, #endif REST_NOINTERNETOPENWITH = 0x40000095, #endif #if (NTDDI_VERSION >= 0x05010200) REST_DONTRETRYBADNETNAME = 0x4000009B, REST_ALLOWFILECLSIDJUNCTIONS = 0x4000009C, REST_NOUPNPINSTALL = 0x4000009D, #endif REST_ARP_DONTGROUPPATCHES = 0x400000AC, REST_ARP_NOCHOOSEPROGRAMSPAGE = 0x400000AD, REST_NODISCONNECT = 0x41000001, REST_NOSECURITY = 0x41000002, #if (NTDDI_VERSION >= 0x05010200) REST_NOFILEASSOCIATE = 0x41000003, REST_ALLOWCOMMENTTOGGLE = 0x41000004, #if (NTDDI_VERSION < 0x06000000) REST_USEDESKTOPINICACHE = 0x41000005, #endif #else REST_NOFILEASSOCIATE = 0x41000003 #endif } RESTRICTIONS; /* SHOpenWithDialog() flags */ enum tagOPEN_AS_INFO_FLAGS { OAIF_ALLOW_REGISTRATION = 0x00000001, OAIF_REGISTER_EXT = 0x00000002, OAIF_EXEC = 0x00000004, #if (NTDDI_VERSION >= 0x06000000) OAIF_FORCE_REGISTRATION = 0x00000008, OAIF_HIDE_REGISTRATION = 0x00000020, OAIF_URL_PROTOCOL = 0x00000040 #else OAIF_FORCE_REGISTRATION = 0x00000008 #endif }; typedef int OPEN_AS_INFO_FLAGS; /* SHOpenWithDialog() parameters */ #include typedef struct _openasinfo { LPCWSTR pcszFile; LPCWSTR pcszClass; OPEN_AS_INFO_FLAGS oaifInFlags; } OPENASINFO; typedef OPENASINFO *POPENASINFO; #include /* PIF information */ typedef struct PROPPRG { WORD flPrg; WORD flPrgInit; CHAR achTitle[PIFNAMESIZE]; CHAR achCmdLine[PIFSTARTLOCSIZE + PIFPARAMSSIZE + 1]; CHAR achWorkDir[PIFDEFPATHSIZE]; WORD wHotKey; CHAR achIconFile[PIFDEFFILESIZE]; WORD wIconIndex; DWORD dwEnhModeFlags; DWORD dwRealModeFlags; CHAR achOtherFile[PIFDEFFILESIZE]; CHAR achPIFFile[PIFMAXFILEPATH]; } PROPPRG; typedef UNALIGNED PROPPRG *PPROPPRG; typedef UNALIGNED PROPPRG *LPPROPPRG; typedef const UNALIGNED PROPPRG *LPCPROPPRG; /* Icon sizes */ enum { BMICON_LARGE = 0, BMICON_SMALL = 1 }; /* The following structures get eight-byte packing. */ #include /* QCM information identifier map placement */ typedef struct _QCMINFO_IDMAP_PLACEMENT { UINT id; UINT fFlags; } QCMINFO_IDMAP_PLACEMENT; /* QCM information identifier map */ typedef struct _QCMINFO_IDMAP { UINT nMaxIds; QCMINFO_IDMAP_PLACEMENT pIdList[1]; } QCMINFO_IDMAP; /* QCM information */ typedef struct _QCMINFO { HMENU hmenu; UINT indexMenu; UINT idCmdFirst; UINT idCmdLast; const QCMINFO_IDMAP *pIdMap; } QCMINFO; typedef QCMINFO *LPQCMINFO; /* Toolbar information */ typedef struct _TBINFO { UINT cbuttons; UINT uFlags; } TBINFO; typedef TBINFO *LPTBINFO; /* Details information */ typedef struct _DETAILSINFO { PCUITEMID_CHILD pidl; int fmt; int cxChar; STRRET str; int iImage; } DETAILSINFO; typedef DETAILSINFO *PDETAILSINFO; /* Property page data */ typedef struct _SFVM_PROPPAGE_DATA { DWORD dwReserved; LPFNADDPROPSHEETPAGE pfn; LPARAM lParam; } SFVM_PROPPAGE_DATA; /* Help topic data */ typedef struct _SFVM_HELPTOPIC_DATA { WCHAR wszHelpFile[MAX_PATH]; WCHAR wszHelpTopic[MAX_PATH]; } SFVM_HELPTOPIC_DATA; /* Item spacing */ typedef struct _ITEMSPACING { int cxSmall; int cySmall; int cxLarge; int cyLarge; } ITEMSPACING; /* SHCreateShellFolderView parameters */ typedef struct _SFV_CREATE { UINT cbSize; IShellFolder *pshf; IShellView *psvOuter; IShellFolderViewCB *psfvcb; } SFV_CREATE; /* Folder menu callback */ typedef HRESULT (CALLBACK *LPFNDFMCALLBACK)( IShellFolder *, HWND, IDataObject *, UINT, WPARAM, LPARAM ); /* Default context menu */ typedef struct { HWND hwnd; IContextMenuCB *pcmcb; PCIDLIST_ABSOLUTE pidlFolder; IShellFolder *psf; UINT cidl; PCUITEMID_CHILD_ARRAY apidl; IUnknown *punkAssociationInfo; UINT cKeys; const HKEY *aKeys; } DEFCONTEXTMENU; /* DFM_INVOKECOMMANDEX parameters */ typedef struct { DWORD cbSize; DWORD fMask; LPARAM lParam; UINT idCmdFirst; UINT idDefMax; LPCMINVOKECOMMANDINFO pici; #if (NTDDI_VERSION >= 0x06000000) IUnknown *punkSite; #endif } DFMICS; typedef DFMICS *PDFMICS; /* View callback */ typedef HRESULT (CALLBACK *LPFNVIEWCALLBACK)( IShellView *, IShellFolder *, HWND, UINT, WPARAM, LPARAM ); /* SHCreateShellFolderViewEx() parameters */ typedef struct _CSFV { UINT cbSize; IShellFolder *pshf; IShellView *psvOuter; PCIDLIST_ABSOLUTE pidl; LONG lEvents; LPFNVIEWCALLBACK pfnCallback; FOLDERVIEWMODE fvm; } CSFV; typedef CSFV *LPCSFV; /* SFVM_SETITEMPOS parameters */ typedef struct _SFV_SETITEMPOS { PCUITEMID_CHILD pidl; POINT pt; } SFV_SETITEMPOS; typedef SFV_SETITEMPOS *LPSFV_SETITEMPOS; typedef const SFV_SETITEMPOS *LPCSFV_SETITEMPOS; /* Revert to default packing. */ #include /* Shell state */ typedef struct { BOOL fShowAllObjects : 1; BOOL fShowExtensions : 1; BOOL fNoConfirmRecycle : 1; BOOL fShowSysFiles : 1; BOOL fShowCompColor : 1; BOOL fDoubleClickInWebView : 1; BOOL fDesktopHTML : 1; BOOL fWin95Classic : 1; BOOL fDontPrettyPath : 1; BOOL fShowAttribCol : 1; BOOL fMapNetDrvBtn : 1; BOOL fShowInfoTip : 1; BOOL fHideIcons : 1; BOOL fWebView : 1; BOOL fFilter : 1; BOOL fShowSuperHidden : 1; BOOL fNoNetCrawling : 1; DWORD dwWin95Unused; UINT uWin95Unused; LONG lParamSort; int iSortDirection; UINT version; UINT uNotUsed; BOOL fSepProcess : 1; BOOL fStartPanelOn : 1; BOOL fShowStartPage : 1; BOOL fAutoCheckSelect : 1; BOOL fIconsOnly : 1; BOOL fShowTypeOverlay : 1; UINT fSpareFlags : 11; } SHELLSTATEA; typedef SHELLSTATEA *LPSHELLSTATEA; typedef struct { BOOL fShowAllObjects : 1; BOOL fShowExtensions : 1; BOOL fNoConfirmRecycle : 1; BOOL fShowSysFiles : 1; BOOL fShowCompColor : 1; BOOL fDoubleClickInWebView : 1; BOOL fDesktopHTML : 1; BOOL fWin95Classic : 1; BOOL fDontPrettyPath : 1; BOOL fShowAttribCol : 1; BOOL fMapNetDrvBtn : 1; BOOL fShowInfoTip : 1; BOOL fHideIcons : 1; BOOL fWebView : 1; BOOL fFilter : 1; BOOL fShowSuperHidden : 1; BOOL fNoNetCrawling : 1; DWORD dwWin95Unused; UINT uWin95Unused; LONG lParamSort; int iSortDirection; UINT version; UINT uNotUsed; BOOL fSepProcess : 1; BOOL fStartPanelOn : 1; BOOL fShowStartPage : 1; BOOL fAutoCheckSelect : 1; BOOL fIconsOnly : 1; BOOL fShowTypeOverlay : 1; UINT fSpareFlags : 11; } SHELLSTATEW; typedef SHELLSTATEW *LPSHELLSTATEW; #ifdef UNICODE typedef SHELLSTATEW SHELLSTATE; typedef LPSHELLSTATEW LPSHELLSTATE; #else typedef SHELLSTATEA SHELLSTATE; typedef LPSHELLSTATEA LPSHELLSTATE; #endif /* Shell flag state */ typedef struct { BOOL fShowAllObjects : 1; BOOL fShowExtensions : 1; BOOL fNoConfirmRecycle : 1; BOOL fShowSysFiles : 1; BOOL fShowCompColor : 1; BOOL fDoubleClickInWebView : 1; BOOL fDesktopHTML : 1; BOOL fWin95Classic : 1; BOOL fDontPrettyPath : 1; BOOL fShowAttribCol : 1; BOOL fMapNetDrvBtn : 1; BOOL fShowInfoTip : 1; BOOL fHideIcons : 1; #if (NTDDI_VERSION >= 0x06000000) BOOL fAutoCheckSelect : 1; BOOL fIconsOnly : 1; UINT fRestFlags : 1; #else UINT fRestFlags : 3; #endif } SHELLFLAGSTATE; typedef SHELLFLAGSTATE *LPSHELLFLAGSTATE; /* Shell menu file name */ #include typedef struct tagAASHELLMENUFILENAME { SHORT cbTotal; BYTE rgbReserved[12]; WCHAR szFileName[1]; } AASHELLMENUFILENAME; typedef AASHELLMENUFILENAME *LPAASHELLMENUFILENAME; #include /* Shell menu item */ #include typedef struct tagAASHELLMENUITEM { void *lpReserved1; int iReserved; UINT uiReserved; LPAASHELLMENUFILENAME lpName; LPWSTR psz; } AASHELLMENUITEM; typedef AASHELLMENUITEM *LPAASHELLMENUITEM; #include /* Internet Explorer shortcut flags */ #if (_WIN32_IE >= 0x0700) typedef enum tagIESHORTCUTFLAGS { IESHORTCUT_NEWBROWSER = 0x00000001, IESHORTCUT_OPENNEWTAB = 0x00000002, IESHORTCUT_FORCENAVIGATE = 0x00000004, IESHORTCUT_BACKGROUNDTAB = 0x00000008 } IESHORTCUTFLAGS; #endif /* IExtractIcon interface */ #undef INTERFACE #define INTERFACE IExtractIconA DECLARE_INTERFACE_( IExtractIconA, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IExtractIconA methods */ STDMETHOD( GetIconLocation )( THIS_ UINT, LPSTR, UINT, int *, UINT * ) PURE; STDMETHOD( Extract )( THIS_ LPCSTR, UINT, HICON *, HICON *, UINT ) PURE; }; typedef IExtractIconA *LPEXTRACTICONA; #undef INTERFACE #define INTERFACE IExtractIconW DECLARE_INTERFACE_( IExtractIconW, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IExtractIconW methods */ STDMETHOD( GetIconLocation )( THIS_ UINT, LPWSTR, UINT, int *, UINT * ) PURE; STDMETHOD( Extract )( THIS_ LPCWSTR, UINT, HICON *, HICON *, UINT ) PURE; }; typedef IExtractIconW *LPEXTRACTICONW; #ifdef UNICODE #define IExtractIcon IExtractIconW #define IExtractIconVtbl IExtractIconWVtbl #define LPEXTRACTICON LPEXTRACTICONW #else #define IExtractIcon IExtractIconA #define IExtractIconVtbl IExtractIconAVtbl #define LPEXTRACTICON LPEXTRACTICONA #endif /* IShellIconOverlayIdentifier interface */ #undef INTERFACE #define INTERFACE IShellIconOverlayIdentifier DECLARE_INTERFACE_( IShellIconOverlayIdentifier, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellIconOverlayIdentifier methods */ STDMETHOD( IsMemberOf )( THIS_ LPCWSTR, DWORD ) PURE; STDMETHOD( GetOverlayInfo )( THIS_ LPWSTR, int, int *, DWORD * ) PURE; STDMETHOD( GetPriority )( THIS_ int * ) PURE; }; /* IShellIconOverlayManager interface */ #undef INTERFACE #define INTERFACE IShellIconOverlayManager DECLARE_INTERFACE_( IShellIconOverlayManager, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellIconOverlayManager methods */ STDMETHOD( GetFileOverlayInfo )( THIS_ LPCWSTR, DWORD, int *, DWORD ) PURE; STDMETHOD( GetReservedOverlayInfo )( THIS_ LPCWSTR, DWORD, int *, DWORD, int ) PURE; STDMETHOD( RefreshOverlayImages )( THIS_ DWORD ) PURE; STDMETHOD( LoadNonloadedOverlayIdentifiers )( THIS ) PURE; STDMETHOD( OverlayIndexFromImageIndex )( THIS_ int, int *, BOOL ) PURE; }; /* IShellIconOverlay interface */ #undef INTERFACE #define INTERFACE IShellIconOverlay DECLARE_INTERFACE_( IShellIconOverlay, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellIconOverlay methods */ STDMETHOD( GetOverlayIndex )( THIS_ PCUITEMID_CHILD, int * ) PURE; STDMETHOD( GetOverlayIconIndex )( THIS_ PCUITEMID_CHILD, int * ) PURE; }; /* IShellExecuteHook interface */ #ifdef _INC_SHELLAPI #undef INTERFACE #define INTERFACE IShellExecuteHookA DECLARE_INTERFACE_( IShellExecuteHookA, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellExecuteHookA methods */ STDMETHOD( Execute )( THIS_ LPSHELLEXECUTEINFOA ) PURE; }; #undef INTERFACE #define INTERFACE IShellExecuteHookW DECLARE_INTERFACE_( IShellExecuteHookW, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellExecuteHookW methods */ STDMETHOD( Execute )( THIS_ LPSHELLEXECUTEINFOW ) PURE; }; #ifdef UNICODE #define IShellExecuteHook IShellExecuteHookW #define IShellExecuteHookVtbl IShellExecuteHookWVtbl #else #define IShellExecuteHook IShellExecuteHookA #define IShellExecuteHookVtbl IShellExecuteHookAVtbl #endif #endif /* IURLSearchHook interface */ #undef INTERFACE #define INTERFACE IURLSearchHook DECLARE_INTERFACE_( IURLSearchHook, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IURLSearchHook methods */ STDMETHOD( Translate )( THIS_ LPWSTR, DWORD ) PURE; }; /* ISearchContext interface */ #undef INTERFACE #define INTERFACE ISearchContext DECLARE_INTERFACE_( ISearchContext, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ISearchContext methods */ STDMETHOD( GetSearchUrl )( THIS_ BSTR * ) PURE; STDMETHOD( GetSearchText )( THIS_ BSTR * ) PURE; STDMETHOD( GetSearchStyle )( THIS_ DWORD * ) PURE; }; /* IURLSearchHook2 interface */ #undef INTERFACE #define INTERFACE IURLSearchHook2 DECLARE_INTERFACE_( IURLSearchHook2, IURLSearchHook ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IURLSearchHook methods */ STDMETHOD( Translate )( THIS_ LPWSTR, DWORD ) PURE; /* IURLSearchHook2 methods */ STDMETHOD( TranslateWithSearchContext )( THIS_ LPWSTR, DWORD, ISearchContext * ) PURE; }; /* INewShortcutHook interface */ #undef INTERFACE #define INTERFACE INewShortcutHookA DECLARE_INTERFACE_( INewShortcutHookA, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* INewShortcutHookA methods */ STDMETHOD( SetReferent )( THIS_ LPCSTR, HWND ) PURE; STDMETHOD( GetReferent )( THIS_ LPSTR, int ) PURE; STDMETHOD( SetFolder )( THIS_ LPCSTR ) PURE; STDMETHOD( GetFolder )( THIS_ LPSTR, int ) PURE; STDMETHOD( GetName )( THIS_ LPSTR, int ) PURE; STDMETHOD( GetExtension )( THIS_ LPSTR, int ) PURE; }; #undef INTERFACE #define INTERFACE INewShortcutHookW DECLARE_INTERFACE_( INewShortcutHookW, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* INewShortcutHookW methods */ STDMETHOD( SetReferent )( THIS_ LPCWSTR, HWND ) PURE; STDMETHOD( GetReferent )( THIS_ LPWSTR, int ) PURE; STDMETHOD( SetFolder )( THIS_ LPCWSTR ) PURE; STDMETHOD( GetFolder )( THIS_ LPWSTR, int ) PURE; STDMETHOD( GetName )( THIS_ LPWSTR, int ) PURE; STDMETHOD( GetExtension )( THIS_ LPWSTR, int ) PURE; }; #ifdef UNICODE #define INewShortcutHook INewShortcutHookW #define INewShortcutHookVtbl INewShortcutHookWVtbl #else #define INewShortcutHook INewShortcutHookA #define INewShortcutHookVtbl INewShortcutHookAVtbl #endif /* ICopyHook interface */ #undef INTERFACE #define INTERFACE ICopyHookA DECLARE_INTERFACE_( ICopyHookA, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ICopyHookA methods */ STDMETHOD_( UINT, CopyCallback )( THIS_ HWND, UINT, UINT, LPCSTR, DWORD, LPCSTR, DWORD ) PURE; }; typedef ICopyHookA *LPCOPYHOOKA; #undef INTERFACE #define INTERFACE ICopyHookW DECLARE_INTERFACE_( ICopyHookW, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ICopyHookW methods */ STDMETHOD_( UINT, CopyCallback )( THIS_ HWND, UINT, UINT, LPCWSTR, DWORD, LPCWSTR, DWORD ) PURE; }; typedef ICopyHookW *LPCOPYHOOKW; #ifdef UNICODE #define ICopyHook ICopyHookW #define ICopyHookVtbl ICopyHookWVtbl #define LPCOPYHOOK LPCOPYHOOKW #else #define ICopyHook ICopyHookA #define ICopyHookVtbl ICopyHookAVtbl #define LPCOPYHOOK LPCOPYHOOKA #endif /* IFileViewerSite interface */ #if (NTDDI_VERSION < 0x05000000) #undef INTERFACE #define INTERFACE IFileViewerSite DECLARE_INTERFACE_( IFileViewerSite, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IFileViewerSite methods */ STDMETHOD( SetPinnedWindow )( THIS_ HWND ) PURE; STDMETHOD( GetPinnedWindow )( THIS_ HWND * ) PURE; }; typedef IFileViewerSite *LPFILEVIEWERSITE; #endif /* IFileViewer interface */ #if (NTDDI_VERSION < 0x05000000) #undef INTERFACE #define INTERFACE IFileViewerA DECLARE_INTERFACE_( IFileViewerA, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IFileViewerA methods */ STDMETHOD( ShowInitialize )( THIS_ LPFILEVIEWERSITE ) PURE; STDMETHOD( Show )( THIS_ LPFVSHOWINFO ) PURE; STDMETHOD( PrintTo )( THIS_ LPSTR, BOOL ) PURE; }; typedef IFileViewerA *LPFILEVIEWERA; #undef INTERFACE #define INTERFACE IFileViewerW DECLARE_INTERFACE_( IFileViewerW, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IFileViewerW methods */ STDMETHOD( ShowInitialize )( THIS_ LPFILEVIEWERSITE ) PURE; STDMETHOD( Show )( THIS_ LPFVSHOWINFO ) PURE; STDMETHOD( PrintTo )( THIS_ LPWSTR, BOOL ) PURE; }; typedef IFileViewerW *LPFILEVIEWERW; #ifdef UNICODE #define IFileViewer IFileViewerW #define LPFILEVIEWER LPFILEVIEWERW #else #define IFileViewer IFileViewerA #define LPFILEVIEWER LPFILEVIEWERA #endif #endif /* IShellDetails interface */ #undef INTERFACE #define INTERFACE IShellDetails DECLARE_INTERFACE_( IShellDetails, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellDetails methods */ STDMETHOD( GetDetailsOf )( THIS_ PCUITEMID_CHILD, UINT, SHELLDETAILS * ) PURE; STDMETHOD( ColumnClick )( THIS_ UINT ) PURE; }; /* IObjMgr interface */ #undef INTERFACE #define INTERFACE IObjMgr DECLARE_INTERFACE_( IObjMgr, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IObjMgr methods */ STDMETHOD( Append )( THIS_ IUnknown * ) PURE; STDMETHOD( Remove )( THIS_ IUnknown * ) PURE; }; /* ICurrentWorkingDirectory interface */ #undef INTERFACE #define INTERFACE ICurrentWorkingDirectory DECLARE_INTERFACE_( ICurrentWorkingDirectory, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ICurrentWorkingDirectory methods */ STDMETHOD( GetDirectory )( THIS_ LPWSTR, DWORD ) PURE; STDMETHOD( SetDirectory )( THIS_ LPCWSTR ) PURE; }; /* IACList interface */ #undef INTERFACE #define INTERFACE IACList DECLARE_INTERFACE_( IACList, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IACList methods */ STDMETHOD( Expand )( THIS_ LPCWSTR ) PURE; }; /* IACList2 interface */ #undef INTERFACE #define INTERFACE IACList2 DECLARE_INTERFACE_( IACList2, IACList ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IACList methods */ STDMETHOD( Expand )( THIS_ LPCWSTR ) PURE; /* IACList2 methods */ STDMETHOD( SetOptions )( THIS_ DWORD ) PURE; STDMETHOD( GetOptions )( THIS_ DWORD * ) PURE; }; /* IProgressDialog interface */ #undef INTERFACE #define INTERFACE IProgressDialog DECLARE_INTERFACE_( IProgressDialog, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IProgressDialog methods */ STDMETHOD( StartProgressDialog )( THIS_ HWND, IUnknown *, DWORD, LPCVOID ) PURE; STDMETHOD( StopProgressDialog )( THIS ) PURE; STDMETHOD( SetTitle )( THIS_ LPCWSTR ) PURE; STDMETHOD( SetAnimation )( THIS_ HINSTANCE, UINT ) PURE; STDMETHOD_( BOOL, HasUserCancelled )( THIS ) PURE; STDMETHOD( SetProgress )( THIS_ DWORD, DWORD ) PURE; STDMETHOD( SetProgress64 )( THIS_ ULONGLONG, ULONGLONG ) PURE; STDMETHOD( SetLine )( THIS_ DWORD, LPCWSTR, BOOL, LPCVOID ) PURE; STDMETHOD( SetCancelMsg )( THIS_ LPCWSTR, LPCVOID ) PURE; STDMETHOD( Timer )( THIS_ DWORD, LPCVOID ) PURE; }; /* IDockingWindowSite interface */ #undef INTERFACE #define INTERFACE IDockingWindowSite DECLARE_INTERFACE_( IDockingWindowSite, IOleWindow ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IOleWindow methods */ STDMETHOD( GetWindow )( THIS_ HWND * ) PURE; STDMETHOD( ContextSensitiveHelp )( THIS_ BOOL ) PURE; /* IDockingWindowSite methods */ STDMETHOD( GetBorderDW )( THIS_ IUnknown *, LPRECT ) PURE; STDMETHOD( RequestBorderSpaceDW )( THIS_ IUnknown *, LPCBORDERWIDTHS ) PURE; STDMETHOD( SetBorderSpaceDW )( THIS_ IUnknown *, LPCBORDERWIDTHS ) PURE; }; /* IDockingWindowFrame interface */ #undef INTERFACE #define INTERFACE IDockingWindowFrame DECLARE_INTERFACE_( IDockingWindowFrame, IOleWindow ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IOleWindow methods */ STDMETHOD( GetWindow )( THIS_ HWND * ) PURE; STDMETHOD( ContextSensitiveHelp )( THIS_ BOOL ) PURE; /* IDockingWindowFrame methods */ STDMETHOD( AddToolbar )( THIS_ IUnknown *, LPCWSTR, DWORD ) PURE; STDMETHOD( RemoveToolbar )( THIS_ IUnknown *, DWORD ) PURE; STDMETHOD( FindToolbar )( THIS_ LPCWSTR, REFIID, void ** ) PURE; }; /* IThumbnailCapture interface */ #if (_WIN32_IE >= 0x0400) #undef INTERFACE #define INTERFACE IThumbnailCapture DECLARE_INTERFACE_( IThumbnailCapture, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IThumbnailCapture methods */ STDMETHOD( CaptureThumbnail )( THIS_ const SIZE *, IUnknown *, HBITMAP * ) PURE; }; typedef IThumbnailCapture *LPTHUMBNAILCAPTURE; #endif /* IEnumShellImageStore interface */ #if (NTDDI_VERSION >= 0x05000000) && (NTDDI_VERSION < 0x06000000) #undef INTERFACE #define INTERFACE IEnumShellImageStore DECLARE_INTERFACE_( IEnumShellImageStore, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IEnumShellImageStore methods */ STDMETHOD( Reset )( THIS ) PURE; STDMETHOD( Next )( THIS_ ULONG, PENUMSHELLIMAGESTOREDATA *, ULONG * ) PURE; STDMETHOD( Skip )( THIS_ ULONG ) PURE; STDMETHOD( Clone )( THIS_ IEnumShellImageStore ** ) PURE; }; typedef IEnumShellImageStore *LPENUMSHELLIMAGESTORE; #endif /* IShellImageStore interface */ #if (NTDDI_VERSION >= 0x05000000) && (NTDDI_VERSION < 0x06000000) #undef INTERFACE #define INTERFACE IShellImageStore DECLARE_INTERFACE_( IShellImageStore, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellImageStore methods */ STDMETHOD( Open )( THIS_ DWORD, DWORD * ) PURE; STDMETHOD( Create )( THIS_ DWORD, DWORD * ) PURE; STDMETHOD( ReleaseLock )( THIS_ const DWORD * ) PURE; STDMETHOD( Close )( THIS_ const DWORD * ) PURE; STDMETHOD( Commit )( THIS_ const DWORD * ) PURE; STDMETHOD( IsLocked )( THIS ) PURE; STDMETHOD( GetMode )( THIS_ DWORD * ) PURE; STDMETHOD( GetCapabilities )( THIS_ DWORD * ) PURE; STDMETHOD( AddEntry )( THIS_ LPCWSTR, const FILETIME *, DWORD, HBITMAP ) PURE; STDMETHOD( GetEntry )( THIS_ LPCWSTR, DWORD, HBITMAP * ) PURE; STDMETHOD( DeleteEntry )( THIS_ LPCWSTR ) PURE; STDMETHOD( IsEntryInStore )( THIS_ LPCWSTR, FILETIME * ) PURE; STDMETHOD( Enum )( THIS_ LPENUMSHELLIMAGESTORE * ) PURE; }; typedef IShellImageStore *LPSHELLIMAGESTORE; #endif /* IShellFolderBand interface */ #if (_WIN32_IE >= 0x0400) #undef INTERFACE #define INTERFACE IShellFolderBand DECLARE_INTERFACE_( IShellFolderBand, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellFolderBand methods */ STDMETHOD( InitializeSFB )( THIS_ IShellFolder *, PCIDLIST_ABSOLUTE ) PURE; STDMETHOD( SetBandInfoSFB )( THIS_ PBANDINFOSFB ) PURE; STDMETHOD( GetBandInfoSFB )( THIS_ PBANDINFOSFB ) PURE; }; #endif /* IDeskBarClient interface */ #if (_WIN32_IE >= 0x0400) #undef INTERFACE #define INTERFACE IDeskBarClient DECLARE_INTERFACE_( IDeskBarClient, IOleWindow ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IOleWindow methods */ STDMETHOD( GetWindow )( THIS_ HWND * ) PURE; STDMETHOD( ContextSensitiveHelp )( THIS_ BOOL ) PURE; /* IDeskBarClient methods */ STDMETHOD( SetDeskBarSite )( THIS_ IUnknown * ) PURE; STDMETHOD( SetModeDBC )( THIS_ DWORD ) PURE; STDMETHOD( UIActivateDBC )( THIS_ DWORD ) PURE; STDMETHOD( GetSize )( THIS_ DWORD, LPRECT ) PURE; }; #endif /* IActiveDesktop interface */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #undef INTERFACE #define INTERFACE IActiveDesktop DECLARE_INTERFACE_( IActiveDesktop, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IActiveDesktop methods */ STDMETHOD( ApplyChanges )( THIS_ DWORD ) PURE; STDMETHOD( GetWallpaper )( THIS_ LPWSTR, UINT, DWORD ) PURE; STDMETHOD( SetWallpaper )( THIS_ LPCWSTR, DWORD ) PURE; STDMETHOD( GetWallpaperOptions )( THIS_ LPWALLPAPEROPT, DWORD ) PURE; STDMETHOD( SetWallpaperOptions )( THIS_ LPCWALLPAPEROPT, DWORD ) PURE; STDMETHOD( GetPattern )( THIS_ LPWSTR, UINT, DWORD ) PURE; STDMETHOD( SetPattern )( THIS_ LPCWSTR, DWORD ) PURE; STDMETHOD( GetDesktopItemOptions )( THIS_ LPCOMPONENTSOPT, DWORD ) PURE; STDMETHOD( SetDesktopItemOptions )( THIS_ LPCCOMPONENTSOPT, DWORD ) PURE; STDMETHOD( AddDesktopItem )( THIS_ LPCCOMPONENT, DWORD ) PURE; STDMETHOD( AddDesktopItemWithUI )( THIS_ HWND, LPCOMPONENT, DWORD ) PURE; STDMETHOD( ModifyDesktopItem )( THIS_ LPCCOMPONENT, DWORD ) PURE; STDMETHOD( RemoveDesktopItem )( THIS_ LPCCOMPONENT, DWORD ) PURE; STDMETHOD( GetDesktopItemCount )( THIS_ LPINT, DWORD ) PURE; STDMETHOD( GetDesktopItem )( THIS_ int, LPCOMPONENT, DWORD ) PURE; STDMETHOD( GetDesktopItemByID )( THIS_ ULONG_PTR, LPCOMPONENT, DWORD ) PURE; STDMETHOD( GenerateDesktopItemHtml )( THIS_ LPCWSTR, LPCOMPONENT, DWORD ) PURE; STDMETHOD( AddUrl )( THIS_ HWND, LPCWSTR, LPCOMPONENT, DWORD ) PURE; STDMETHOD( GetDesktopItemBySource )( THIS_ LPCWSTR, LPCOMPONENT, DWORD ) PURE; }; typedef IActiveDesktop *LPACTIVEDESKTOP; #endif #endif /* IActiveDesktopP interface */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #undef INTERFACE #define INTERFACE IActiveDesktopP DECLARE_INTERFACE_( IActiveDesktopP, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IActiveDesktopP methods */ STDMETHOD( SetSafeMode )( THIS_ DWORD ) PURE; STDMETHOD( EnsureUpdateHTML )( THIS ) PURE; STDMETHOD( SetScheme )( THIS_ LPCWSTR, DWORD ) PURE; STDMETHOD( GetScheme )( THIS_ LPWSTR, DWORD *, DWORD ) PURE; }; typedef IActiveDesktopP *LPACTIVEDESKTOPP; #endif #endif /* IADesktopP2 interface */ #if (_WIN32_IE >= 0x0400) #ifdef _WININET_ #undef INTERFACE #define INTERFACE IADesktopP2 DECLARE_INTERFACE_( IADesktopP2, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IADesktopP2 methods */ STDMETHOD( ReReadWallpaper )( THIS ) PURE; STDMETHOD( GetADObjectFlags )( THIS_ DWORD *, DWORD ) PURE; STDMETHOD( UpdateAllDesktopSubscriptions )( THIS ) PURE; STDMETHOD( MakeDynamicChanges )( THIS_ IOleObject * ) PURE; }; typedef IADesktopP2 *LPADESKTOPP2; #endif #endif /* IColumnProvider interface */ #if (_WIN32_IE >= 0x0500) #undef INTERFACE #define INTERFACE IColumnProvider DECLARE_INTERFACE_( IColumnProvider, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IColumnProvider methods */ STDMETHOD( Initialize )( THIS_ LPCSHCOLUMNINIT ) PURE; STDMETHOD( GetColumnInfo )( THIS_ DWORD, SHCOLUMNINFO * ) PURE; STDMETHOD( GetItemData )( THIS_ LPCSHCOLUMNID, LPCSHCOLUMNDATA, VARIANT * ) PURE; }; #endif /* IShellChangeNotify interface */ #undef INTERFACE #define INTERFACE IShellChangeNotify DECLARE_INTERFACE_( IShellChangeNotify, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellChangeNotify methods */ STDMETHOD( OnChange )( THIS_ LONG, PCIDLIST_ABSOLUTE, PCIDLIST_ABSOLUTE ) PURE; }; /* IQueryInfo interface */ #undef INTERFACE #define INTERFACE IQueryInfo DECLARE_INTERFACE_( IQueryInfo, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IQueryInfo methods */ STDMETHOD( GetInfoTip )( THIS_ DWORD, WCHAR ** ) PURE; STDMETHOD( GetInfoFlags )( THIS_ DWORD * ) PURE; }; /* IDefViewFrame interface */ #if (NTDDI_VERSION >= 0x05000000) && (NTDDI_VERSION < 0x06000000) #undef INTERFACE #define INTERFACE IDefViewFrame DECLARE_INTERFACE_( IDefViewFrame, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IDefViewFrame methods */ STDMETHOD( GetWindowLV )( THIS_ HWND * ) PURE; STDMETHOD( ReleaseWindowLV )( THIS ) PURE; STDMETHOD( GetShellFolder )( THIS_ IShellFolder ** ) PURE; }; #endif /* IDocViewSite interface */ #undef INTERFACE #define INTERFACE IDocViewSite DECLARE_INTERFACE_( IDocViewSite, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IDocViewSite methods */ STDMETHOD( OnSetTitle )( THIS_ VARIANTARG * ) PURE; }; /* IInitializeObject interface */ #undef INTERFACE #define INTERFACE IInitializeObject DECLARE_INTERFACE_( IInitializeObject, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IInitializeObject methods */ STDMETHOD( Initialize )( THIS ) PURE; }; /* IBanneredBar interface */ #undef INTERFACE #define INTERFACE IBanneredBar DECLARE_INTERFACE_( IBanneredBar, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IBanneredBar methods */ STDMETHOD( SetIconSize )( THIS_ DWORD ) PURE; STDMETHOD( GetIconSize )( THIS_ DWORD * ) PURE; STDMETHOD( SetBitmap )( THIS_ HBITMAP ) PURE; STDMETHOD( GetBitmap )( THIS_ HBITMAP * ) PURE; }; /* IShellFolderViewCB interface */ #undef INTERFACE #define INTERFACE IShellFolderViewCB DECLARE_INTERFACE_( IShellFolderViewCB, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellFolderViewCB methods */ STDMETHOD( MessageSFVCB )( THIS_ UINT, WPARAM, LPARAM ) PURE; }; /* IShellFolderView interface */ #undef INTERFACE #define INTERFACE IShellFolderView DECLARE_INTERFACE_( IShellFolderView, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IShellFolderView methods */ STDMETHOD( Rearrange )( THIS_ LPARAM ) PURE; STDMETHOD( GetArrangeParam )( THIS_ LPARAM * ) PURE; STDMETHOD( ArrangeGrid )( THIS ) PURE; STDMETHOD( AutoArrange )( THIS ) PURE; STDMETHOD( GetAutoArrange )( THIS ) PURE; STDMETHOD( AddObject )( THIS_ PUITEMID_CHILD, UINT * ) PURE; STDMETHOD( GetObject )( THIS_ PITEMID_CHILD *, UINT ) PURE; STDMETHOD( RemoveObject )( THIS_ PUITEMID_CHILD, UINT * ) PURE; STDMETHOD( GetObjectCount )( THIS_ UINT * ) PURE; STDMETHOD( SetObjectCount )( THIS_ UINT, UINT ) PURE; STDMETHOD( UpdateObject )( THIS_ PUITEMID_CHILD, PUITEMID_CHILD, UINT * ) PURE; STDMETHOD( RefreshObject )( THIS_ PUITEMID_CHILD, UINT * ) PURE; STDMETHOD( SetRedraw )( THIS_ BOOL ) PURE; STDMETHOD( GetSelectedCount )( THIS_ UINT * ) PURE; STDMETHOD( GetSelectedObjects )( THIS_ PCUITEMID_CHILD **, UINT * ) PURE; STDMETHOD( IsDropOnSource )( THIS_ IDropTarget * ) PURE; STDMETHOD( GetDragPoint )( THIS_ POINT * ) PURE; STDMETHOD( GetDropPoint )( THIS_ POINT * ) PURE; STDMETHOD( MoveIcons )( THIS_ IDataObject * ) PURE; STDMETHOD( SetItemPos )( THIS_ PCUITEMID_CHILD, POINT * ) PURE; STDMETHOD( IsBkDropTarget )( THIS_ IDropTarget * ) PURE; STDMETHOD( SetClipboard )( THIS_ BOOL ) PURE; STDMETHOD( SetPoints )( THIS_ IDataObject * ) PURE; STDMETHOD( GetItemSpacing )( THIS_ ITEMSPACING * ) PURE; STDMETHOD( SetCallback )( THIS_ IShellFolderViewCB *, IShellFolderViewCB ** ) PURE; STDMETHOD( Select )( THIS_ UINT ) PURE; STDMETHOD( QuerySupport )( THIS_ UINT * ) PURE; STDMETHOD( SetAutomationObject )( THIS_ IDispatch * ) PURE; }; /* INamedPropertyBag interface */ #undef INTERFACE #define INTERFACE INamedPropertyBag DECLARE_INTERFACE_( INamedPropertyBag, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* INamedPropertyBag methods */ STDMETHOD( ReadPropertyNPB )( THIS_ LPCWSTR, LPCWSTR, PROPVARIANT * ) PURE; STDMETHOD( WritePropertyNPB )( THIS_ LPCWSTR, LPCWSTR, PROPVARIANT * ) PURE; STDMETHOD( RemovePropertyNPB )( THIS_ LPCWSTR, LPCWSTR ) PURE; }; /* Functions in SHELL32.DLL */ SHSTDAPI CDefFolderMenu_Create2( PCIDLIST_ABSOLUTE, HWND, UINT, PCUITEMID_CHILD_ARRAY, IShellFolder *, LPFNDFMCALLBACK, UINT, const HKEY *, IContextMenu ** ); SHSTDAPI CIDLData_CreateFromIDArray( PCIDLIST_ABSOLUTE, UINT, PCUIDLIST_RELATIVE_ARRAY, IDataObject ** ); SHSTDAPI_( BOOL ) DAD_AutoScroll( HWND, AUTO_SCROLL_DATA *, const POINT * ); SHSTDAPI_( BOOL ) DAD_DragEnterEx( HWND, POINT ); SHSTDAPI_( BOOL ) DAD_DragEnterEx2( HWND, POINT, IDataObject * ); SHSTDAPI_( BOOL ) DAD_DragLeave( void ); SHSTDAPI_( BOOL ) DAD_DragMove( POINT ); SHSTDAPI_( BOOL ) DAD_SetDragImage( HIMAGELIST, POINT * ); SHSTDAPI_( BOOL ) DAD_ShowDragImage( BOOL ); SHSTDAPI_( int ) DriveType( int ); SHSTDAPI_( BOOL ) GetFileNameFromBrowse( HWND, LPWSTR, UINT, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR ); SHSTDAPI_( PIDLIST_RELATIVE ) ILAppendID( PIDLIST_RELATIVE, LPCSHITEMID, BOOL ); SHSTDAPI_( PIDLIST_RELATIVE ) ILClone( PCUIDLIST_RELATIVE ); SHSTDAPI_( PITEMID_CHILD ) ILCloneFirst( PCUIDLIST_RELATIVE ); SHSTDAPI_( PIDLIST_ABSOLUTE ) ILCombine( PCIDLIST_ABSOLUTE, PCUIDLIST_RELATIVE ); SHSTDAPI_( PUIDLIST_RELATIVE ) ILFindChild( PCIDLIST_ABSOLUTE, PCIDLIST_ABSOLUTE ); SHSTDAPI_( PUITEMID_CHILD ) ILFindLastID( PCUIDLIST_RELATIVE ); SHSTDAPI_( void ) ILFree( PIDLIST_RELATIVE ); SHSTDAPI_( PUIDLIST_RELATIVE ) ILGetNext( PCUIDLIST_RELATIVE ); SHSTDAPI_( UINT ) ILGetSize( PCUIDLIST_RELATIVE ); SHSTDAPI_( BOOL ) ILIsEqual( PCIDLIST_ABSOLUTE, PCIDLIST_ABSOLUTE ); SHSTDAPI_( BOOL ) ILIsParent( PCIDLIST_ABSOLUTE, PCIDLIST_ABSOLUTE, BOOL ); SHSTDAPI ILLoadFromStream( IStream *, PIDLIST_RELATIVE * ); SHSTDAPI_( BOOL ) ILRemoveLastID( PUIDLIST_RELATIVE ); SHSTDAPI ILSaveToStream( IStream *, PCUIDLIST_RELATIVE ); SHSTDAPI_( int ) IsNetDrive( int ); SHSTDAPI_( BOOL ) IsUserAnAdmin( void ); SHSTDAPI_( IStream * ) OpenRegStream( HKEY, LPCWSTR, LPCWSTR, DWORD ); SHSTDAPI_( int ) PathCleanupSpec( LPCWSTR, LPWSTR ); SHSTDAPI_( void ) PathGetShortPath( LPWSTR ); SHSTDAPI_( BOOL ) PathIsExe( LPCWSTR ); SHSTDAPI_( BOOL ) PathIsSlowA( LPCSTR, DWORD ); SHSTDAPI_( BOOL ) PathIsSlowW( LPCWSTR, DWORD ); SHSTDAPI_( BOOL ) PathMakeUniqueName( LPWSTR, UINT, LPCWSTR, LPCWSTR, LPCWSTR ); SHSTDAPI_( void ) PathQualify( LPWSTR ); SHSTDAPI_( int ) PathResolve( LPWSTR, PZPCWSTR, UINT ); SHSTDAPI_( BOOL ) PathYetAnotherMakeUniqueName( LPWSTR, LPCWSTR, LPCWSTR, LPCWSTR ); SHSTDAPI_( int ) PickIconDlg( HWND, LPWSTR, UINT, int * ); SHSTDAPI_( HANDLE ) PifMgr_CloseProperties( HANDLE, UINT ); SHSTDAPI_( int ) PifMgr_GetProperties( HANDLE, LPCSTR, void *, int, UINT ); SHSTDAPI_( HANDLE ) PifMgr_OpenProperties( LPCWSTR, LPCWSTR, UINT, UINT ); SHSTDAPI_( int ) PifMgr_SetProperties( HANDLE, LPCSTR, const void *, int, UINT ); SHSTDAPI_( BOOL ) ReadCabinetState( CABINETSTATE *, int ); SHSTDAPI_( int ) RealDriveType( int, BOOL ); SHSTDAPI_( int ) RestartDialog( HWND, LPCWSTR, DWORD ); SHSTDAPI_( UINT ) SHAddFromPropSheetExtArray( HPSXA, LPFNADDPROPSHEETPAGE, LPARAM ); SHSTDAPI_( void ) SHAddToRecentDocs( UINT, LPCVOID ); SHSTDAPI_( void * ) SHAlloc( SIZE_T ); SHSTDAPI SHBindToParent( PCIDLIST_ABSOLUTE, REFIID, void **, PCUITEMID_CHILD * ); SHSTDAPI_( PIDLIST_ABSOLUTE ) SHBrowseForFolderA( LPBROWSEINFOA ); SHSTDAPI_( PIDLIST_ABSOLUTE ) SHBrowseForFolderW( LPBROWSEINFOW ); SHSTDAPI SHCLSIDFromString( LPCWSTR, CLSID * ); SHSTDAPI SHCoCreateInstance( LPCWSTR, const CLSID *, IUnknown *, REFIID, void ** ); SHSTDAPI_( HANDLE ) SHChangeNotification_Lock( HANDLE, DWORD, PIDLIST_ABSOLUTE **, LONG * ); SHSTDAPI_( BOOL ) SHChangeNotification_Unlock( HANDLE ); SHSTDAPI_( void ) SHChangeNotify( LONG, UINT, LPCVOID, LPCVOID ); SHSTDAPI_( BOOL ) SHChangeNotifyDeregister( unsigned long ); SHSTDAPI_( ULONG ) SHChangeNotifyRegister( HWND, int, LONG, UINT, int, const SHChangeNotifyEntry * ); SHSTDAPI_( PIDLIST_ABSOLUTE ) SHCloneSpecialIDList( HWND, int, BOOL ); SHSTDAPI_( int ) SHCreateDirectory( HWND, LPCWSTR ); SHSTDAPI_( int ) SHCreateDirectoryExA( HWND, LPCSTR, const SECURITY_ATTRIBUTES * ); SHSTDAPI_( int ) SHCreateDirectoryExW( HWND, LPCWSTR, const SECURITY_ATTRIBUTES * ); SHSTDAPI_( HPSXA ) SHCreatePropSheetExtArray( HKEY, LPCWSTR, UINT ); SHSTDAPI SHCreateQueryCancelAutoPlayMoniker( IMoniker ** ); SHSTDAPI SHCreateShellFolderView( const SFV_CREATE *, IShellView ** ); SHSTDAPI SHCreateShellFolderViewEx( LPCSFV, IShellView ** ); SHSTDAPI SHCreateStdEnumFmtEtc( UINT, const FORMATETC [], IEnumFORMATETC ** ); SHSTDAPI SHDefExtractIconA( LPCSTR, int, UINT, HICON *, HICON *, UINT ); SHSTDAPI SHDefExtractIconW( LPCWSTR, int, UINT, HICON *, HICON *, UINT ); SHSTDAPI_( void ) SHDestroyPropSheetExtArray( HPSXA ); SHSTDAPI SHDoDragDrop( HWND, IDataObject *, IDropSource *, DWORD, DWORD * ); SHSTDAPI_( BOOL ) SHFindFiles( PCIDLIST_ABSOLUTE, PCIDLIST_ABSOLUTE ); SHSTDAPI_( IContextMenu * ) SHFind_InitMenuPopup( HMENU, HWND, UINT, UINT ); SHSTDAPI SHFormatDrive( HWND, UINT, UINT, UINT ); SHSTDAPI_( void ) SHFree( void * ); SHSTDAPI SHGetDataFromIDListA( IShellFolder *, PCUITEMID_CHILD, int, void *, int ); SHSTDAPI SHGetDataFromIDListW( IShellFolder *, PCUITEMID_CHILD, int, void *, int ); SHSTDAPI SHGetDesktopFolder( IShellFolder ** ); SHSTDAPI_( int ) SHGetIconOverlayIndexA( LPCSTR, int ); SHSTDAPI_( int ) SHGetIconOverlayIndexW( LPCWSTR, int ); SHSTDAPI SHGetInstanceExplorer( IUnknown ** ); SHSTDAPI SHGetMalloc( IMalloc ** ); SHSTDAPI_( BOOL ) SHGetPathFromIDListA( PCIDLIST_ABSOLUTE, LPSTR ); SHSTDAPI_( BOOL ) SHGetPathFromIDListW( PCIDLIST_ABSOLUTE, LPWSTR ); SHSTDAPI_( void ) SHGetSetSettings( LPSHELLSTATE, DWORD, BOOL ); SHSTDAPI_( void ) SHGetSettings( SHELLFLAGSTATE *, DWORD ); SHSTDAPI SHGetSpecialFolderLocation( HWND, int, PIDLIST_ABSOLUTE * ); SHSTDAPI_( BOOL ) SHGetSpecialFolderPathA( HWND, LPSTR, int, BOOL ); SHSTDAPI_( BOOL ) SHGetSpecialFolderPathW( HWND, LPWSTR, int, BOOL ); SHSTDAPI SHILCreateFromPath( LPCWSTR, PIDLIST_ABSOLUTE *, DWORD * ); SHSTDAPI SHLoadInProc( REFCLSID ); SHSTDAPI_( int ) SHMapPIDLToSystemImageListIndex( IShellFolder *, PCUITEMID_CHILD, int * ); SHSTDAPI_( BOOL ) SHObjectProperties( HWND, DWORD, PCWSTR, PCWSTR ); SHSTDAPI_( BOOL ) SHOpenPropSheetW( LPCWSTR, HKEY [], UINT, const CLSID *, IDataObject *, IShellBrowser *, LPCWSTR ); SHSTDAPI SHPathPrepareForWriteA( HWND, IUnknown *, LPCSTR, DWORD ); SHSTDAPI SHPathPrepareForWriteW( HWND, IUnknown *, LPCWSTR, DWORD ); SHSTDAPI SHPropStgCreate( IPropertySetStorage *, REFFMTID, const CLSID *, DWORD, DWORD, DWORD, IPropertyStorage **, UINT * ); SHSTDAPI SHPropStgReadMultiple( IPropertyStorage *, UINT, ULONG, const PROPSPEC [], PROPVARIANT [] ); SHSTDAPI SHPropStgWriteMultiple( IPropertyStorage *, UINT *, ULONG, const PROPSPEC [], PROPVARIANT [], PROPID ); SHSTDAPI_( UINT ) SHReplaceFromPropSheetExtArray( HPSXA, UINT, LPFNADDPROPSHEETPAGE, LPARAM ); SHSTDAPI_( DWORD ) SHRestricted( RESTRICTIONS ); SHSTDAPI_( BOOL ) SHRunControlPanel( LPCWSTR, HWND ); SHSTDAPI_( void ) SHSetInstanceExplorer( IUnknown * ); SHSTDAPI_( LRESULT ) SHShellFolderView_Message( HWND, UINT, LPARAM ); SHSTDAPI SHStartNetConnectionDialogW( HWND, LPCWSTR, DWORD ); SHSTDAPI_( BOOL ) SHValidateUNC( HWND, LPWSTR, UINT ); SHSTDAPI_( BOOL ) Shell_GetImageLists( HIMAGELIST *, HIMAGELIST * ); SHSTDAPI_( UINT ) Shell_MergeMenus( HMENU, HMENU, UINT, UINT, UINT, ULONG ); SHSTDAPI_( BOOL ) SignalFileOpen( PCIDLIST_ABSOLUTE ); SHSTDAPI_( BOOL ) Win32DeleteFile( LPCWSTR ); SHSTDAPI_( BOOL ) WriteCabinetState( CABINETSTATE * ); #if (_WIN32_IE >= 0x0400) SHSTDAPI_( PIDLIST_ABSOLUTE ) ILCreateFromPathA( LPCSTR ); SHSTDAPI_( PIDLIST_ABSOLUTE ) ILCreateFromPathW( LPCWSTR ); SHSTDAPI SHGetRealIDL( IShellFolder *, PCUITEMID_CHILD, PITEMID_CHILD * ); #endif #if (NTDDI_VERSION < 0x06000000) SHSTDAPI_( LONG ) PathProcessCommand( LPCWSTR, LPWSTR, int, DWORD ); SHSTDAPI SHLoadOLE( LPARAM ); #endif #if (NTDDI_VERSION >= 0x05000000) SHSTDAPI_( void ) SHFlushSFCache( void ); SHSTDAPI SHGetFolderLocation( HWND, int, HANDLE, DWORD, PIDLIST_ABSOLUTE * ); SHSTDAPI_( int ) SHHandleUpdateImage( PCIDLIST_ABSOLUTE ); SHSTDAPI SHMultiFileProperties( IDataObject *, DWORD ); SHSTDAPI SHSetFolderPathA( int, HANDLE, DWORD, LPCSTR ); SHSTDAPI SHSetFolderPathW( int, HANDLE, DWORD, LPCWSTR ); SHSTDAPI_( void ) SHUpdateImageA( LPCSTR, int, UINT, int ); SHSTDAPI_( void ) SHUpdateImageW( LPCWSTR, int, UINT, int ); #endif #if (NTDDI_VERSION >= 0x05010000) SHSTDAPI_( int ) RestartDialogEx( HWND, LPCWSTR, DWORD, DWORD ); SHSTDAPI SHCreateFileExtractIconW( LPCWSTR, DWORD, REFIID, void ** ); SHSTDAPI SHCreateShellItem( PCIDLIST_ABSOLUTE, IShellFolder *, PCUITEMID_CHILD, IShellItem ** ); SHSTDAPI SHGetAttributesFromDataObject( IDataObject *, DWORD, DWORD *, UINT * ); SHSTDAPI SHGetFolderPathAndSubDirA( HWND, int, HANDLE, DWORD, LPCSTR, LPSTR ); SHSTDAPI SHGetFolderPathAndSubDirW( HWND, int, HANDLE, DWORD, LPCWSTR, LPWSTR ); SHSTDAPI SHLimitInputEdit( HWND, IShellFolder * ); SHSTDAPI SHOpenFolderAndSelectItems( PCIDLIST_ABSOLUTE, UINT, PCUITEMID_CHILD_ARRAY, DWORD ); SHSTDAPI SHParseDisplayName( PCWSTR, IBindCtx *, PIDLIST_ABSOLUTE *, SFGAOF, SFGAOF * ); #endif #if (NTDDI_VERSION >= 0x06000000) SHSTDAPI AssocGetDetailsOfPropKey( IShellFolder *, PCUITEMID_CHILD, const PROPERTYKEY *, VARIANT *, BOOL * ); SHSTDAPI ILLoadFromStreamEx( IStream *, PIDLIST_RELATIVE * ); SHSTDAPI SHBindToFolderIDListParent( IShellFolder *, PCUIDLIST_RELATIVE, REFIID, void **, PCUITEMID_CHILD * ); SHSTDAPI SHBindToFolderIDListParentEx( IShellFolder *, PCUIDLIST_RELATIVE, IBindCtx *, REFIID, void **, PCUITEMID_CHILD * ); SHSTDAPI SHBindToObject( IShellFolder *, PCUIDLIST_RELATIVE, IBindCtx *, REFIID, void ** ); SHSTDAPI_( void ) SHChangeNotifyRegisterThread( SCNRT_STATUS ); SHSTDAPI SHCreateDataObject( PCIDLIST_ABSOLUTE, UINT, PCUITEMID_CHILD_ARRAY, IDataObject *, REFIID, void ** ); SHSTDAPI SHCreateDefaultContextMenu( const DEFCONTEXTMENU *, REFIID, void ** ); SHSTDAPI SHGetKnownFolderIDList( REFKNOWNFOLDERID, DWORD, HANDLE, PIDLIST_ABSOLUTE * ); SHSTDAPI SHGetKnownFolderPath( REFKNOWNFOLDERID, DWORD, HANDLE, PWSTR * ); SHSTDAPI_( BOOL ) SHGetPathFromIDListEx( PCIDLIST_ABSOLUTE, PWSTR, DWORD, GPFIDL_FLAGS ); SHSTDAPI SHGetSetFolderCustomSettings( LPSHFOLDERCUSTOMSETTINGS, LPCWSTR, DWORD ); SHSTDAPI SHOpenWithDialog( HWND, const OPENASINFO * ); SHSTDAPI SHSetKnownFolderPath( REFKNOWNFOLDERID, DWORD, HANDLE, PCWSTR ); SHSTDAPI_( int ) Shell_GetCachedImageIndexA( LPCSTR, int, UINT ); SHSTDAPI_( int ) Shell_GetCachedImageIndexW( LPCWSTR, int, UINT ); #endif #if (NTDDI_VERSION >= 0x06010000) SHSTDAPI SHGetKnownFolderItem( REFKNOWNFOLDERID, KNOWN_FOLDER_FLAG, HANDLE, REFIID, void ** ); SHSTDAPI StgMakeUniqueName( IStorage *, PCWSTR, DWORD, REFIID, void ** ); #endif /* Functions in SHDOCVW.DLL */ #if (_WIN32_IE >= 0x0600) SHDOCAPI DoPrivacyDlg( HWND, LPCWSTR, IEnumPrivacyRecords *, BOOL ); SHDOCAPI_( BOOL ) ImportPrivacySettings( LPCWSTR, BOOL *, BOOL * ); #endif /* Functions in SHFOLDER.DLL */ #if (NTDDI_VERSION >= 0x05000000) SHFOLDERAPI SHGetFolderPathA( HWND, int, HANDLE, DWORD, LPSTR ); SHFOLDERAPI SHGetFolderPathW( HWND, int, HANDLE, DWORD, LPWSTR ); #endif /* Functions implemented as macros */ #define ShellFolderView_ReArrange( x, p ) \ (BOOL)SHShellFolderView_Message( x, SFVM_REARRANGE, p ) #define ShellFolderView_AddObject( x, p ) \ (LPARAM)SHShellFolderView_Message( x, SFVM_ADDOBJECT, (LPARAM)(p) ) #define ShellFolderView_RemoveObject( x, p ) \ (LPARAM)SHShellFolderView_Message( x, SFVM_REMOVEOBJECT, (LPARAM)(p) ) #define ShellFolderView_UpdateObject( x, p ) \ (LPARAM)SHShellFolderView_Message( x, SFVM_UPDATEOBJECT, (LPARAM)(p) ) #define ShellFolderView_GetSelectedObjects( x, p ) \ (LPARAM)SHShellFolderView_Message( x, SFVM_GETSELECTEDOBJECTS, (LPARAM)(p) ) #define ShellFolderView_SetItemPos( x, p1, p2, p3 ) \ { \ SFV_SETITEMPOS _params; \ SHShellFolderView_Message( x, SFVM_SETITEMPOS, (LPARAM)(LPSFV_SETITEMPOS)&_params ); \ } #define ShellFolderView_SetClipboard( x, p ) \ (void)SHShellFolderView_Message( x, SFVM_SETCLIPBOARD, (LPARAM)(DWORD)(p) ) #define ShellFolderView_SetPoints( x, p ) \ (void)SHShellFolderView_Message( x, SFVM_SETPOINTS, (LPARAM)(p) ) /* Map generic function names to the appropriate ANSI or Unicode version. */ #ifdef UNICODE #define PathIsSlow PathIsSlowW #define SHBrowseForFolder SHBrowseForFolderW #define SHCreateDirectoryEx SHCreateDirectoryExW #define SHDefExtractIcon SHDefExtractIconW #define SHGetDataFromIDList SHGetDataFromIDListW #define SHGetIconOverlayIndex SHGetIconOverlayIndexW #define SHGetPathFromIDList SHGetPathFromIDListW #define SHGetSpecialFolderPath SHGetSpecialFolderPathW #define SHOpenPropSheet SHOpenPropSheetW #define SHPathPrepareForWrite SHPathPrepareForWriteW #define SHStartNetConnectionDialog SHStartNetConnectionDialogW #define Shell_GetCachedImageIndex Shell_GetCachedImageIndexW #if (_WIN32_IE >= 0x0400) #define ILCreateFromPath ILCreateFromPathW #endif #if (NTDDI_VERSION >= 0x05000000) #define SHGetFolderPath SHGetFolderPathW #define SHSetFolderPath SHSetFolderPathW #define SHUpdateImage SHUpdateImageW #endif #if (NTDDI_VERSION >= 0x05010000) #define SHCreateFileExtractIcon SHCreateFileExtractIconW #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW #endif #else #define PathIsSlow PathIsSlowA #define SHBrowseForFolder SHBrowseForFolderA #define SHCreateDirectoryEx SHCreateDirectoryExA #define SHDefExtractIcon SHDefExtractIconA #define SHGetDataFromIDList SHGetDataFromIDListA #define SHGetIconOverlayIndex SHGetIconOverlayIndexA #define SHGetPathFromIDList SHGetPathFromIDListA #define SHGetSpecialFolderPath SHGetSpecialFolderPathA #define SHPathPrepareForWrite SHPathPrepareForWriteA #define Shell_GetCachedImageIndex Shell_GetCachedImageIndexA #if (_WIN32_IE >= 0x0400) #define ILCreateFromPath ILCreateFromPathA #endif #if (NTDDI_VERSION >= 0x05000000) #define SHGetFolderPath SHGetFolderPathA #define SHSetFolderPath SHSetFolderPathA #define SHUpdateImage SHUpdateImageA #endif #if (NTDDI_VERSION >= 0x05010000) #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA #endif #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _SHLOBJ_H_ */