Browse Source

* added some constants

git-svn-id: trunk@10120 -
marco 17 years ago
parent
commit
8ba47d21d4
1 changed files with 912 additions and 1 deletions
  1. 912 1
      packages/winunits-base/src/shellapi.pp

+ 912 - 1
packages/winunits-base/src/shellapi.pp

@@ -108,7 +108,918 @@ Const
     SHCOLSTATE_HIDDEN 	        = $100;
     SHCOLSTATE_PREFER_VARCMP	= $200;
 
-Type   
+    GIL_OPENICON     = $0001;      // allows containers to specify an "open" look
+    GIL_FORSHELL     = $0002;      // icon is to be displayed in a ShellFolder
+    GIL_ASYNC        = $0020;      // this is an async extract, return E_PENDING
+    GIL_DEFAULTICON  = $0040;      // get the default icon location if the final one takes too long to get
+    GIL_FORSHORTCUT  = $0080;      // the icon is for a shortcut to the object
+
+// GetIconLocation() return flags
+
+    GIL_SIMULATEDOC  = $0001;      // simulate this document icon for this
+    GIL_PERINSTANCE  = $0002;      // icons from this class are per instance (each file has its own)
+    GIL_PERCLASS     = $0004;      // icons from this class per class (shared for all files of this type)
+    GIL_NOTFILENAME  = $0008;      // location is not a filename, must call ::ExtractIcon
+    GIL_DONTCACHE    = $0010;      // this icon should not be cached
+
+// QueryContextMenu uFlags
+    CMF_NORMAL              = $00000000;
+    CMF_DEFAULTONLY         = $00000001;
+    CMF_VERBSONLY           = $00000002;
+    CMF_EXPLORE             = $00000004;
+    CMF_NOVERBS             = $00000008;
+    CMF_CANRENAME           = $00000010;
+    CMF_NODEFAULT           = $00000020;
+    CMF_INCLUDESTATIC       = $00000040;
+    CMF_EXTENDEDVERBS       = $00000100;      // rarely used verbs
+    CMF_RESERVED            = $ffff0000;      // View specific
+
+// GetCommandString uFlags
+    GCS_VERBA        = $00000000;     // canonical verb
+    GCS_HELPTEXTA    = $00000001;     // help text (for status bar)
+    GCS_VALIDATEA    = $00000002;     // validate command exists
+    GCS_VERBW        = $00000004;     // canonical verb (unicode)
+    GCS_HELPTEXTW    = $00000005;     // help text (unicode version)
+    GCS_VALIDATEW    = $00000006;     // validate command exists (unicode)
+    GCS_UNICODE      = $00000004;     // for bit testing - Unicode string
+
+{$ifdef UNICODE}
+    GCS_VERB        = GCS_VERBW;
+    GCS_HELPTEXT    = GCS_HELPTEXTW;
+    GCS_VALIDATE    = GCS_VALIDATEW;
+{$else}
+    GCS_VERB        = GCS_VERBA;
+    GCS_HELPTEXT    = GCS_HELPTEXTA;
+    GCS_VALIDATE    = GCS_VALIDATEA;
+{$endif}
+
+    SLDF_HAS_ID_LIST         = $00000001;   // Shell link saved with ID list
+    SLDF_HAS_LINK_INFO       = $00000002;   // Shell link saved with LinkInfo
+    SLDF_HAS_NAME            = $00000004;
+    SLDF_HAS_RELPATH         = $00000008;
+    SLDF_HAS_WORKINGDIR      = $00000010;
+    SLDF_HAS_ARGS            = $00000020;
+    SLDF_HAS_ICONLOCATION    = $00000040;
+    SLDF_UNICODE             = $00000080;   // the strings are unicode
+    SLDF_FORCE_NO_LINKINFO   = $00000100;   // don't create a LINKINFO (make a dumb link)
+    SLDF_HAS_EXP_SZ          = $00000200;   // the link contains expandable env strings
+    SLDF_RUN_IN_SEPARATE     = $00000400;   // Run the 16-bit target exe in a separate VDM/WOW
+    SLDF_HAS_LOGO3ID         = $00000800;   // this link is a special Logo3/MSICD link
+    SLDF_HAS_DARWINID        = $00001000;   // this link is a special Darwin link
+    SLDF_RUNAS_USER          = $00002000;   // Run this link as a different user
+    SLDF_HAS_EXP_ICON_SZ     = $00004000;   // contains expandable env string for icon path
+    SLDF_NO_PIDL_ALIAS       = $00008000;   // don't ever resolve to a logical location
+    SLDF_FORCE_UNCNAME       = $00010000;   // make GetPath() prefer the UNC name to the local name
+    SLDF_RUN_WITH_SHIMLAYER  = $00020000;   // Launch the target of this link w/ shim layer active
+    SLDF_RESERVED            = $80000000;   // Reserved-- so we can use the low word as an index value in the future
+
+// Define File View Show Info Flags.
+    FVSIF_RECT      = $00000001;      // The rect variable has valid data.
+    FVSIF_PINNED    = $00000002;      // We should Initialize pinned
+    FVSIF_NEWFAILED = $08000000;      // The new file passed back failed
+   				    // to be viewed.
+    FVSIF_NEWFILE   = dword($80000000);      // A new file to view has been returned
+    FVSIF_CANVIEWIT = $40000000;      // The viewer can view it.
+
+    FCIDM_SHVIEWFIRST           = $0000;
+    FCIDM_SHVIEWLAST            = $7fff;
+    FCIDM_BROWSERFIRST          = $a000;
+    FCIDM_BROWSERLAST           = $bf00;
+    FCIDM_GLOBALFIRST           = $8000;
+    FCIDM_GLOBALLAST            = $9fff;
+
+//
+// Global submenu IDs and separator IDs
+//
+    FCIDM_MENU_FILE             = (FCIDM_GLOBALFIRST+$0000);
+    FCIDM_MENU_EDIT             = (FCIDM_GLOBALFIRST+$0040);
+    FCIDM_MENU_VIEW             = (FCIDM_GLOBALFIRST+$0080);
+    FCIDM_MENU_VIEW_SEP_OPTIONS = (FCIDM_GLOBALFIRST+$0081);
+    FCIDM_MENU_TOOLS            = (FCIDM_GLOBALFIRST+$00c0); // for Win9x compat
+    FCIDM_MENU_TOOLS_SEP_GOTO   = (FCIDM_GLOBALFIRST+$00c1); // for Win9x compat
+    FCIDM_MENU_HELP             = (FCIDM_GLOBALFIRST+$0100);
+    FCIDM_MENU_FIND             = (FCIDM_GLOBALFIRST+$0140);
+    FCIDM_MENU_EXPLORE          = (FCIDM_GLOBALFIRST+$0150);
+    FCIDM_MENU_FAVORITES        = (FCIDM_GLOBALFIRST+$0170);
+
+    PANE_NONE        = -1;
+    PANE_ZONE        = 1;
+    PANE_OFFLINE     = 2;
+    PANE_PRINTER     = 3;
+    PANE_SSL         = 4;
+    PANE_NAVIGATION  = 5;
+    PANE_PROGRESS    = 6;
+    PANE_PRIVACY     = 7;
+    CDBOSC_SETFOCUS         = $00000000;
+    CDBOSC_KILLFOCUS        = $00000001;
+    CDBOSC_SELCHANGE        = $00000002;
+    CDBOSC_RENAME           = $00000003;
+    CDBOSC_STATECHANGE      = $00000004;
+    CDB2N_CONTEXTMENU_DONE  = $00000001;
+    CDB2N_CONTEXTMENU_START = $00000002;
+
+//GetViewFlags
+    CDB2GVF_SHOWALLFILES        = $00000001;
+
+    CSIDL_DESKTOP                   = $0000;        // <desktop>
+    CSIDL_INTERNET                  = $0001;        // Internet Explorer (icon on desktop)
+    CSIDL_PROGRAMS                  = $0002;        // Start Menu\Programs
+    CSIDL_CONTROLS                  = $0003;        // My Computer\Control Panel
+    CSIDL_PRINTERS                  = $0004;        // My Computer\Printers
+    CSIDL_PERSONAL                  = $0005;        // My Documents
+    CSIDL_FAVORITES                 = $0006;        // <user name>\Favorites
+    CSIDL_STARTUP                   = $0007;        // Start Menu\Programs\Startup
+    CSIDL_RECENT                    = $0008;        // <user name>\Recent
+    CSIDL_SENDTO                    = $0009;        // <user name>\SendTo
+    CSIDL_BITBUCKET                 = $000a;        // <desktop>\Recycle Bin
+    CSIDL_STARTMENU                 = $000b;        // <user name>\Start Menu
+    CSIDL_MYDOCUMENTS               = $000c;        // logical "My Documents" desktop icon
+    CSIDL_MYMUSIC                   = $000d;        // "My Music" folder
+    CSIDL_MYVIDEO                   = $000e;        // "My Videos" folder
+    CSIDL_DESKTOPDIRECTORY          = $0010;        // <user name>\Desktop
+    CSIDL_DRIVES                    = $0011;        // My Computer
+    CSIDL_NETWORK                   = $0012;        // Network Neighborhood (My Network Places)
+    CSIDL_NETHOOD                   = $0013;        // <user name>\nethood
+    CSIDL_FONTS                     = $0014;        // windows\fonts
+    CSIDL_TEMPLATES                 = $0015;
+    CSIDL_COMMON_STARTMENU          = $0016;        // All Users\Start Menu
+    CSIDL_COMMON_PROGRAMS           = $0017;        // All Users\Start Menu\Programs
+    CSIDL_COMMON_STARTUP            = $0018;        // All Users\Startup
+    CSIDL_COMMON_DESKTOPDIRECTORY   = $0019;        // All Users\Desktop
+    CSIDL_APPDATA                   = $001a;        // <user name>\Application Data
+    CSIDL_PRINTHOOD                 = $001b;        // <user name>\PrintHood
+    CSIDL_LOCAL_APPDATA             = $001c;        // <user name>\Local Settings\Applicaiton Data (non roaming)
+    CSIDL_ALTSTARTUP                = $001d;        // non localized startup
+    CSIDL_COMMON_ALTSTARTUP         = $001e;        // non localized common startup
+    CSIDL_COMMON_FAVORITES          = $001f;
+    CSIDL_INTERNET_CACHE            = $0020;
+    CSIDL_COOKIES                   = $0021;
+    CSIDL_HISTORY                   = $0022;
+    CSIDL_COMMON_APPDATA            = $0023;        // All Users\Application Data
+    CSIDL_WINDOWS                   = $0024;        // GetWindowsDirectory()
+    CSIDL_SYSTEM                    = $0025;        // GetSystemDirectory()
+    CSIDL_PROGRAM_FILES             = $0026;        // C:\Program Files
+    CSIDL_MYPICTURES                = $0027;        // C:\Program Files\My Pictures
+    CSIDL_PROFILE                   = $0028;        // USERPROFILE
+    CSIDL_SYSTEMX86                 = $0029;        // x86 system directory on RISC
+    CSIDL_PROGRAM_FILESX86          = $002a;        // x86 C:\Program Files on RISC
+    CSIDL_PROGRAM_FILES_COMMON      = $002b;        // C:\Program Files\Common
+    CSIDL_PROGRAM_FILES_COMMONX86   = $002c;        // x86 Program Files\Common on RISC
+    CSIDL_COMMON_TEMPLATES          = $002d;        // All Users\Templates
+    CSIDL_COMMON_DOCUMENTS          = $002e;        // All Users\Documents
+    CSIDL_COMMON_ADMINTOOLS         = $002f;        // All Users\Start Menu\Programs\Administrative Tools
+    CSIDL_ADMINTOOLS                = $0030;        // <user name>\Start Menu\Programs\Administrative Tools
+    CSIDL_CONNECTIONS               = $0031;        // Network and Dial-up Connections
+    CSIDL_COMMON_MUSIC              = $0035;        // All Users\My Music
+    CSIDL_COMMON_PICTURES           = $0036;        // All Users\My Pictures
+    CSIDL_COMMON_VIDEO              = $0037;        // All Users\My Video
+    CSIDL_RESOURCES                 = $0038;        // Resource Direcotry
+    CSIDL_RESOURCES_LOCALIZED       = $0039;        // Localized Resource Direcotry
+    CSIDL_COMMON_OEM_LINKS          = $003a;        // Links to All Users OEM specific apps
+    CSIDL_CDBURN_AREA               = $003b;        // USERPROFILE\Local Settings\Application Data\Microsoft\CD Burning
+// unused                               = $003c
+    CSIDL_COMPUTERSNEARME           = $003d;        // Computers Near Me (computered from Workgroup membership)
+
+    CSIDL_FLAG_CREATE               = $8000;        // combine with CSIDL_ value to force folder creation in SHGetFolderPath()
+    CSIDL_FLAG_DONT_VERIFY          = $4000;        // combine with CSIDL_ value to return an unverified folder path
+    CSIDL_FLAG_NO_ALIAS             = $1000;        // combine with CSIDL_ value to insure non-alias versions of the pidl
+    CSIDL_FLAG_PER_USER_INIT        = $0800;        // combine with CSIDL_ value to indicate per-user init (eg. upgrade)
+    CSIDL_FLAG_MASK                 = $FF00;        // mask for all possible flag values
+    FCS_READ                    = $00000001;
+    FCS_FORCEWRITE              = $00000002;
+    FCS_WRITE                   = (FCS_READ or FCS_FORCEWRITE);
+
+    FCS_FLAG_DRAGDROP           = 2;
+
+// Mask which values have been retreived or being set.
+    FCSM_VIEWID                 = $00000001;
+    FCSM_WEBVIEWTEMPLATE        = $00000002;
+    FCSM_INFOTIP                = $00000004;
+    FCSM_CLSID                  = $00000008;
+    FCSM_ICONFILE               = $00000010;
+    FCSM_LOGO                   = $00000020;
+    FCSM_FLAGS                  = $00000040;
+
+// Browsing for directory.
+    BIF_RETURNONLYFSDIRS   = $0001;  // For finding a folder to start document searching
+    BIF_DONTGOBELOWDOMAIN  = $0002;  // For starting the Find Computer
+    BIF_STATUSTEXT         = $0004;   // Top of the dialog has 2 lines of text for BROWSEINFO.lpszTitle and one line if
+                                        // this flag is set.  Passing the message BFFM_SETSTATUSTEXTA to the hwnd can set the
+                                        // rest of the text.  This is not used with BIF_USENEWUI and BROWSEINFO.lpszTitle gets
+                                        // all three lines of text.
+    BIF_RETURNFSANCESTORS  = $0008;
+    BIF_EDITBOX            = $0010;   // Add an editbox to the dialog
+    BIF_VALIDATE           = $0020;   // insist on valid result (or CANCEL)
+
+    BIF_NEWDIALOGSTYLE     = $0040;   // Use the new dialog layout with the ability to resize
+                                        // Caller needs to call OleInitialize() before using this API
+
+    BIF_USENEWUI           = (BIF_NEWDIALOGSTYLE or BIF_EDITBOX);
+
+    BIF_BROWSEINCLUDEURLS  = $0080;   // Allow URLs to be displayed or entered. (Requires BIF_USENEWUI)
+    BIF_UAHINT             = $0100;   // Add a UA hint to the dialog, in place of the edit box. May not be combined with BIF_EDITBOX
+    BIF_NONEWFOLDERBUTTON  = $0200;   // Do not add the "New Folder" button to the dialog.  Only applicable with BIF_NEWDIALOGSTYLE.
+    BIF_NOTRANSLATETARGETS = $0400;   // don't traverse target as shortcut
+
+    BIF_BROWSEFORCOMPUTER  = $1000;  // Browsing for Computers.
+    BIF_BROWSEFORPRINTER   = $2000;  // Browsing for Printers
+    BIF_BROWSEINCLUDEFILES = $4000;  // Browsing for Everything
+    BIF_SHAREABLE          = $8000;  // sharable resources displayed (remote shares, requires BIF_USENEWUI)
+
+// message from browser
+    BFFM_INITIALIZED        = 1;
+    BFFM_SELCHANGED         = 2;
+    BFFM_VALIDATEFAILEDA    = 3;   // lParam:szPath ret:1(cont),0(EndDialog)
+    BFFM_VALIDATEFAILEDW    = 4;   // lParam:wzPath ret:1(cont),0(EndDialog)
+    BFFM_IUNKNOWN           = 5;   // provides IUnknown to client. lParam: IUnknown*
+
+// messages to browser
+    BFFM_SETSTATUSTEXTA     = (WM_USER + 100);
+    BFFM_ENABLEOK           = (WM_USER + 101);
+    BFFM_SETSELECTIONA      = (WM_USER + 102);
+    BFFM_SETSELECTIONW      = (WM_USER + 103);
+    BFFM_SETSTATUSTEXTW     = (WM_USER + 104);
+    BFFM_SETOKTEXT          = (WM_USER + 105); // Unicode only
+    BFFM_SETEXPANDED        = (WM_USER + 106); // Unicode only
+    ISHCUTCMDID_DOWNLOADICON  = 0;
+    ISHCUTCMDID_INTSHORTCUTCREATE = 1;
+    ACLO_NONE            = 0;    // don't enumerate anything
+    ACLO_CURRENTDIR      = 1;    // enumerate current directory
+    ACLO_MYCOMPUTER      = 2;    // enumerate MyComputer
+    ACLO_DESKTOP         = 4;    // enumerate Desktop Folder
+    ACLO_FAVORITES       = 8;    // enumerate Favorites Folder
+    ACLO_FILESYSONLY     = 16;   // enumerate only the file system
+    ACLO_FILESYSDIRS     = 32;   // enumerate only the file system dirs, UNC shares, and UNC servers.
+// Flags for IProgressDialog::StartProgressDialog() (dwFlags)
+
+    PROGDLG_NORMAL          = $00000000;      // default normal progress dlg behavior
+    PROGDLG_MODAL           = $00000001;      // the dialog is modal to its hwndParent (default is modeless)
+    PROGDLG_AUTOTIME        = $00000002;      // automatically updates the "Line3" text with the "time remaining" (you cant call SetLine3 if you passs this!)
+    PROGDLG_NOTIME          = $00000004;      // we dont show the "time remaining" if this is set. We need this if dwTotal < dwCompleted for sparse files
+    PROGDLG_NOMINIMIZE      = $00000008;      // Do not have a minimize button in the caption bar.
+    PROGDLG_NOPROGRESSBAR   = $00000010;      // Don't display the progress bar
+
+// Time Actions (dwTimerAction)
+    PDTIMER_RESET           = $00000001;       // Reset the timer so the progress will be calculated from now until the first ::SetProgress() is called so
+                                             // those this time will correspond to the values passed to ::SetProgress().  Only do this before ::SetProgress() is called.
+// flags for RemoveToolbar
+    DWFRF_NORMAL            = $0000;
+    DWFRF_DELETECONFIGDATA  = $0001;
+
+// flags for AddToolbar
+    DWFAF_HIDDEN            = $0001;   // add hidden
+
+// Convenient state values
+    IRTIR_TASK_NOT_RUNNING  = 0;
+    IRTIR_TASK_RUNNING      = 1;
+    IRTIR_TASK_SUSPENDED    = 2;
+    IRTIR_TASK_PENDING      = 3;
+    IRTIR_TASK_FINISHED     = 4;
+
+// Status() flags,
+// wait for the current task to complete before deleting the scheduler
+    ITSSFLAG_COMPLETE_ON_DESTROY        = $0000;
+
+// kill the current task (if there is one) when the task scheduler is deleted
+    ITSSFLAG_KILL_ON_DESTROY            = $0001;
+    ITSSFLAG_SUPPORTS_TERMINATE         = $0002;
+    ITSSFLAG_FLAGS_MASK                 = $0003;
+
+// set the timeout for killing the thread when the object is terminated.
+// this timeout can be used to stop the object from blocking the system
+// indefinitely.
+    ITSSFLAG_THREAD_TERMINATE_TIMEOUT   = $0010;
+
+// set the timeout for threads that are idle in the thread pool
+    ITSSFLAG_THREAD_POOL_TIMEOUT        = $0020;
+
+// The default timeout passed to release Status to determine how long the thread
+// can be asleep before the thread is expired
+    ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT     = (60*1000);
+
+// default, we won't kill it...
+    ITSS_THREAD_TERMINATE_TIMEOUT           = (INFINITE);
+
+// there is no change to the thread timeout
+    ITSS_THREAD_TIMEOUT_NO_CHANGE           = (INFINITE - 1);
+
+// the LPARAM allows task to be associated with items thus all tasks owned by a
+// particular item can be accessed by passing a non default value for this parameter
+    ITSAT_DEFAULT_LPARAM        = $ffffffff;
+
+// Task priorities
+// ---------------
+// This depends on the cooperation of tasks currently under execution. New tasks will
+// be inserted in the queue in priority order. If a task of a low priority is currently
+// under execution when a higher priority task is added, the scheduler will attempt
+// to suspend the task currently under execution. It will be resumed when the other tasks
+// have been completed.
+    ITSAT_DEFAULT_PRIORITY      = $10000000;
+    ITSAT_MAX_PRIORITY          = $7fffffff;
+    ITSAT_MIN_PRIORITY          = $00000000;
+    ITSSFLAG_TASK_PLACEINFRONT  = $00000001;
+    ITSSFLAG_TASK_PLACEINBACK   = $00000002;
+    SHIMSTCAPFLAG_LOCKABLE      = $0001;       // does the store require/support locking
+    SHIMSTCAPFLAG_PURGEABLE     = $0002;       // does the store require dead items purging externally ?
+////  IShellFolderBand
+
+// Field mask
+    ISFB_MASK_STATE          = $00000001; // TRUE if dwStateMask and dwState is valid
+    ISFB_MASK_BKCOLOR        = $00000002; // TRUE if crBkgnd field is valid
+    ISFB_MASK_VIEWMODE       = $00000004; // TRUE if wViewMode field is valid
+    ISFB_MASK_SHELLFOLDER    = $00000008;
+    ISFB_MASK_IDLIST         = $00000010;
+    ISFB_MASK_COLORS         = $00000020; // TRUE if crXXXX fields are valid (except bkgnd)
+
+    ISFB_STATE_DEFAULT       = $00000000;
+    ISFB_STATE_DEBOSSED      = $00000001;
+    ISFB_STATE_ALLOWRENAME   = $00000002;
+    ISFB_STATE_NOSHOWTEXT    = $00000004; // TRUE if _fNoShowText
+    ISFB_STATE_CHANNELBAR    = $00000010; // TRUE if we want NavigateTarget support
+    ISFB_STATE_QLINKSMODE    = $00000020; // TRUE if we want to turn off drag & drop onto content items
+    ISFB_STATE_FULLOPEN      = $00000040; // TRUE if band should maximize when opened
+    ISFB_STATE_NONAMESORT    = $00000080; // TRUE if band should _not_ sort icons by name
+    ISFB_STATE_BTNMINSIZE    = $00000100; // TRUE if band should report min thickness of button
+
+    ISFBVIEWMODE_SMALLICONS  = $0001;
+    ISFBVIEWMODE_LARGEICONS  = $0002;
+    ISFBVIEWMODE_LOGOS       = $0003;
+
+    DBC_GS_IDEAL             = 0;  // get the ideal size
+    DBC_GS_SIZEDOWN          = 1;  // clip the height of a rect to a multiple of the rebar's integral size
+
+
+    DBC_HIDE                 = 0; // Band is hidden (being destroyed)
+    DBC_SHOW                 = 1; // Band is visible
+    DBC_SHOWOBSCURE          = 2; // Band is completely obscured
+// iCompType values
+    COMP_TYPE_HTMLDOC        = 0;
+    COMP_TYPE_PICTURE        = 1;
+    COMP_TYPE_WEBSITE        = 2;
+    COMP_TYPE_CONTROL        = 3;
+    COMP_TYPE_CFHTML         = 4;
+    COMP_TYPE_MAX            = 4;
+// Defines for dwCurItemState
+    IS_NORMAL               = $00000001;
+    IS_FULLSCREEN           = $00000002;
+    IS_SPLIT                = $00000004;
+    IS_VALIDSIZESTATEBITS   = (IS_NORMAL  or  IS_SPLIT  or  IS_FULLSCREEN);  // The set of IS_* state bits which define the "size" of the component - these bits are mutually exclusive.
+    IS_VALIDSTATEBITS       = (IS_NORMAL  or  IS_SPLIT  or  IS_FULLSCREEN or $80000000 or $40000000);  // All of the currently defined IS_* bits.
+
+////////////////////////////////////////////
+// Flags for IActiveDesktop::ApplyChanges()
+    AD_APPLY_SAVE             = $00000001;
+    AD_APPLY_HTMLGEN          = $00000002;
+    AD_APPLY_REFRESH          = $00000004;
+    AD_APPLY_ALL              = (AD_APPLY_SAVE or AD_APPLY_HTMLGEN  or  AD_APPLY_REFRESH);
+    AD_APPLY_FORCE            = $00000008;
+    AD_APPLY_BUFFERED_REFRESH = $00000010;
+    AD_APPLY_DYNAMICREFRESH   = $00000020;
+
+////////////////////////////////////////////
+// Flags for IActiveDesktop::GetWallpaperOptions()
+//           IActiveDesktop::SetWallpaperOptions()
+    WPSTYLE_CENTER      = 0;
+    WPSTYLE_TILE        = 1;
+    WPSTYLE_STRETCH     = 2;
+    WPSTYLE_MAX         = 3;
+
+////////////////////////////////////////////
+// Flags for IActiveDesktop::ModifyComponent()
+
+    COMP_ELEM_TYPE          = $00000001;
+    COMP_ELEM_CHECKED       = $00000002;
+    COMP_ELEM_DIRTY         = $00000004;
+    COMP_ELEM_NOSCROLL      = $00000008;
+    COMP_ELEM_POS_LEFT      = $00000010;
+    COMP_ELEM_POS_TOP       = $00000020;
+    COMP_ELEM_SIZE_WIDTH    = $00000040;
+    COMP_ELEM_SIZE_HEIGHT   = $00000080;
+    COMP_ELEM_POS_ZINDEX    = $00000100;
+    COMP_ELEM_SOURCE        = $00000200;
+    COMP_ELEM_FRIENDLYNAME  = $00000400;
+    COMP_ELEM_SUBSCRIBEDURL = $00000800;
+    COMP_ELEM_ORIGINAL_CSI  = $00001000;
+    COMP_ELEM_RESTORED_CSI  = $00002000;
+    COMP_ELEM_CURITEMSTATE  = $00004000;
+
+    COMP_ELEM_ALL  =   (COMP_ELEM_TYPE or COMP_ELEM_CHECKED or COMP_ELEM_DIRTY or                     
+                         COMP_ELEM_NOSCROLL or COMP_ELEM_POS_LEFT or COMP_ELEM_SIZE_WIDTH  or          
+                         COMP_ELEM_SIZE_HEIGHT or COMP_ELEM_POS_ZINDEX or COMP_ELEM_SOURCE or          
+                         COMP_ELEM_FRIENDLYNAME or COMP_ELEM_POS_TOP or COMP_ELEM_SUBSCRIBEDURL or     
+                         COMP_ELEM_ORIGINAL_CSI or COMP_ELEM_RESTORED_CSI or COMP_ELEM_CURITEMSTATE);
+
+
+////////////////////////////////////////////
+// Flags for IActiveDesktop::AddDesktopItemWithUI()
+    DTI_ADDUI_DEFAULT               = $00000000;
+    DTI_ADDUI_DISPSUBWIZARD         = $00000001;
+    DTI_ADDUI_POSITIONITEM          = $00000002;
+
+
+////////////////////////////////////////////
+// Flags for IActiveDesktop::AddUrl()
+    ADDURL_SILENT            = $0001;
+
+// Default positions for ADI
+    COMPONENT_DEFAULT_LEFT    = $FFFF;
+    COMPONENT_DEFAULT_TOP     = $FFFF;
+// Flags for SetSafeMode
+    SSM_CLEAR   = $0000;
+    SSM_SET     = $0001;
+    SSM_REFRESH = $0002;
+    SSM_UPDATE  = $0004;
+
+// Flags for Set/GetScheme
+    SCHEME_DISPLAY          = $0001;
+    SCHEME_EDIT             = $0002;
+    SCHEME_LOCAL            = $0004;
+    SCHEME_GLOBAL           = $0008;
+    SCHEME_REFRESH          = $0010;
+    SCHEME_UPDATE           = $0020;
+    SCHEME_DONOTUSE         = $0040; // used to be SCHEME_ENUMERATE; no longer supported
+    SCHEME_CREATE           = $0080;
+
+    SHCDF_UPDATEITEM        = $00000001;      // this flag is a hint that the file has changed since the last call to GetItemData
+
+    DVASPECT_SHORTNAME      = 2; // use for CF_HDROP to get short name version of file paths
+    DVASPECT_COPY           = 3; // use to indicate format is a "Copy" of the data (FILECONTENTS, FILEDESCRIPTOR, etc)
+    DVASPECT_LINK           = 4; // use to indicate format is a "Shortcut" to the data (FILECONTENTS, FILEDESCRIPTOR, etc)
+    FD_CLSID                = $0001;
+    FD_SIZEPOINT            = $0002;
+    FD_ATTRIBUTES           = $0004;
+    FD_CREATETIME           = $0008;
+    FD_ACCESSTIME           = $0010;
+    FD_WRITESTIME           = $0020;
+    FD_FILESIZE             = $0040;
+    FD_PROGRESSUI           = $4000;       // Show Progress UI w/Drag and Drop
+    FD_LINKUI               = $8000;       // 'link' UI is prefered
+    SHCNE_RENAMEITEM          = DWord($00000001);
+    SHCNE_CREATE              = DWord($00000002);
+    SHCNE_DELETE              = DWord($00000004);
+    SHCNE_MKDIR               = DWord($00000008);
+    SHCNE_RMDIR               = DWord($00000010);
+    SHCNE_MEDIAINSERTED       = DWord($00000020);
+    SHCNE_MEDIAREMOVED        = DWord($00000040);
+    SHCNE_DRIVEREMOVED        = DWord($00000080);
+    SHCNE_DRIVEADD            = DWord($00000100);
+    SHCNE_NETSHARE            = DWord($00000200);
+    SHCNE_NETUNSHARE          = DWord($00000400);
+    SHCNE_ATTRIBUTES          = DWord($00000800);
+    SHCNE_UPDATEDIR           = DWord($00001000);
+    SHCNE_UPDATEITEM          = DWord($00002000);
+    SHCNE_SERVERDISCONNECT    = DWord($00004000);
+    SHCNE_UPDATEIMAGE         = DWord($00008000);
+    SHCNE_DRIVEADDGUI         = DWord($00010000);
+    SHCNE_RENAMEFOLDER        = DWord($00020000);
+    SHCNE_FREESPACE           = DWord($00040000);
+    SHCNE_EXTENDED_EVENT      = DWord($04000000);
+    SHCNE_ASSOCCHANGED        = DWord($08000000);
+
+    SHCNE_DISKEVENTS          = DWord($0002381F);
+    SHCNE_GLOBALEVENTS        = DWord($0C0581E0); // Events that dont match pidls first
+    SHCNE_ALLEVENTS           = DWord($7FFFFFFF);
+    SHCNE_INTERRUPT           = DWord($80000000); // The presence of this flag indicates
+                                            // that the event was generated by an
+                                            // interrupt.  It is stripped out before
+                                            // the clients of SHCNNotify_ see it.
+
+//#if (_WIN32_IE >= $0400)
+// SHCNE_EXTENDED_EVENT extended events.  These events are ordinals.
+// This is not a bitfield.
+
+    SHCNEE_ORDERCHANGED         = 2;  // pidl2 is the changed folder
+    SHCNEE_MSI_CHANGE           = 4;  // pidl2 is a SHChangeProductKeyAsIDList
+    SHCNEE_MSI_UNINSTALL        = 5;  // pidl2 is a SHChangeProductKeyAsIDList
+//#endif
+
+
+// Flags
+// uFlags & SHCNF_TYPE is an ID which indicates what dwItem1 and dwItem2 mean
+    SHCNF_IDLIST      = $0000;        // LPITEMIDLIST
+    SHCNF_PATHA       = $0001;        // path name
+    SHCNF_PRINTERA    = $0002;        // printer friendly name
+    SHCNF_DWORD       = $0003;        // DWORD
+    SHCNF_PATHW       = $0005;        // path name
+    SHCNF_PRINTERW    = $0006;        // printer friendly name
+    SHCNF_TYPE        = $00FF;
+    SHCNF_FLUSH       = $1000;
+    SHCNF_FLUSHNOWAIT = $2000;
+{$ifdef UNICODE}
+    SHCNF_PATH      = SHCNF_PATHW;
+    SHCNF_PRINTER   = SHCNF_PRINTERW;
+{$else}
+    SHCNF_PATH      = SHCNF_PATHA;
+    SHCNF_PRINTER   = SHCNF_PRINTERA;
+{$endif}
+    QITIPF_DEFAULT          = $00000000;
+    QITIPF_USENAME          = $00000001;
+    QITIPF_LINKNOTARGET     = $00000002;
+    QITIPF_LINKUSETARGET    = $00000004;
+    QITIPF_USESLOWTIP       = $00000008;  // Flag says it's OK to take a long time generating tip
+
+    QIF_CACHED              = $00000001;
+    QIF_DONTEXPANDFOLDER    = $00000002;
+
+
+//
+// SHAddToRecentDocs
+//
+    SHARD_PIDL      = DWord($00000001);
+    SHARD_PATHA     = DWord($00000002);
+    SHARD_PATHW     = DWord($00000003);
+
+{$ifdef UNICODE}
+    SHARD_PATH  = SHARD_PATHW;
+{$else}
+    SHARD_PATH  = SHARD_PATHA;
+{$endif}
+
+//
+// SHGetDataFromIDListA/W
+//
+// SHGetDataFromIDList nFormat values TCHAR
+    SHGDFIL_FINDDATA           = 1;
+    SHGDFIL_NETRESOURCE        = 2;
+    SHGDFIL_DESCRIPTIONID      = 3;
+
+    SHDID_ROOT_REGITEM         = 1 ;
+    SHDID_FS_FILE              = 2 ;
+    SHDID_FS_DIRECTORY         = 3 ;
+    SHDID_FS_OTHER             = 4 ;
+    SHDID_COMPUTER_DRIVE35     = 5 ;
+    SHDID_COMPUTER_DRIVE525    = 6 ;
+    SHDID_COMPUTER_REMOVABLE   = 7 ;
+    SHDID_COMPUTER_FIXED       = 8 ;
+    SHDID_COMPUTER_NETDRIVE    = 9 ;
+    SHDID_COMPUTER_CDROM       = 10;
+    SHDID_COMPUTER_RAMDISK     = 11;
+    SHDID_COMPUTER_OTHER       = 12;
+    SHDID_NET_DOMAIN           = 13;
+    SHDID_NET_SERVER           = 14;
+    SHDID_NET_SHARE            = 15;
+    SHDID_NET_RESTOFNET        = 16;
+    SHDID_NET_OTHER            = 17;
+    SHDID_COMPUTER_IMAGING     = 18;
+    SHDID_COMPUTER_AUDIO       = 19;
+    SHDID_COMPUTER_SHAREDDOCS  = 20;
+// PathResolve flags
+    PRF_VERIFYEXISTS            = $0001;
+    PRF_TRYPROGRAMEXTENSIONS    = ($0002  or  PRF_VERIFYEXISTS);
+    PRF_FIRSTDIRDEF             = $0004;
+    PRF_DONTFINDLNK             = $0008;      // if PRF_TRYPROGRAMEXTENSIONS is specified
+    PCS_FATAL                   = $80000000;
+    PCS_REPLACEDCHAR            = $00000001;
+    PCS_REMOVEDCHAR             = $00000002;
+    PCS_TRUNCATED               = $00000004;
+    PCS_PATHTOOLONG             = $00000008;  // Always combined with FATA);
+    MM_ADDSEPARATOR             = DWord($00000001);
+    MM_SUBMENUSHAVEIDS          = DWord($00000002);
+    MM_DONTREMOVESEPS           = DWord($00000004);
+
+    SHOP_PRINTERNAME            = $00000001;  // lpObject points to a printer friendly name
+    SHOP_FILEPATH               = $00000002;  // lpObject points to a fully qualified path+file name
+    SHOP_VOLUMEGUID             = $00000004;  // lpObject points to a Volume GUID
+    SHFMT_ID_DEFAULT            = $FFFF;
+//
+// Option bits for options parameter
+//
+    SHFMT_OPT_FULL             = $0001;
+    SHFMT_OPT_SYSONLY          = $0002;
+
+//
+// Special return values. PLEASE NOTE that these are DWORD values.
+//
+    SHFMT_ERROR     = DWord($FFFFFFFF);     // Error on last format, drive may be formatable
+    SHFMT_CANCEL    = DWord($FFFFFFFE);     // Last format was canceled
+    SHFMT_NOFORMAT  = DWord($FFFFFFFD);     // Drive is not formatable
+    REST_NONE                       = $00000000;
+    REST_NORUN                      = $00000001;
+    REST_NOCLOSE                    = $00000002;
+    REST_NOSAVESET                  = $00000004;
+    REST_NOFILEMENU                 = $00000008;
+    REST_NOSETFOLDERS               = $00000010;
+    REST_NOSETTASKBAR               = $00000020;
+    REST_NODESKTOP                  = $00000040;
+    REST_NOFIND                     = $00000080;
+    REST_NODRIVES                   = $00000100;
+    REST_NODRIVEAUTORUN             = $00000200;
+    REST_NODRIVETYPEAUTORUN         = $00000400;
+    REST_NONETHOOD                  = $00000800;
+    REST_STARTBANNER                = $00001000;
+    REST_RESTRICTRUN                = $00002000;
+    REST_NOPRINTERTABS              = $00004000;
+    REST_NOPRINTERDELETE            = $00008000;
+    REST_NOPRINTERADD               = $00010000;
+    REST_NOSTARTMENUSUBFOLDERS      = $00020000;
+    REST_MYDOCSONNET                = $00040000;
+    REST_NOEXITTODOS                = $00080000;
+    REST_ENFORCESHELLEXTSECURITY    = $00100000;
+    REST_LINKRESOLVEIGNORELINKINFO  = $00200000;
+    REST_NOCOMMONGROUPS             = $00400000;
+    REST_SEPARATEDESKTOPPROCESS     = $00800000;
+    REST_NOWEB                      = $01000000;
+    REST_NOTRAYCONTEXTMENU          = $02000000;
+    REST_NOVIEWCONTEXTMENU          = $04000000;
+    REST_NONETCONNECTDISCONNECT     = $08000000;
+    REST_STARTMENULOGOFF            = $10000000;
+    REST_NOSETTINGSASSIST           = $20000000;
+    REST_NOINTERNETICON             = $40000001;
+    REST_NORECENTDOCSHISTORY        = $40000002;
+    REST_NORECENTDOCSMENU           = $40000003;
+    REST_NOACTIVEDESKTOP            = $40000004;
+    REST_NOACTIVEDESKTOPCHANGES     = $40000005;
+    REST_NOFAVORITESMENU            = $40000006;
+    REST_CLEARRECENTDOCSONEXIT      = $40000007;
+    REST_CLASSICSHELL               = $40000008;
+    REST_NOCUSTOMIZEWEBVIEW         = $40000009;
+    REST_NOHTMLWALLPAPER            = $40000010;
+    REST_NOCHANGINGWALLPAPER        = $40000011;
+    REST_NODESKCOMP                 = $40000012;
+    REST_NOADDDESKCOMP              = $40000013;
+    REST_NODELDESKCOMP              = $40000014;
+    REST_NOCLOSEDESKCOMP            = $40000015;
+    REST_NOCLOSE_DRAGDROPBAND       = $40000016;   // Disable Close and Drag & Drop on ALL Bands
+    REST_NOMOVINGBAND               = $40000017;   // Disable Moving ALL Bands
+    REST_NOEDITDESKCOMP             = $40000018;
+    REST_NORESOLVESEARCH            = $40000019;
+    REST_NORESOLVETRACK             = $4000001A;
+    REST_FORCECOPYACLWITHFILE       = $4000001B;
+    REST_NOLOGO3CHANNELNOTIFY       = $4000001C;
+    REST_NOFORGETSOFTWAREUPDATE     = $4000001D;
+    REST_NOSETACTIVEDESKTOP         = $4000001E;   // No Active desktop on Settings Menu
+    REST_NOUPDATEWINDOWS            = $4000001F;   // No Windows Update on Settings Menu
+    REST_NOCHANGESTARMENU           = $40000020;   // No Context menu or Drag and Drop on Start menu
+    REST_NOFOLDEROPTIONS            = $40000021;   // No Folder Options on Settings Menu
+    REST_HASFINDCOMPUTERS           = $40000022;   // Show Start/Search/Computers
+    REST_INTELLIMENUS               = $40000023;
+    REST_RUNDLGMEMCHECKBOX          = $40000024;
+    REST_ARP_ShowPostSetup          = $40000025;   // ARP: Show Post-Setup page
+    REST_NOCSC                      = $40000026;   // Disable the ClientSide caching on SM
+    REST_NOCONTROLPANEL             = $40000027;   // Remove the Control Panel only from SM or Settings
+    REST_ENUMWORKGROUP              = $40000028;   // Enumerate workgroup in root of nethood
+    REST_ARP_NOARP                  = $40000029;   // ARP: Don't Allow ARP to come up at all
+    REST_ARP_NOREMOVEPAGE           = $4000002A;   // ARP: Don't allow Remove page
+    REST_ARP_NOADDPAGE              = $4000002B;   // ARP: Don't allow Add page
+    REST_ARP_NOWINSETUPPAGE         = $4000002C;   // ARP: Don't allow opt components page
+    REST_GREYMSIADS                 = $4000002D;    // SM: Allow the greying of Darwin Ads in SM
+    REST_NOCHANGEMAPPEDDRIVELABEL   = $4000002E;   // Don't enable the UI which allows users to rename mapped drive labels
+    REST_NOCHANGEMAPPEDDRIVECOMMENT = $4000002F;   // Don't enable the UI which allows users to change mapped drive comments
+    REST_MaxRecentDocs              = $40000030;
+    REST_NONETWORKCONNECTIONS       = $40000031;   // No Start Menu  or  Settings  or Network Connections
+    REST_FORCESTARTMENULOGOFF       = $40000032;   // Force logoff on the Start Menu
+    REST_NOWEBVIEW                  = $40000033;   // Disable Web View
+    REST_NOCUSTOMIZETHISFOLDER      = $40000034;   // Disable Customize This Folder
+    REST_NOENCRYPTION               = $40000035;   // Don't allow file encryption
+//  Do NOT use me                     = $40000036;
+    REST_DONTSHOWSUPERHIDDEN        = $40000037;   // don't show super hidden files
+    REST_NOSHELLSEARCHBUTTON        = $40000038;
+    REST_NOHARDWARETAB              = $40000039;   // No Hardware tab on Drives or in control panel
+    REST_NORUNASINSTALLPROMPT       = $4000003A;   // Don't bring up "Run As" prompt for install programs
+    REST_PROMPTRUNASINSTALLNETPATH  = $4000003B;   // Force the  "Run As" prompt for install programs on unc/network shares
+    REST_NOMANAGEMYCOMPUTERVERB     = $4000003C;   // No Manage verb on My Computer
+    REST_NORECENTDOCSNETHOOD        = $4000003D;   // dont add the recent docs shares to nethood
+    REST_DISALLOWRUN                = $4000003E;   // don't allow certain apps to be run
+    REST_NOWELCOMESCREEN            = $4000003F;   // don't allow the welcome screen to be displayed.
+    REST_RESTRICTCPL                = $40000040;   // only allow certain cpls to be run
+    REST_DISALLOWCPL                = $40000041;   // don't allow certain cpls to be run
+    REST_NOSMBALLOONTIP             = $40000042;   // No Start Menu Balloon Tip
+    REST_NOSMHELP                   = $40000043;   // No Help on the Start Menu
+    REST_NOWINKEYS                  = $40000044;   // No Windows-X Hot keys
+    REST_NOENCRYPTONMOVE            = $40000045;   // Don't automatically try to encrypt files that are moved to encryped directories
+    REST_NOLOCALMACHINERUN          = $40000046;   // ignore HKLM\sw\ms\win\cv\Run and all of it's sub keys
+    REST_NOCURRENTUSERRUN           = $40000047;   // ignore HKCU\sw\ms\win\cv\Run and all of it's sub keys
+    REST_NOLOCALMACHINERUNONCE      = $40000048;   // ignore HKLM\sw\ms\win\cv\RunOnce and all of it's sub keys
+    REST_NOCURRENTUSERRUNONCE       = $40000049;   // ignore HKCU\sw\ms\win\cv\RunOnce and all of it's sub keys
+    REST_FORCEACTIVEDESKTOPON       = $4000004A;   // Force ActiveDesktop to be turned ON all the time.
+    REST_NOCOMPUTERSNEARME          = $4000004B;   // removes the "Computers near me" link
+    REST_NOVIEWONDRIVE              = $4000004C;   // disallows CreateViewObject() on specified drives (CFSFolder only)
+    REST_NONETCRAWL                 = $4000004D;   // disables the crawling of the WNet namespace.
+    REST_NOSHAREDDOCUMENTS          = $4000004E;   // don't auto share the Shared Documents/create link
+    REST_NOSMMYDOCS                 = $4000004F;   // Don't show the My Documents item on the Start Menu.
+    REST_NOSMMYPICS                 = $40000050;   // Don't show the My Pictures item on the Start Menu
+    REST_ALLOWBITBUCKDRIVES         = $40000051;   // Bit mask indicating which which drives have bit bucket support
+    REST_NONLEGACYSHELLMODE         = $40000052;   // new consumer shell modes
+    REST_NOCONTROLPANELBARRICADE    = $40000053;   // The webview barricade in Control Panel
+    REST_NOSTARTPAGE                = $40000054;   // Whistler Start Page on desktop.
+    REST_NOAUTOTRAYNOTIFY           = $40000055;   // Whistler auto-tray notify feature
+    REST_NOTASKGROUPING             = $40000056;   // Whistler taskbar button grouping feature
+    REST_NOCDBURNING                = $40000057;   // whistler cd burning feature
+    REST_MYCOMPNOPROP               = $40000058;   // disables Properties on My Computer's context menu
+    REST_MYDOCSNOPROP               = $40000059;   // disables Properties on My Documents' context menu
+    REST_NOSTARTPANEL               = $4000005A;   // Windows start panel (New start menu) for Whistler.
+    REST_NODISPLAYAPPEARANCEPAGE    = $4000005B;   // disable Themes and Appearance tabs in the Display Control Panel.
+    REST_NOTHEMESTAB                = $4000005C;   // disable the Themes tab in the Display Control Panel.
+    REST_NOVISUALSTYLECHOICE        = $4000005D;   // disable the visual style drop down in the Appearance tab of the Display Control Panel.
+    REST_NOSIZECHOICE               = $4000005E;   // disable the size drop down in the Appearance tab of the Display Control Panel.
+    REST_NOCOLORCHOICE              = $4000005F;   // disable the color drop down in the Appearance tab of the Display Control Panel.
+    REST_SETVISUALSTYLE             = $40000060;   // Load the specified file as the visual style.
+    REST_STARTRUNNOHOMEPATH         = $40000061;   // dont use the %HOMEPATH% env var for the Start-Run dialog
+    REST_NOUSERNAMEINSTARTPANEL     = $40000062;   // don't show the username is the startpanel.
+    REST_NOMYCOMPUTERICON           = $40000063;   // don't show my computer anywhere, hide its contents
+    REST_NOSMNETWORKPLACES          = $40000064;   // don't show network places in startpanel.
+    REST_NOSMPINNEDLIST             = $40000065;   // don't show the pinned list in startpanel.
+    REST_NOSMMYMUSIC                = $40000066;   // don't show MyMusic folder in startpanel
+    REST_NOSMEJECTPC                = $40000067;   // don't show "Undoc PC" command in startmenu
+    REST_NOSMMOREPROGRAMS           = $40000068;   // don't show "More Programs" button in StartPanel.
+    REST_NOSMMFUPROGRAMS            = $40000069;   // don't show the MFU programs list in StartPanel.
+    REST_NOTRAYITEMSDISPLAY         = $4000006A;   // disables the display of the system tray
+    REST_NOTOOLBARSONTASKBAR        = $4000006B;   // disables toolbar display on the taskbar
+    REST_NOSMCONFIGUREPROGRAMS      = $4000006F;   // No Configure Programs on Settings Menu
+    REST_HIDECLOCK                  = $40000070;   // don't show the clock
+    REST_NOLOWDISKSPACECHECKS       = $40000071;   // disable the low disk space checking
+    REST_NOENTIRENETWORK            = $40000072;   // removes the "Entire Network" link (i.e. from "My Network Places")
+    REST_NODESKTOPCLEANUP           = $40000073;   // disable the desktop cleanup wizard
+    REST_BITBUCKNUKEONDELETE        = $40000074;   // disables recycling of files
+    REST_BITBUCKCONFIRMDELETE       = $40000075;   // always show the delete confirmation dialog when deleting files
+    REST_BITBUCKNOPROP              = $40000076;   // disables Properties on Recycle Bin's context menu
+    REST_NODISPBACKGROUND           = $40000077;   // disables the Desktop tab in the Display CP);
+    REST_NODISPSCREENSAVEPG         = $40000078;   // disables the Screen Saver tab in the Display CP);
+    REST_NODISPSETTINGSPG           = $40000079;   // disables the Settings tab in the Display CP);
+    REST_NODISPSCREENSAVEPREVIEW    = $4000007A;   // disables the screen saver on the Screen Saver tab in the Display CP);
+    REST_NODISPLAYCPL               = $4000007B;   // disables the Display CPL
+    REST_HIDERUNASVERB              = $4000007C;   // hides the "Run As..." context menu item
+    REST_NOTHUMBNAILCACHE           = $4000007D;   // disables use of the thumbnail cache
+    REST_NOSTRCMPLOGICAL            = $4000007E;   // dont use StrCmpLogical() instead use default CompareString()
+    REST_NOPUBLISHWIZARD            = $4000007F;   // disables publishing wizard (WPW)
+    REST_NOONLINEPRINTSWIZARD       = $40000080;   // disables online prints wizard (OPW)
+    REST_NOWEBSERVICES              = $40000081;   // disables the web specified services for both OPW and WPW
+    REST_ALLOWUNHASHEDWEBVIEW       = $40000082;   // allow the user to be promted to accept web view templates that don't already have an md5 hash in the registry
+    REST_ALLOWLEGACYWEBVIEW         = $40000083;   // allow legacy webview template to be shown.
+    REST_REVERTWEBVIEWSECURITY      = $40000084;   // disable added webview security measures (revert to w2k functionality).
+    REST_INHERITCONSOLEHANDLES      = $40000086;   // ShellExec() will check for the current process and target process being console processes to inherit handles
+    REST_SORTMAXITEMCOUNT           = $40000087;   // Do not sort views with more items than this key. Useful for viewing big amount of files in one folder.
+    REST_NOREMOTERECURSIVEEVENTS    = $40000089;   // Dont register network change events recursively to avoid network traffic
+    REST_NOREMOTECHANGENOTIFY       = $40000091;   // Do not register for remote change notifies
+    REST_NOSIMPLENETIDLIST          = $40000092;   // No simple network IDLists
+    REST_NOENUMENTIRENETWORK        = $40000093;   // Don't enumerate entire network if we happen to get to it (in conjunction with REST_NOENTIRENETWORK)
+    REST_NODETAILSTHUMBNAILONNETWORK= $40000094;   // Disable Thumbnail for Network files in DUI Details pane
+    REST_NOINTERNETOPENWITH         = $40000095;   // dont allow looking on the internet for file associations
+    REST_ALLOWLEGACYLMZBEHAVIOR     = $4000009A;   // allowable LMZ behavior for ActiveX objects changed in XPSP2, this policy gets the pre-XPSP2 behavior
+    REST_DONTRETRYBADNETNAME        = $4000009B;   // In Network Places: if provider returns ERROR_BAD_NET_NAME, give up
+    REST_ALLOWFILECLSIDJUNCTIONS    = $4000009C;   // re-enable legacy support for file.{guid} junctions in FileSystem Folder 
+    REST_NOUPNPINSTALL              = $4000009D;   // disable "install UPnP" task in My Net Places
+    
+    REST_NODISCONNECT               = $41000001;   // No Disconnect option in Start menu
+    REST_NOSECURITY                 = $41000002;   // No Security option in start menu
+    REST_NOFILEASSOCIATE            = $41000003;   // Do not allow user to change file association
+    REST_ALLOWCOMMENTTOGGLE         = $41000004;   // Allow the user to toggle the positions of the Comment and the Computer Name
+    REST_USEDESKTOPINICACHE         = $41000005;   // Cache desktop.ini entries from network folders
+//
+// Path processing function
+//
+    PPCF_ADDQUOTES                  = $00000001;        // return a quoted name if required
+    PPCF_ADDARGUMENTS               = $00000003;        // appends arguments (and wraps in quotes if required)
+    PPCF_NODIRECTORIES              = $00000010;        // don't match to directories
+    PPCF_FORCEQUALIFY               = $00000040;        // qualify even non-relative names
+    PPCF_LONGESTPOSSIBLE            = $00000080;        // always find the longest possible name
+    VALIDATEUNC_NOUI                = $0002;          // don't bring up UI
+    VALIDATEUNC_CONNECT             = $0001;          // connect a drive letter
+    VALIDATEUNC_PRINT               = $0004;          // validate as print share instead of disk share
+    VALIDATEUNC_VALID               = $0007;          // valid flags
+
+    OPENPROPS_NONE                  = $0000;
+    OPENPROPS_INHIBITPIF            = $8000;
+    GETPROPS_NONE                   = $0000;
+    SETPROPS_NONE                   = $0000;
+    CLOSEPROPS_NONE                 = $0000;		
+    CLOSEPROPS_DISCARD              = $0001;		
+
+    PIFNAMESIZE                     =  30;
+    PIFSTARTLOCSIZE                 =  63;
+    PIFDEFPATHSIZE                  =  64;
+    PIFPARAMSSIZE                   =  64;
+    PIFSHPROGSIZE                   =  64;
+    PIFSHDATASIZE                   =  64;
+    PIFDEFFILESIZE                  =  80;
+    PIFMAXFILEPATH                  = 260;
+    TBIF_APPEND                     =   0;
+    TBIF_PREPEND                    =   1;
+    TBIF_REPLACE                    =   2;
+    TBIF_DEFAULT                    = $00000000;
+    TBIF_INTERNETBAR                = $00010000;
+    TBIF_STANDARDTOOLBAR   	    = $00020000;
+    TBIF_NOTOOLBAR                  = $00030000;
+//                                 uMsg    wParam             lParam
+    SFVM_MERGEMENU           =  1;    // -                  LPQCMINFO
+    SFVM_INVOKECOMMAND       =  2;    // idCmd              -
+    SFVM_GETHELPTEXT         =  3;    // idCmd,cchMax       pszText
+    SFVM_GETTOOLTIPTEXT      =  4;    // idCmd,cchMax       pszText
+    SFVM_GETBUTTONINFO       =  5;    // -                  LPTBINFO
+    SFVM_GETBUTTONS          =  6;    // idCmdFirst,cbtnMax LPTBBUTTON
+    SFVM_INITMENUPOPUP       =  7;    // idCmdFirst,nIndex  hmenu
+    SFVM_FSNOTIFY            = 14;    // LPCITEMIDLIST*     lEvent
+    SFVM_WINDOWCREATED       = 15;    // hwnd               -
+    SFVM_GETDETAILSOF        = 23;    // iColumn            DETAILSINFO*
+    SFVM_COLUMNCLICK         = 24;    // iColumn            -
+    SFVM_QUERYFSNOTIFY       = 25;    // -                  SHChangeNotifyEntry *
+    SFVM_DEFITEMCOUNT        = 26;    // -                  UINT*
+    SFVM_DEFVIEWMODE         = 27;    // -                  FOLDERVIEWMODE*
+    SFVM_UNMERGEMENU         = 28;    // -                  hmenu
+    SFVM_UPDATESTATUSBAR     = 31;    // fInitialize        -
+    SFVM_BACKGROUNDENUM      = 32;    // -                  -
+    SFVM_DIDDRAGDROP         = 36;    // dwEffect           IDataObject *
+    SFVM_SETISFV             = 39;    // -                  IShellFolderView*
+    SFVM_THISIDLIST          = 41;    // -                  LPITMIDLIST*
+    SFVM_ADDPROPERTYPAGES    = 47;    // -                  SFVM_PROPPAGE_DATA *
+    SFVM_BACKGROUNDENUMDONE  = 48;    // -                  -
+    SFVM_GETNOTIFY           = 49;    // LPITEMIDLIST*      LONG*
+    SFVM_GETSORTDEFAULTS     = 53;    // iDirection         iParamSort
+    SFVM_SIZE                = 57;    // -                  -
+    SFVM_GETZONE             = 58;    // -                  DWORD*
+    SFVM_GETPANE             = 59;    // Pane ID            DWORD*
+    SFVM_GETHELPTOPIC        = 63;    // -                  SFVM_HELPTOPIC_DATA *
+    SFVM_GETANIMATION        = 68;    // HINSTANCE *        WCHAR *
+//                                  uMsg       wParam       lParam
+    DFM_MERGECONTEXTMENU     =    1;      // uFlags       LPQCMINFO
+    DFM_INVOKECOMMAND        =    2;      // idCmd        pszArgs
+    DFM_GETDEFSTATICID       =    14;     // idCmd *      0
+// Commands from DFM_INVOKECOMMAND when strings are passed in
+    DFM_CMD_PROPERTIES      = dword(-5);
+    SFVM_REARRANGE          = $00000001;
+    SFVM_ADDOBJECT          = $00000003;
+    SFVM_REMOVEOBJECT       = $00000006;
+    SFVM_UPDATEOBJECT       = $00000007;
+    SFVM_GETSELECTEDOBJECTS = $00000009;
+    SFVM_SETITEMPOS         = $0000000e;
+    SFVM_SETCLIPBOARD       = $00000010;
+    SFVM_SETPOINTS          = $00000017;
+    PID_IS_URL              = 2;
+    PID_IS_NAME             = 4;
+    PID_IS_WORKINGDIR       = 5;
+    PID_IS_HOTKEY           = 6;
+    PID_IS_SHOWCMD          = 7;
+    PID_IS_ICONINDEX        = 8;
+    PID_IS_ICONFILE         = 9;
+    PID_IS_WHATSNEW         = 10;
+    PID_IS_AUTHOR           = 11;
+    PID_IS_DESCRIPTION      = 12;
+    PID_IS_COMMENT          = 13;
+    PID_INTSITE_WHATSNEW      = 2;
+    PID_INTSITE_AUTHOR        = 3;
+    PID_INTSITE_LASTVISIT     = 4;
+    PID_INTSITE_LASTMOD       = 5;
+    PID_INTSITE_VISITCOUNT    = 6;
+    PID_INTSITE_DESCRIPTION   = 7;
+    PID_INTSITE_COMMENT       = 8;
+    PID_INTSITE_FLAGS         = 9;
+    PID_INTSITE_CONTENTLEN    = 10;
+    PID_INTSITE_CONTENTCODE   = 11;
+    PID_INTSITE_RECURSE       = 12;
+    PID_INTSITE_WATCH         = 13;
+    PID_INTSITE_SUBSCRIPTION  = 14;
+    PID_INTSITE_URL           = 15;
+    PID_INTSITE_TITLE         = 16;
+    PID_INTSITE_CODEPAGE      = 18;
+    PID_INTSITE_TRACKING      = 19;
+    PID_INTSITE_ICONINDEX     = 20;
+    PID_INTSITE_ICONFILE      = 21;
+
+
+// Flags for PID_IS_FLAGS
+    PIDISF_RECENTLYCHANGED  = $00000001;
+    PIDISF_CACHEDSTICKY     = $00000002;
+    PIDISF_CACHEIMAGES      = $00000010;
+    PIDISF_FOLLOWALLLINKS   = $00000020;
+
+// Values for PID_INTSITE_WATCH
+    PIDISM_GLOBAL           = 0;       // Monitor based on global setting
+    PIDISM_WATCH            = 1;       // User says watch
+    PIDISM_DONTWATCH        = 2;       // User says don't watch
+
+    SSF_SHOWALLOBJECTS          = $00000001;
+    SSF_SHOWEXTENSIONS          = $00000002;
+    SSF_HIDDENFILEEXTS          = $00000004;
+    SSF_SERVERADMINUI           = $00000004;
+    SSF_SHOWCOMPCOLOR           = $00000008;
+    SSF_SORTCOLUMNS             = $00000010;
+    SSF_SHOWSYSFILES            = $00000020;
+    SSF_DOUBLECLICKINWEBVIEW    = $00000080;
+    SSF_SHOWATTRIBCOL           = $00000100;
+    SSF_DESKTOPHTML             = $00000200;
+    SSF_WIN95CLASSIC            = $00000400;
+    SSF_DONTPRETTYPATH          = $00000800;
+    SSF_SHOWINFOTIP             = $00002000;
+    SSF_MAPNETDRVBUTTON         = $00001000;
+    SSF_NOCONFIRMRECYCLE        = $00008000;
+    SSF_HIDEICONS               = $00004000;
+    SSF_FILTER                  = $00010000;
+    SSF_WEBVIEW                 = $00020000;
+    SSF_SHOWSUPERHIDDEN         = $00040000;
+    SSF_SEPPROCESS              = $00080000;
+    SSF_NONETCRAWLING           = $00100000;
+    SSF_STARTPANELON            = $00200000;
+    SSF_SHOWSTARTPAGE           = $00400000;
+
+    SHPPFW_NONE             = $00000000;
+    SHPPFW_DIRCREATE        = $00000001;              // Create the directory if it doesn't exist without asking the user.
+    SHPPFW_DEFAULT          = SHPPFW_DIRCREATE;        // May change
+    SHPPFW_ASKDIRCREATE     = $00000002;              // Create the directory if it doesn't exist after asking the user.
+    SHPPFW_IGNOREFILENAME   = $00000004;              // Ignore the last item in pszPath because it's a file.  Example: pszPath="C:\DirA\DirB", only use "C:\DirA".
+    SHPPFW_NOWRITECHECK     = $00000008;              // Caller only needs to read from the drive, so don't check if it's READ ONLY.
+    SHPPFW_MEDIACHECKONLY   = $00000010;              // do the retrys on the media (or net path), return errors if the file can't be found
+
+Type                            
      HDROP    = THandle;
      PHIcon   = ^HIcon;