{ This file is part of the Free Pascal run time library. Copyright (c) 2007 by Florian Klaempfl member of the Free Pascal development team. See the file COPYING.FPC, included in this distribution, for details about the copyright. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Original copyright statement follows. } {$mode objfpc} unit shlobj; interface uses windows,activex,shellapi,commctrl; Const IID_IShellExtInit ='{000214E8-0000-0000-C000-000000000046}'; IID_IShellFolder : TGUID ='{000214E6-0000-0000-C000-000000000046}'; IID_IEnumList : TGUID ='{000214F2-0000-0000-C000-000000000046}'; IID_IAutoComplete : TGUID ='{00bb2762-6a77-11d0-a535-00c04fd7d062}'; IID_IAutoComplete2 : TGUID ='{EAC04BC0-3791-11d2-BB95-0060977B464C}'; IID_IContextMenu : TGUID ='{000214E4-0000-0000-c000-000000000046}'; IID_IContextMenu2 : TGUID ='{000214f4-0000-0000-c000-000000000046}'; IID_IContextMenu3 : TGUID ='{bcfce0a0-ec17-11d0-8d10-00a0c90f2719}'; IID_IPersistFolder : TGUID ='{000214EA-0000-0000-C000-000000000046}'; IID_IPersistFolder2 : TGUID ='{1AC3D9F0-175C-11d1-95BE-00609797EA4F}'; IID_IPersistIDListr : TGUID ='{1079acfc-29bd-11d3-8e0d-00c04f6837d5}'; IID_IEnumExtraSearch: TGUID ='{0E700BE1-9DB6-11d1-A1CE-00C04FD75D13}'; IID_IShellFolder2 : TGUID ='{93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}'; IID_IEXtractIconW : TGUID ='{000214fa-0000-0000-c000-000000000046}'; IID_IEXtractIconA : TGUID ='{000214eb-0000-0000-c000-000000000046}'; IID_IShellLinkA : TGUID ='{000214EE-0000-0000-C000-000000000046}'; CLSID_StdMarshal : TGUID = '{00000017-0000-0000-c000-000000000046}'; CLSID_IdentityUnmarshal : TGUID = '{0000001b-0000-0000-c000-000000000046}'; CLSID_InProcFreeMarshaler : TGUID = '{0000001c-0000-0000-c000-000000000046}'; CLSID_PSGenObject : TGUID = '{0000030c-0000-0000-c000-000000000046}'; CLSID_PSClientSite : TGUID = '{0000030d-0000-0000-c000-000000000046}'; CLSID_PSClassObject : TGUID = '{0000030e-0000-0000-c000-000000000046}'; CLSID_PSInPlaceActive : TGUID = '{0000030f-0000-0000-c000-000000000046}'; CLSID_PSInPlaceFrame : TGUID = '{00000310-0000-0000-c000-000000000046}'; CLSID_PSDragDrop : TGUID = '{00000311-0000-0000-c000-000000000046}'; CLSID_PSBindCtx : TGUID = '{00000312-0000-0000-c000-000000000046}'; CLSID_PSEnumerators : TGUID = '{00000313-0000-0000-c000-000000000046}'; CLSID_Picture_Metafile : TGUID = '{00000315-0000-0000-c000-000000000046}'; CLSID_StaticMetafile : TGUID = '{00000315-0000-0000-c000-000000000046}'; CLSID_Picture_Dib : TGUID = '{00000316-0000-0000-c000-000000000046}'; CLSID_StaticDib : TGUID = '{00000316-0000-0000-c000-000000000046}'; CLSID_Picture_EnhMetafile : TGUID = '{00000319-0000-0000-c000-000000000046}'; CLSID_DCOMAccessControl : TGUID = '{0000031d-0000-0000-c000-000000000046}'; CLSID_ShellDesktop : TGUID = '{00021400-0000-0000-c000-000000000046}'; CLSID_ShellLink : TGUID = '{00021401-0000-0000-c000-000000000046}'; CLSID_InternetExplorer : TGUID = '{0002DF01-0000-0000-C000-000000000046}'; CLSID_StdComponentCategoriesMgr : TGUID = '{0002e005-0000-0000-c000-000000000046}'; CLSID_WebCrawlerAgent : TGUID = '{08165ea0-e946-11cf-9c87-00aa005127ed}'; CLSID_ShellDispatchInproc : TGUID = '{0A89A860-D7B1-11CE-8350-444553540000}'; CLSID_OldHTMLFormElement : TGUID = '{0D04D285-6BEC-11CF-8B97-00AA00476DA6}'; CLSID_CFontPropPage : TGUID = '{0be35200-8f91-11ce-9de3-00aa004bb851}'; CLSID_CColorPropPage : TGUID = '{0be35201-8f91-11ce-9de3-00aa004bb851}'; CLSID_CPicturePropPage : TGUID = '{0be35202-8f91-11ce-9de3-00aa004bb851}'; CLSID_StdFont : TGUID = '{0be35203-8f91-11ce-9de3-00aa004bb851}'; CLSID_StdPicture : TGUID = '{0be35204-8f91-11ce-9de3-00aa004bb851}'; CLSID_ShellLinkObject : TGUID = '{11219420-1768-11D1-95BE-00609797EA4F}'; CLSID_HTMLLocation : TGUID = '{163BB1E1-6E00-11CF-837A-48DC04C10000}'; CLSID_WebViewFolderContents : TGUID = '{1820FED0-473E-11D0-A96C-00C04FD705A2}'; CLSID_HTMLDocument : TGUID = '{25336920-03F9-11CF-8FD0-00AA00686F13}'; CLSID_HTMLPluginDocument : TGUID = '{25336921-03f9-11cf-8fd0-00aa00686f13}'; CLSID_CMultiLanguage : TGUID = '{275C23E2-3747-11D0-9FEA-00AA003F8646}'; CLSID_HTMLImg : TGUID = '{3050F241-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLSelectElement : TGUID = '{3050F245-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTableCell : TGUID = '{3050F246-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLAnchorElement : TGUID = '{3050F248-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLDivPosition : TGUID = '{3050F249-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLBody : TGUID = '{3050F24A-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLOptionElement : TGUID = '{3050F24D-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLObjectElement : TGUID = '{3050F24E-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLFormElement : TGUID = '{3050F251-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLHRElement : TGUID = '{3050F252-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLEmbed : TGUID = '{3050F25D-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLUnknownElement : TGUID = '{3050F268-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLUListElement : TGUID = '{3050F269-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTextElement : TGUID = '{3050F26A-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTable : TGUID = '{3050F26B-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTableCol : TGUID = '{3050F26C-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTableRow : TGUID = '{3050F26D-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLPhraseElement : TGUID = '{3050F26E-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLParaElement : TGUID = '{3050F26F-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLOListElement : TGUID = '{3050F270-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLMapElement : TGUID = '{3050F271-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLListElement : TGUID = '{3050F272-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLLIElement : TGUID = '{3050F273-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLMetaElement : TGUID = '{3050F275-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLBaseElement : TGUID = '{3050F276-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLLinkElement : TGUID = '{3050F277-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLIsIndexElement : TGUID = '{3050F278-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLNextIdElement : TGUID = '{3050F279-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLHeaderElement : TGUID = '{3050F27A-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLFontElement : TGUID = '{3050F27B-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLDTElement : TGUID = '{3050F27C-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLDListElement : TGUID = '{3050F27D-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLDivElement : TGUID = '{3050F27E-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLDDElement : TGUID = '{3050F27F-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLBRElement : TGUID = '{3050F280-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLBlockElement : TGUID = '{3050F281-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLBaseFontElement : TGUID = '{3050F282-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLAreaElement : TGUID = '{3050F283-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTitleElement : TGUID = '{3050F284-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLStyle : TGUID = '{3050F285-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLDialog : TGUID = '{3050F28A-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLScriptElement : TGUID = '{3050F28C-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLInputTextElement : TGUID = '{3050F2AB-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTextAreaElement : TGUID = '{3050F2AC-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLInputFileElement : TGUID = '{3050F2AE-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLInputButtonElement : TGUID = '{3050F2B4-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLMarqueeElement : TGUID = '{3050F2B9-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLOptionButtonElement : TGUID = '{3050F2BE-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLInputImage : TGUID = '{3050F2C4-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLButtonElement : TGUID = '{3050F2C6-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLStyleSheet : TGUID = '{3050F2E4-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTableSection : TGUID = '{3050F2E9-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLTableCaption : TGUID = '{3050F2EC-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLFrameBase : TGUID = '{3050F312-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLFrameElement : TGUID = '{3050F314-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLIFrame : TGUID = '{3050F316-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLCommentElement : TGUID = '{3050F317-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLFrameSetSite : TGUID = '{3050F31A-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLLabelElement : TGUID = '{3050F32B-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLScreen : TGUID = '{3050F35D-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLBGsound : TGUID = '{3050F370-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLStyleElement : TGUID = '{3050F37D-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLStyleSheetsCollection : TGUID = '{3050F37F-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLNoShowElement : TGUID = '{3050F38B-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLOptionElementFactory : TGUID = '{3050F38D-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLImageElementFactory : TGUID = '{3050F38F-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLWindowProxy : TGUID = '{3050F391-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLStyleSheetRulesCollection : TGUID = '{3050F3CD-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLStyleSheetRule : TGUID = '{3050F3CE-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLRuleStyle : TGUID = '{3050F3D0-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLStyleFontFace : TGUID = '{3050F3D4-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLSpanFlow : TGUID = '{3050F3E6-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLFieldSetElement : TGUID = '{3050F3E8-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLLegendElement : TGUID = '{3050F3E9-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLFiltersCollection : TGUID = '{3050F3EF-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_HTMLSpanElement : TGUID = '{3050F3F5-98B4-11CF-BB82-00AA00BDCE0B}'; CLSID_CMimeTypes : TGUID = '{3050F3FE-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_CPlugins : TGUID = '{3050F3FF-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_COpsProfile : TGUID = '{3050F402-98B5-11CF-BB82-00AA00BDCE0B}'; CLSID_MHTMLDocument : TGUID = '{3050f3d9-98b5-11cf-bb82-00aa00bdce0b}'; CLSID_ClassInstallFilter : TGUID = '{32b533bb-edae-11d0-bd5a-00aa00b92af1}'; CLSID_CUrlHistory : TGUID = '{3c374a40-bae4-11cf-bf7d-00aa006946ee}'; CLSID_CdlProtocol : TGUID = '{3dd53d40-7b8b-11d0-b013-00aa0059ce02}'; CLSID_StdEncodingFilterFac : TGUID = '{54c37cd0-d944-11d0-a9f4-006097942311}'; CLSID_TaskbarList : TGUID = '{56fdf344-fd6d-11d0-958a-006097c9a090}'; CLSID_ShellFolderView : TGUID = '{62112AA1-EBE4-11CF-A5FB-0020AFE7292D}'; CLSID_CFSIconOverlayManager : TGUID = '{63b51f81-c868-11d0-999c-00c04fd655e1}'; CLSID_ShellUIHelper : TGUID = '{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}'; CLSID_ActiveDesktop : TGUID = '{75048700-ef1f-11d0-9888-006097deacf9}'; CLSID_StdHlink : TGUID = '{79eac9d0-baf9-11ce-8c82-00aa004ba90b}'; CLSID_StdHlinkBrowseContext : TGUID = '{79eac9d1-baf9-11ce-8c82-00aa004ba90b}'; CLSID_StdURLMoniker : TGUID = '{79eac9e0-baf9-11ce-8c82-00aa004ba90b}'; CLSID_StdURLProtocol : TGUID = '{79eac9e1-baf9-11ce-8c82-00aa004ba90b}'; CLSID_HttpProtocol : TGUID = '{79eac9e2-baf9-11ce-8c82-00aa004ba90b}'; CLSID_FtpProtocol : TGUID = '{79eac9e3-baf9-11ce-8c82-00aa004ba90b}'; CLSID_GopherProtocol : TGUID = '{79eac9e4-baf9-11ce-8c82-00aa004ba90b}'; CLSID_HttpSProtocol : TGUID = '{79eac9e5-baf9-11ce-8c82-00aa004ba90b}'; CLSID_MkProtocol : TGUID = '{79eac9e6-baf9-11ce-8c82-00aa004ba90b}'; CLSID_FileProtocol : TGUID = '{79eac9e7-baf9-11ce-8c82-00aa004ba90b}'; CLSID_UrlMkBindCtx : TGUID = '{79eac9f2-baf9-11ce-8c82-00aa004ba90b}'; CLSID_InternetSecurityManager : TGUID = '{7b8a2d94-0ac9-11d1-896c-00c04fb6bfc4}'; CLSID_InternetZoneManager : TGUID = '{7b8a2d95-0ac9-11d1-896c-00c04fb6bfc4}'; CLSID_CDLAgent : TGUID = '{7d559c10-9fe9-11d0-93f7-00aa0059ce02}'; CLSID_OverlayIdentifier_SlowFile : TGUID = '{7d688a77-c613-11d0-999b-00c04fd655e1}'; CLSID_StockFontPage : TGUID = '{7ebdaae0-8120-11cf-899f-00aa00688b10}'; CLSID_StockColorPage : TGUID = '{7ebdaae1-8120-11cf-899f-00aa00688b10}'; CLSID_StockPicturePage : TGUID = '{7ebdaae2-8120-11cf-899f-00aa00688b10}'; CLSID_WebBrowser : TGUID = '{8856F961-340A-11D0-A96B-00C04FD705A2}'; CLSID_DeCompMimeFilter : TGUID = '{8f6b0360-b80d-11d0-a9b3-006097942311}'; CLSID_ShellFolderViewOC : TGUID = '{9BA05971-F6A8-11CF-A442-00A0C90A8F39}'; CLSID_ShellWindows : TGUID = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'; CLSID_SubscriptionMgr : TGUID = '{ABBE31D0-6DAE-11D0-BECA-00C04FD940BE}'; CLSID_ChannelMgr : TGUID = '{B3CDAE90-D170-11D0-802B-00C04FD75D13}'; CLSID_CMLangString : TGUID = '{C04D65CF-B70D-11D0-B188-00AA0038C969}'; CLSID_HTMLWindow2 : TGUID = '{D48A6EC6-6A4A-11CF-94A7-444553540000}'; CLSID_OldHTMLDocument : TGUID = '{D48A6EC9-6A4A-11CF-94A7-444553540000}'; CLSID_CMLangConvertCharset : TGUID = '{D66D6F99-CDAA-11D0-B822-00C04FC9B31F}'; CLSID_WebBrowser_V1 : TGUID = '{EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}'; CLSID_HTMLHistory : TGUID = '{FECEAAA3-8405-11CF-8BA1-00AA00476DA6}'; CLSID_HTMLNavigator : TGUID = '{FECEAAA6-8405-11CF-8BA1-00AA00476DA6}'; CLSID_SoftDistExt : TGUID = '{b15b8dc0-c7e1-11d0-8680-00aa00bdcb71}'; CLSID_CURLSearchHook : TGUID = '{cfbfae00-17a6-11d0-99cb-00c04fd64497}'; CLSID_PersistPropset : TGUID = '{fb8f0821-0164-101b-84ed-08002b2ec713}'; CLSID_ConvertVBX : TGUID = '{fb8f0822-0164-101b-84ed-08002b2ec713}'; CLSID_InternetShortcut : TGUID = '{fbf23b40-e3f0-101b-8488-00aa003e56f8}'; CLSID_ShellItem : TGUID = '{9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917}'; CLSID_FileOpenDialog : TGUID = '{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7}'; CLSID_FileSaveDialog : TGUID = '{C0B4E2F3-BA21-4773-8DBA-335EC946EB8B}'; Const SV2GV_CURRENTVIEW = DWORD(-1); SV2GV_DEFAULTVIEW = DWORD(-2); INTERNET_MAX_URL_LENGTH = 2083; MAX_COLUMN_NAME_LEN = 80; MAX_COLUMN_DESC_LEN = 128; 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 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 CMIC_MASK_SHIFT_DOWN = $10000000; CMIC_MASK_CONTROL_DOWN = $40000000; CMIC_MASK_PTINVOKE = $20000000; 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 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 ISIOI_ICONFILE = $00000001; // path is returned through pwszIconFile ISIOI_ICONINDEX = $00000002; // icon index in pwszIconFile is returned through pIndex OI_ASYNC = $FFFFEEEE; IDO_SHGIOI_SHARE = $0FFFFFFF; IDO_SHGIOI_LINK = $0FFFFFFE; IDO_SHGIOI_SLOWFILE = $0FFFFFFFD; NT_CONSOLE_PROPS_SIG = $A0000002; NT_FE_CONSOLE_PROPS_SIG = $A0000004; EXP_DARWIN_ID_SIG = $A0000006; EXP_LOGO3_ID_SIG = $A0000007; EXP_SPECIAL_FOLDER_SIG = $A0000005; // LPEXP_SPECIAL_FOLDER EXP_SZ_LINK_SIG = $A0000001; // LPEXP_SZ_LINK (target) EXP_SZ_ICON_SIG = $A0000007; // LPEXP_SZ_LINK (icon) FO_MOVE = $0001; FO_COPY = $0002; FO_DELETE = $0003; FO_RENAME = $0004; FOF_MULTIDESTFILES = $0001; FOF_CONFIRMMOUSE = $0002; FOF_SILENT = $0004; // don't create progress/report FOF_RENAMEONCOLLISION = $0008; FOF_NOCONFIRMATION = $0010; // Don't prompt the user. FOF_WANTMAPPINGHANDLE = $0020; // Fill in SHFILEOPSTRUCT.hNameMappings FOF_ALLOWUNDO = $0040; FOF_FILESONLY = $0080; // on *.*, do only files FOF_SIMPLEPROGRESS = $0100; // means don't show names of files FOF_NOCONFIRMMKDIR = $0200; // don't confirm making any needed dirs FOF_NOERRORUI = $0400; // don't put up error UI FOF_NOCOPYSECURITYATTRIBS = $0800; // dont copy NT file Security Attributes FOF_NORECURSION = $1000; // don't recurse into directories. FOF_NO_CONNECTED_ELEMENTS = $2000; // don't operate on connected file elements. FOF_WANTNUKEWARNING = $4000; // during delete operation, warn if nuking instead of recycling (partially overrides FOF_NOCONFIRMATION) FOF_NORECURSEREPARSE = $8000; // treat reparse points as objects, not containers PO_DELETE = $0013; // printer is being deleted PO_RENAME = $0014; // printer is being renamed PO_PORTCHANGE = $0020; // port this printer connected to is being changed PO_REN_PORT = $0034; // PO_RENAME and PO_PORTCHANGE at same time. 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 FVSIF_NEWFILE = $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; 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); CDBOSC_SETFOCUS = $00000000; CDBOSC_KILLFOCUS = $00000001; CDBOSC_SELCHANGE = $00000002; CDBOSC_RENAME = $00000003; CDBOSC_STATECHANGE = $00000004; CDB2N_CONTEXTMENU_DONE = $00000001; CDB2N_CONTEXTMENU_START = $00000002; CDB2GVF_SHOWALLFILES = $00000001; CSIDL_DESKTOP = $0000; // 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; // \Favorites CSIDL_STARTUP = $0007; // Start Menu\Programs\Startup CSIDL_RECENT = $0008; // \Recent CSIDL_SENDTO = $0009; // \SendTo CSIDL_BITBUCKET = $000a; // \Recycle Bin CSIDL_STARTMENU = $000b; // \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; // \Desktop CSIDL_DRIVES = $0011; // My Computer CSIDL_NETWORK = $0012; // Network Neighborhood (My Network Places) CSIDL_NETHOOD = $0013; // \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; // \Application Data CSIDL_PRINTHOOD = $001b; // \PrintHood CSIDL_LOCAL_APPDATA = $001c; // \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; // \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 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; FCSM_VIEWID = $00000001; FCSM_WEBVIEWTEMPLATE = $00000002; FCSM_INFOTIP = $00000004; FCSM_CLSID = $00000008; FCSM_ICONFILE = $00000010; FCSM_LOGO = $00000020; FCSM_FLAGS = $00000040; 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 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 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) 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 PDTIMER_RESET = $00000001; // Reset the timer so the progress will be calculated from now until the first ::SetProgress() is called so DWFRF_NORMAL = $0000; DWFRF_DELETECONFIGDATA = $0001; DWFAF_HIDDEN = $0001; // add hidden ITSSFLAG_COMPLETE_ON_DESTROY = $0000; ITSSFLAG_KILL_ON_DESTROY = $0001; ITSSFLAG_SUPPORTS_TERMINATE = $0002; ITSSFLAG_FLAGS_MASK = $0003; ITSSFLAG_THREAD_TERMINATE_TIMEOUT = $0010; ITSSFLAG_THREAD_POOL_TIMEOUT = $0020; ITSAT_DEFAULT_LPARAM = $ffffffff; 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 ? 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; COMPONENT_TOP = $3fffffff; // izOrder value meaning component is at the top IS_NORMAL = $00000001; IS_FULLSCREEN = $00000002; IS_SPLIT = $00000004; IS_VALIDSTATEBITS = dword(IS_NORMAL or IS_SPLIT or IS_FULLSCREEN or $80000000 or $40000000); // All of the currently defined IS_* bits. AD_APPLY_SAVE = $00000001; AD_APPLY_HTMLGEN = $00000002; AD_APPLY_REFRESH = $00000004; AD_APPLY_FORCE = $00000008; AD_APPLY_BUFFERED_REFRESH = $00000010; AD_APPLY_DYNAMICREFRESH = $00000020; 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; ADDURL_SILENT = $0001; COMPONENT_DEFAULT_LEFT = ($FFFF); COMPONENT_DEFAULT_TOP = ($FFFF); SSM_CLEAR = $0000; SSM_SET = $0001; SSM_REFRESH = $0002; SSM_UPDATE = $0004; 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; GADOF_DIRTY = $00000001; SHCDF_UPDATEITEM = $00000001; // this flag is a hint that the file has changed since the last call to GetItemData 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 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; 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; SHARD_PIDL = DWord($00000001); SHARD_PATHA = DWord($00000002); SHARD_PATHW = DWord($00000003); SHARD_APPIDINFO = DWord($00000004); SHARD_APPIDINFOIDLIST = DWord($00000005); SHARD_LINK = DWord($00000006); SHARD_APPIDINFOLINK = DWord($00000007); SHARD_SHELLITEM = DWord($00000008); 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; SHFMT_OPT_FULL = $0001; SHFMT_OPT_SYSONLY = $0002; 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 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; TBIF_DEFAULT = $00000000; TBIF_INTERNETBAR = $00010000; TBIF_STANDARDTOOLBAR = $00020000; TBIF_NOTOOLBAR = $00030000; SFVM_REARRANGE = $00000001; SFVM_ADDOBJECT = $00000003; SFVM_REMOVEOBJECT = $00000006; SFVM_UPDATEOBJECT = $00000007; SFVM_GETSELECTEDOBJECTS = $00000009; SFVM_SETITEMPOS = $0000000e; SFVM_SETCLIPBOARD = $00000010; SFVM_SETPOINTS = $00000017; PIDISF_RECENTLYCHANGED = $00000001; PIDISF_CACHEDSTICKY = $00000002; PIDISF_CACHEIMAGES = $00000010; PIDISF_FOLLOWALLLINKS = $00000020; 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_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 PUIFNF_DEFAULT = $00000000; PUIFNF_MNEMONIC = $00000001; // include mnemonic in display name PUIF_DEFAULT = $00000000; PUIF_RIGHTALIGN = $00000001; // this property should be right alligned PUIF_NOLABELININFOTIP = $00000002; // this property should not display a label in the infotip PUIFFDF_DEFAULT = $00000000; PUIFFDF_RIGHTTOLEFT = $00000001; // BIDI support, right to left caller PUIFFDF_SHORTFORMAT = $00000002; // short format version of string PUIFFDF_NOTIME = $00000004; // truncate time to days, not hours/mins/sec PUIFFDF_FRIENDLYDATE = $00000008; // "Today", "Yesterday", etc PUIFFDF_NOUNITS = $00000010; // don't do "KB", "MB", "KHz" CATINFO_NORMAL = $00000000; // Apply default properties to this category CATINFO_COLLAPSED = $00000001; // This category should appear collapsed. useful for the "None" category. CATINFO_HIDDEN = $00000002; // This category should follow the "Hidden" files setting for being displayed CATSORT_DEFAULT = $00000000; // Default Sort order CATSORT_NAME = $00000001; // Sort by name SLR_NO_UI = $0001; // don't post any UI durring the resolve operation, not msgs are pumped SLR_ANY_MATCH = $0002; // no longer used SLR_UPDATE = $0004; // save the link back to it's file if the track made it dirty SLR_NOUPDATE = $0008; SLR_NOSEARCH = $0010; // don't execute the search heuristics SLR_NOTRACK = $0020; // don't use NT5 object ID to track the link SLR_NOLINKINFO = $0040; // don't use the net and volume relative info SLR_INVOKE_MSI = $0080; // if we have a darwin link, then call msi to fault in the applicaion SLR_NO_UI_WITH_MSG_PUMP = $0101; // SLR_NO_UI + requires an enable modeless site or HWND SLGP_SHORTPATH = $0001; SLGP_UNCPRIORITY = $0002; SLGP_RAWPATH = $0004; SPINITF_NORMAL = $00000000; // default normal progress behavior SPINITF_MODAL = $00000001; // call punkSite->EnableModeless() or EnableWindow() SPINITF_NOMINIMIZE = $00000008; // Do not have a minimize button in the caption bar. ARCONTENT_AUTORUNINF = $00000002; // That's the one we have today, and always had ARCONTENT_AUDIOCD = $00000004; // Audio CD (not MP3 and the like, the stuff you buy at the store) ARCONTENT_DVDMOVIE = $00000008; // DVD Movie (not MPEGs, the stuff you buy at the store) ARCONTENT_BLANKCD = $00000010; // Blank CD-R/CD-RW ARCONTENT_BLANKDVD = $00000020; // Blank DVD-R/DVD-RW ARCONTENT_UNKNOWNCONTENT= $00000040; // Whatever files. Mean that it's formatted. ARCONTENT_AUTOPLAYPIX = $00000080; // Whatever files. Mean that it's formatted. ARCONTENT_AUTOPLAYMUSIC = $00000100; // Whatever files. Mean that it's formatted. ARCONTENT_AUTOPLAYVIDEO = $00000200; // Whatever files. Mean that it's formatted. SPBEGINF_NORMAL = $00000000; // default normal progress behavior SPBEGINF_AUTOTIME = $00000002; // automatically updates the "time remaining" text SPBEGINF_NOPROGRESSBAR = $00000010; // Don't display the progress bar (SetProgress() wont be called) SPBEGINF_MARQUEEPROGRESS= $00000020; // use marquee progress (comctl32 v6 required) EXPPS_FILETYPES = $00000001; IEI_PRIORITY_MAX = ITSAT_MAX_PRIORITY; IEI_PRIORITY_MIN = ITSAT_MIN_PRIORITY; IEIT_PRIORITY_NORMAL = ITSAT_DEFAULT_PRIORITY; IEIFLAG_ASYNC = $0001; // ask the extractor if it supports ASYNC extract (free threaded) IEIFLAG_CACHE = $0002; // returned from the extractor if it does NOT cache the thumbnail IEIFLAG_ASPECT = $0004; // passed to the extractor to beg it to render to the aspect ratio of the supplied rect IEIFLAG_OFFLINE = $0008; // if the extractor shouldn't hit the net to get any content neede for the rendering IEIFLAG_GLEAM = $0010; // does the image have a gleam ? this will be returned if it does IEIFLAG_SCREEN = $0020; // render as if for the screen (this is exlusive with IEIFLAG_ASPECT ) IEIFLAG_ORIGSIZE = $0040; // render to the approx size passed, but crop if neccessary IEIFLAG_NOSTAMP = $0080; // returned from the extractor if it does NOT want an icon stamp on the thumbnail IEIFLAG_NOBORDER = $0100; // returned from the extractor if it does NOT want an a border around the thumbnail IEIFLAG_QUALITY = $0200; // passed to the Extract method to indicate that a slower, higher quality image is desired, re-compute the thumbnail IEIFLAG_REFRESH = $0400; // returned from the extractor if it would like to have Refresh Thumbnail available DBIM_MINSIZE = $0001; DBIM_MAXSIZE = $0002; DBIM_INTEGRAL = $0004; DBIM_ACTUAL = $0008; DBIM_TITLE = $0010; DBIM_MODEFLAGS = $0020; DBIM_BKCOLOR = $0040; DBIMF_NORMAL = $0000; DBIMF_FIXED = $0001; DBIMF_FIXEDBMP = $0004; // a fixed background bitmap (if supported) DBIMF_VARIABLEHEIGHT = $0008; DBIMF_UNDELETEABLE = $0010; DBIMF_DEBOSSED = $0020; DBIMF_BKCOLOR = $0040; DBIMF_USECHEVRON = $0080; DBIMF_BREAK = $0100; DBIMF_ADDTOFRONT = $0200; DBIMF_TOPALIGN = $0400; DBIF_VIEWMODE_NORMAL = $0000; DBIF_VIEWMODE_VERTICAL = $0001; DBIF_VIEWMODE_FLOATING = $0002; DBIF_VIEWMODE_TRANSPARENT = $0004; DBID_BANDINFOCHANGED = 0; DBID_SHOWONLY = 1; DBID_MAXIMIZEBAND = 2; // Maximize the specified band (VT_UI4 == dwID) DBID_PUSHCHEVRON = 3; DBID_DELAYINIT = 4; // Note: _bandsite_ calls _band_ with this code DBID_FINISHINIT = 5; // Note: _bandsite_ calls _band_ with this code DBID_SETWINDOWTHEME = 6; // Note: _bandsite_ calls _band_ with this code DBID_PERMITAUTOHIDE = 7; IDD_WIZEXTN_FIRST = $5000; IDD_WIZEXTN_LAST = $5100; SHPWHF_NORECOMPRESS = $00000001; // don't allow/prompt for recompress of streams SHPWHF_NONETPLACECREATE = $00000002; // don't create a network place when transfer is complete SHPWHF_NOFILESELECTOR = $00000004; // don't show the file selector SHPWHF_VALIDATEVIAWEBFOLDERS = $00010000; // enable web folders to validate network places (ANP support) CDBE_RET_DEFAULT = $00000000; CDBE_RET_DONTRUNOTHEREXTS = $00000001; CDBE_RET_STOPWIZARD = $00000002; CDBE_TYPE_MUSIC = $00000001; CDBE_TYPE_DATA = $00000002; CDBE_TYPE_ALL = $FFFFFFFF; BSIM_STATE = $00000001; BSIM_STYLE = $00000002; BSSF_VISIBLE = $00000001; BSSF_NOTITLE = $00000002; BSSF_UNDELETEABLE = $00001000; BSIS_AUTOGRIPPER = $00000000; BSIS_NOGRIPPER = $00000001; BSIS_ALWAYSGRIPPER = $00000002; BSIS_LEFTALIGN = $00000004; BSIS_SINGLECLICK = $00000008; BSIS_NOCONTEXTMENU = $00000010; BSIS_NODROPTARGET = $00000020; BSIS_NOCAPTION = $00000040; BSIS_PREFERNOLINEBREAK = $00000080; BSIS_LOCKED = $00000100; NSWF_NONE_IMPLIES_ALL = $00000001; NSWF_ONE_IMPLIES_ALL = $00000002; NSWF_DONT_TRAVERSE_LINKS= $00000004; NSWF_DONT_ACCUMULATE_RESULT = $00000008; NSWF_TRAVERSE_STREAM_JUNCTIONS = $00000010; NSWF_FILESYSTEM_ONLY = $00000020; NSWF_SHOW_PROGRESS = $00000040; NSWF_FLAG_VIEWORDER = $00000080; NSWF_IGNORE_AUTOPLAY_HIDA = $00000100; MPPF_SETFOCUS = $00000001; // Menu can take the focus MPPF_INITIALSELECT = $00000002; // Select the first item MPPF_NOANIMATE = $00000004; // Do not animate this show MPPF_KEYBOARD = $00000010; // The menu is activated by keyboard MPPF_REPOSITION = $00000020; // Resposition the displayed bar. MPPF_FORCEZORDER = $00000040; // internal: Tells menubar to ignore Submenu positions MPPF_FINALSELECT = $00000080; // Select the last item MPPF_TOP = $20000000; // Popup menu up from point MPPF_LEFT = $40000000; // Popup menu left from point MPPF_RIGHT = $60000000; // Popup menu right from point MPPF_BOTTOM = $80000000; // Popup menu below point MPPF_POS_MASK = $E0000000; // Menu Position Mask SIGDN_NORMALDISPLAY = $00000000; SIGDN_PARENTRELATIVEPARSING = $80018001; SIGDN_PARENTRELATIVEFORADDRESSBAR = $8001c001; SIGDN_DESKTOPABSOLUTEPARSING = $80028000; SIGDN_PARENTRELATIVEEDITING = $80031001; SIGDN_DESKTOPABSOLUTEEDITING = $8004c000; SIGDN_FILESYSPATH = $80058000; SIGDN_URL = $80068000; SICHINT_DISPLAY = $00000000; SICHINT_ALLFIELDS = $80000000; SICHINT_CANONICAL = $10000000; BFO_NONE = $00000000; // Do nothing. BFO_BROWSER_PERSIST_SETTINGS = $00000001; // Does this item want the browser stream? (Same window position as IE browser windows?) BFO_RENAME_FOLDER_OPTIONS_TOINTERNET= $00000002; // Rename "Folder Options" to "Internet Options" in the Tools or View menu? BFO_BOTH_OPTIONS = $00000004; // Keep both "Folder Options" and "Internet Options" in the Tools or View menu? BIF_PREFER_INTERNET_SHORTCUT = $00000008; // NSE would prefer a .url shortcut over a .lnk shortcut BFO_BROWSE_NO_IN_NEW_PROCESS = $00000010; // Specify this flag if you don't want the "Browse in New Process" via invoking a shortcut. BFO_ENABLE_HYPERLINK_TRACKING = $00000020; // Does this NSE want it's display name tracked to determine when hyperlinks should be tagged as previously used? BFO_USE_IE_OFFLINE_SUPPORT = $00000040; // Use "Internet Explorer"'s offline support? BFO_SUBSTITUE_INTERNET_START_PAGE = $00000080; // Does this NSE want to use the Start Page support? BFO_USE_IE_LOGOBANDING = $00000100; // Use the Brand block in the Toolbar. (Spinning globe or whatever it is this year) BFO_ADD_IE_TOCAPTIONBAR = $00000200; // Should " - Internet Explorer" be appended to display name in the Captionbar BFO_USE_DIALUP_REF = $00000400; // Should the DialUp ref count get a ref while the browse is navigated to this location? This will also enable the ICW and Software update. BFO_USE_IE_TOOLBAR = $00000800; // Should the IE toolbar be used? BFO_NO_PARENT_FOLDER_SUPPORT = $00001000; // Can you NOT navigate to a parent folder? Used for Backspace button to parent folder or the View.GoTo.ParentFolder feature. BFO_NO_REOPEN_NEXT_RESTART = $00002000; // Browser windows are NOT reopened the next time the shell boots if the windows were left open on the previous logoff. Does this NSE want the same feature? BFO_GO_HOME_PAGE = $00004000; // Add "Home Page" to menu (Go). BFO_PREFER_IEPROCESS = $00008000; // prefers to use IEXPLORE.EXE over EXPLORER.EXE BFO_SHOW_NAVIGATION_CANCELLED = $00010000; // If navigation is aborted, show the "Action Cancelled" HTML page. BFO_USE_IE_STATUSBAR = $00020000; // Use the persisted IE status bar settings BFO_QUERY_ALL = $FFFFFFFF; // Return all values set. NWMF_UNLOADING = $0001; // The query is occuring during onBeforeUnload or onUnload NWMF_USERINITED = $0002; // The query is occuring in the context of what trident considers to be a user initiated action NWMF_FIRST = $0004; // This is the first query since the begining of the last user initiated action NWMF_OVERRIDEKEY = $0008; // The override key was pressed at the time the query was made NWMF_SHOWHELP = $0010; // New window is an HTML help window NWMF_HTMLDIALOG = $0020; // New window is an HTML dialog NWMF_FROMDIALOGCHILD = $0040; // Called from an HTML dialog - do not show UI in parent window NWMF_USERREQUESTED = $0080; // There is no doubt the user requested this window (from RClick->Open in New Window, or Shift+Clicked a link) NWMF_USERALLOWED = $0100; // This popup is the result of the user requesting a replay that resulted in a refresh SMDM_SHELLFOLDER = $00000001; // This is for an item in the band SMDM_HMENU = $00000002; // This is for the Band itself SMDM_TOOLBAR = $00000004; // Plain toolbar, not associated with a shell folder or hmenu SMIM_TYPE = $00000001; SMIM_FLAGS = $00000002; SMIM_ICON = $00000004; SMIT_SEPARATOR = $00000001; SMIT_STRING = $00000002; SMIF_ICON = $00000001; // Show an icon SMIF_ACCELERATOR = $00000002; // Underline the character marked w/ '&' SMIF_DROPTARGET = $00000004; // Item is a drop target SMIF_SUBMENU = $00000008; // Item has a submenu SMIF_CHECKED = $00000020; // Item has a Checkmark SMIF_DROPCASCADE = $00000040; // Item can cascade out during drag/drop SMIF_HIDDEN = $00000080; // Don't display item SMIF_DISABLED = $00000100; // Should be unselectable. Gray. SMIF_TRACKPOPUP = $00000200; // Should be unselectable. Gray. SMIF_DEMOTED = $00000400; // Display item in "Demoted" state. SMIF_ALTSTATE = $00000800; // Displayed in "Altered State" SMIF_DRAGNDROP = $00001000; // If item that is being dragged hovers over an item for long enough then it SMC_EXECs that item SMIF_NEW = $00002000; // Item is newly-installed or otherwise attractive (XP) SMC_INITMENU = $00000001; // The callback is called to init a menuband SMC_CREATE = $00000002; SMC_EXITMENU = $00000003; // The callback is called when menu is collapsing SMC_GETINFO = $00000005; // The callback is called to return DWORD values SMC_GETSFINFO = $00000006; // The callback is called to return DWORD values SMC_GETOBJECT = $00000007; // The callback is called to get some object SMC_GETSFOBJECT = $00000008; // The callback is called to get some object SMC_SFEXEC = $00000009; // The callback is called to execute an shell folder item SMC_SFSELECTITEM = $0000000A; // The callback is called when an item is selected SMC_REFRESH = $00000010; // Menus have completely refreshed. Reset your state. SMC_DEMOTE = $00000011; // Demote an item SMC_PROMOTE = $00000012; // Promote an item, wParam = SMINV_* flag SMC_DEFAULTICON = $00000016; // Returns Default icon location in wParam, index in lParam SMC_NEWITEM = $00000017; // Notifies item is not in the order stream. SMC_CHEVRONEXPAND = $00000019; // Notifies of a expansion via the chevron SMC_DISPLAYCHEVRONTIP = $0000002A; // S_OK display, S_FALSE not. SMC_SETSFOBJECT = $0000002D; // Called to save the passed object SMC_SHCHANGENOTIFY = $0000002E; // Called when a Change notify is received. lParam points to SMCSHCHANGENOTIFYSTRUCT SMC_CHEVRONGETTIP = $0000002F; // Called to get the chevron tip text. wParam = Tip title, Lparam = TipText Both MAX_PATH SMC_SFDDRESTRICTED = $00000030; // Called requesting if it's ok to drop. wParam = IDropTarget. ATTACHMENT_PROMPT_NONE = $0000; ATTACHMENT_PROMPT_SAVE = $0001; ATTACHMENT_PROMPT_EXEC = $0002; ATTACHMENT_PROMPT_EXEC_OR_SAVE = $0003; ATTACHMENT_ACTION_CANCEL= $0000; ATTACHMENT_ACTION_SAVE = $0001; ATTACHMENT_ACTION_EXEC = $0002; SMINIT_DEFAULT = $00000000; // No Options SMINIT_RESTRICT_DRAGDROP= $00000002; // Don't allow Drag and Drop SMINIT_TOPLEVEL = $00000004; // This is the top band. SMINIT_CACHED = $00000010; SMINIT_VERTICAL = $10000000; // This is a vertical menu SMINIT_HORIZONTAL = $20000000; // This is a horizontal menu (does not inherit) ANCESTORDEFAULT = dword(-1); SMSET_TOP = $10000000; // Bias this namespace to the top of the menu SMSET_BOTTOM = $20000000; // Bias this namespace to the bottom of the menu SMSET_DONTOWN = $00000001; // The Menuband doesn't own the non-ref counted object SMINV_REFRESH = $00000001; SMINV_ID = $00000008; FDEOR_DEFAULT = 0; FDEOR_ACCEPT = 1; FDEOR_REFUSE = 2; FDESVR_DEFAULT = 0; FDESVR_ACCEPT = 1; FDESVR_REFUSE = 2; FDAP_BOTTOM = 0; FDAP_TOP = 1; FOS_OVERWRITEPROMPT = $2; FOS_STRICTFILETYPES = $4; FOS_NOCHANGEDIR = $8; FOS_PICKFOLDERS = $20; FOS_FORCEFILESYSTEM = $40; FOS_ALLNONSTORAGEITEMS = $80; FOS_NOVALIDATE = $100; FOS_ALLOWMULTISELECT = $200; FOS_PATHMUSTEXIST = $800; FOS_FILEMUSTEXIST = $1000; FOS_CREATEPROMPT = $2000; FOS_SHAREAWARE = $4000; FOS_NOREADONLYRETURN = $8000; FOS_NOTESTFILECREATE = $10000; FOS_HIDEMRUPLACES = $20000; FOS_HIDEPINNEDPLACES = $40000; FOS_NODEREFERENCELINKS = $100000; FOS_DONTADDTORECENT = $2000000; FOS_FORCESHOWHIDDEN = $10000000; FOS_DEFAULTNOMINIMODE = $20000000; FOS_FORCEPREVIEWPANEON = $40000000; Type SFGAOF = ULONG; TSFGAOF = SFGAOF; PSFGAOF = ^SFGAOF; SHCONTF = longint; TSHCONTF = SHCONTF; PSHCONTF = ^SHCONTF; SIGDN = longint; TSIGDN = SIGDN; PSIGDN = ^SIGDN; SICHINTF = longint; TSICHINTF = SICHINTF; PSICHINTF = ^SICHINTF; PROPERTYUI_NAME_FLAGS = DWord; // enum PROPERTYUI_FORMAT_FLAGS = DWord; PROPERTYUI_FLAGS = Dword; CATSORT_FLAGS = DWORD; CATEGORYINFO_FLAGS = DWord; PPROPERTYUI_NAME_FLAGS = ^PROPERTYUI_NAME_FLAGS; PPROPERTYUI_FORMAT_FLAGS = ^PROPERTYUI_FORMAT_FLAGS; PPROPERTYUI_FLAGS = ^PROPERTYUI_FLAGS; PCATSORT_FLAGS = ^CATSORT_FLAGS; PCATEGORYINFO_FLAGS = ^CATEGORYINFO_FLAGS; RESTRICTIONS = DWORD; TRESTRICTIONS = RESTRICTIONS; PRESTRICTIONS = ^RESTRICTIONS; FOLDERVIEWMODE = DWORD; SHColumnID = packed record fmtid : TGUID; pid : DWORD; end; CATEGORY_INFO = record cif : CATEGORYINFO_FLAGS; wsname: array[0..259] of wchar; end; TCATEGORY_INFO = CATEGORY_INFO; PCATEGORY_INFO = ^CATEGORY_INFO; LPSHColumnID = SHColumnID; TSHColumnid = SHColumnID; pSHColumnID = LPSHColumnID; IShellView = Interface; IShellFolder = Interface; IShellBrowser = Interface; LPFNVIEWCALLBACK = function (psvouter:IShellView;psf : IShellFolder;hwndMain:HWND ;uMSG:UINT;wParam:WPARAM;lParam:LPARAM) :HRESULT; StdCall; LPFNDFMCALLBACK = function (psf:IShellFolder; HWND: hwnd;pdtobj:IDataObject;uMsg:UINT;WPARAM:wParam; LPARAM: lParam) :HRESULT; StdCall; IShellFolderViewCB = Interface(IUnknown) ['{2047E320-F2A9-11CE-AE65-08002B2E1262}'] function MessageSFVCB (uMSG: UINT;wparam:WPARAM;LPARAM:lParam):HResult; stdcall; end; LPTBBUTTONSB = LPTBBUTTON; SVSIF = UINT; TSVSIF = SVSIF; SHELLVIEWID = TGUID; TSHELLVIEWID = TGUID; PSHELLVIEWID = ^TGUID; LPVIEWSETTINGS = Pchar; _CMInvokeCommandInfoEx = record cbSize : DWORD; { must be sizeof(CMINVOKECOMMANDINFOEX) } fMask : DWORD; { any combination of CMIC_MASK_* } hwnd : HWND; { might be NULL (indicating no owner window) } lpVerb : LPCSTR; { either a string or MAKEINTRESOURCE(idOffset) } lpParameters : LPCSTR; { might be NULL (indicating no parameter) } lpDirectory : LPCSTR; { might be NULL (indicating no specific directory) } nShow : longint; { one of SW_ values for ShowWindow() API } dwHotKey : DWORD; hIcon : HANDLE; lpTitle : LPCSTR; { For CreateProcess-StartupInfo.lpTitle } lpVerbW : LPCWSTR; { Unicode verb (for those who can use it) } lpParametersW : LPCWSTR; { Unicode parameters (for those who can use it) } lpDirectoryW : LPCWSTR; { Unicode directory (for those who can use it) } lpTitleW : LPCWSTR; { Unicode title (for those who can use it) } ptInvoke : POINT; { Point where it's invoked } end; TCMINVOKECOMMANDINFOEX = _CMInvokeCommandInfoEx; PCMINVOKECOMMANDINFOEX = ^TCMINVOKECOMMANDINFOEX; LPCMINVOKECOMMANDINFOEX = PCMInvokeCommandInfoEx; PLPCMINVOKECOMMANDINFOEX = ^LPCMINVOKECOMMANDINFOEX; PPERSIST_FOLDER_TARGET_INFO = ^PERSIST_FOLDER_TARGET_INFO; PERSIST_FOLDER_TARGET_INFO = record pidlTargetFolder : LPITEMIDLIST; { pidl for the folder we want to intiailize } szTargetParsingName : array[0..(MAX_PATH)-1] of WCHAR; { optional parsing name for the target } szNetworkProvider : array[0..(MAX_PATH)-1] of WCHAR; { optional network provider } dwAttributes : DWORD; { optional FILE_ATTRIBUTES_ flags (-1 if not used) } csidl : longint; { optional folder index (SHGetFolderPath()) -1 if not used } end; TPERSIST_FOLDER_TARGET_INFO = PERSIST_FOLDER_TARGET_INFO; DATABLOCK_HEADER = record cbSize : DWORD; { Size of this extra data block } dwSignature : DWORD; { signature of this extra data block } end; TDATABLOCKHEADER = DATABLOCK_HEADER; TDATABLOCK_HEADER = DATABLOCK_HEADER; PDATABLOCK_HEADER = ^TDATABLOCK_HEADER; PDATABLOCKHEADER = ^TDATABLOCKHEADER; LPDATABLOCK_HEADER = PDATABLOCK_HEADER; PLPDATABLOCK_HEADER = ^LPDATABLOCK_HEADER; LPDBLIST = PDATABLOCK_HEADER; PLPDBLIST = ^LPDBLIST; PNT_CONSOLE_PROPS = ^NT_CONSOLE_PROPS; NT_CONSOLE_PROPS = record dbh : DATABLOCK_HEADER; wFillAttribute : WORD; { fill attribute for console } wPopupFillAttribute : WORD; { fill attribute for console popups } dwScreenBufferSize : COORD; { screen buffer size for console } dwWindowSize : COORD; { window size for console } dwWindowOrigin : COORD; { window origin for console } nFont : DWORD; nInputBufferSize : DWORD; dwFontSize : COORD; uFontFamily : UINT; uFontWeight : UINT; FaceName : array[0..(LF_FACESIZE)-1] of WCHAR; uCursorSize : UINT; bFullScreen : BOOL; bQuickEdit : BOOL; bInsertMode : BOOL; bAutoPosition : BOOL; uHistoryBufferSize : UINT; uNumberOfHistoryBuffers : UINT; bHistoryNoDup : BOOL; ColorTable : array[0..15] of COLORREF; end; TNT_CONSOLE_PROPS = NT_CONSOLE_PROPS; LPNT_CONSOLE_PROPS = PNT_CONSOLE_PROPS; PLPNT_CONSOLE_PROPS = ^LPNT_CONSOLE_PROPS; PNT_FE_CONSOLE_PROPS = ^NT_FE_CONSOLE_PROPS; NT_FE_CONSOLE_PROPS = record dbh : DATABLOCK_HEADER; uCodePage : UINT; { This is a FE Console property } end; TNT_FE_CONSOLE_PROPS = NT_FE_CONSOLE_PROPS; LPNT_FE_CONSOLE_PROPS = PNT_FE_CONSOLE_PROPS; PLPNT_FE_CONSOLE_PROPS = ^LPNT_FE_CONSOLE_PROPS; PEXP_DARWIN_LINK = ^EXP_DARWIN_LINK; EXP_DARWIN_LINK = record dbh : DATABLOCK_HEADER; szDarwinID : array[0..(MAX_PATH)-1] of CHAR; { ANSI darwin ID associated with link } szwDarwinID : array[0..(MAX_PATH)-1] of WCHAR; { UNICODE darwin ID associated with link } end; TEXP_DARWIN_LINK = EXP_DARWIN_LINK; LPEXP_DARWIN_LINK = PEXP_DARWIN_LINK; PLPEXP_DARWIN_LINK = ^LPEXP_DARWIN_LINK; PEXP_SPECIAL_FOLDER = ^EXP_SPECIAL_FOLDER; EXP_SPECIAL_FOLDER = record cbSize : DWORD; { Size of this extra data block } dwSignature : DWORD; { signature of this extra data block } idSpecialFolder : DWORD; { special folder id this link points into } cbOffset : DWORD; { ofset into pidl from SLDF_HAS_ID_LIST for child } end; LPEXP_SPECIAL_FOLDER = PEXP_SPECIAL_FOLDER; PLPEXP_SPECIAL_FOLDER = ^LPEXP_SPECIAL_FOLDER; TEXP_SPECIAL_FOLDER = EXP_SPECIAL_FOLDER; PEXP_SZ_LINK = ^EXP_SZ_LINK; EXP_SZ_LINK = record cbSize : DWORD; { Size of this extra data block } dwSignature : DWORD; { signature of this extra data block } szTarget : array[0..(MAX_PATH)-1] of CHAR; { ANSI target name w/EXP_SZ in it } swzTarget : array[0..(MAX_PATH)-1] of WCHAR; { UNICODE target name w/EXP_SZ in it } end; LPEXP_SZ_LINK = PEXP_SZ_LINK; PLPEXP_SZ_LINK = ^LPEXP_SZ_LINK; TEXP_SZ_LINK = EXP_SZ_LINK; PFVSHOWINFO = ^FVSHOWINFO; FVSHOWINFO = record { Stuff passed into viewer (in) } cbSize : DWORD; { Size of structure for future expansion... } hwndOwner : HWND; { who is the owner window. } iShow : longint; { The show command } { Passed in and updated (in/Out) } dwFlags : DWORD; { flags } rect : RECT; { Where to create the window may have defaults } punkRel : IUnknown; { Relese this interface when window is visible } { Stuff that might be returned from viewer (out) } strNewFile : array[0..(MAX_PATH)-1] of OLECHAR; { New File to view. } end; TFVSHOWINFO = FVSHOWINFO; LPFVSHOWINFO = PFVSHOWINFO; PLPFVSHOWINFO = ^LPFVSHOWINFO; PSHFOLDERCUSTOMSETTINGSA = ^SHFOLDERCUSTOMSETTINGSA; SHFOLDERCUSTOMSETTINGSA = record dwSize : DWORD; dwMask : DWORD; { IN/OUT Which Attributes to Get/Set } pvid : PSHELLVIEWID; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } { The folder's WebView template path } pszWebViewTemplate : LPSTR; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } cchWebViewTemplate : DWORD; { IN - Specifies the size of the buffer pointed to by pszWebViewTemplate } pszWebViewTemplateVersion : LPSTR; { Ignored if dwReadWrite is FCS_READ } pszInfoTip : LPSTR; { currently IN only } cchInfoTip : DWORD; { Infotip for the folder } { OUT - if dwReadWrite is FCS_READ, IN - otherwise } { IN - Specifies the size of the buffer pointed to by pszInfoTip } pclsid : PCLSID; { Ignored if dwReadWrite is FCS_READ } { CLSID that points to more info in the registry } dwFlags : DWORD; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } pszIconFile : LPSTR; { Other flags for the folder. Takes FCS_FLAG_* values } cchIconFile : DWORD; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } { OUT - if dwReadWrite is FCS_READ, IN - otherwise } iIconIndex : longint; { IN - Specifies the size of the buffer pointed to by pszIconFile } { Ignored if dwReadWrite is FCS_READ } pszLogo : LPSTR; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } cchLogo : DWORD; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } end; { IN - Specifies the size of the buffer pointed to by pszIconFile } { Ignored if dwReadWrite is FCS_READ } LPSHFOLDERCUSTOMSETTINGSA = PSHFOLDERCUSTOMSETTINGSA; PLPSHFOLDERCUSTOMSETTINGSA = ^LPSHFOLDERCUSTOMSETTINGSA; TSHFOLDERCUSTOMSETTINGSA = SHFOLDERCUSTOMSETTINGSA; PSHFOLDERCUSTOMSETTINGSW = ^SHFOLDERCUSTOMSETTINGSW; SHFOLDERCUSTOMSETTINGSW = record dwSize : DWORD; dwMask : DWORD; pvid : PSHELLVIEWID; pszWebViewTemplate : LPWSTR; cchWebViewTemplate : DWORD; pszWebViewTemplateVersion : LPWSTR; pszInfoTip : LPWSTR; cchInfoTip : DWORD; pclsid : PCLSID; dwFlags : DWORD; pszIconFile : LPWSTR; cchIconFile : DWORD; iIconIndex : longint; pszLogo : LPWSTR; cchLogo : DWORD; end; LPSHFOLDERCUSTOMSETTINGSW = PSHFOLDERCUSTOMSETTINGSW; PLPSHFOLDERCUSTOMSETTINGSW = ^LPSHFOLDERCUSTOMSETTINGSW; TSHFOLDERCUSTOMSETTINGSW = SHFOLDERCUSTOMSETTINGSW; _browseinfoA = record hwndOwner : HWND; pidlRoot : LPCITEMIDLIST; pszDisplayName : LPSTR; { Return display name of item selected. } lpszTitle : LPCSTR; { text to go in the banner over the tree. } ulFlags : UINT; { Flags that control the return stuff } lpfn : BFFCALLBACK; lParam : LPARAM; { extra info that's passed back in callbacks } iImage : longint; { output var: where to return the Image index. } end; BROWSEINFOA = _browseinfoA; PBROWSEINFOA = ^BROWSEINFOA; TBROWSEINFOA = BROWSEINFOA; PPBROWSEINFOA = ^PBROWSEINFOA; LPBROWSEINFOA = PbrowseinfoA; PLPBROWSEINFOA = ^LPBROWSEINFOA; _browseinfoW = record hwndOwner : HWND; pidlRoot : LPCITEMIDLIST; pszDisplayName : LPWSTR; { Return display name of item selected. } lpszTitle : LPCWSTR; { text to go in the banner over the tree. } ulFlags : UINT; { Flags that control the return stuff } lpfn : BFFCALLBACK; lParam : LPARAM; { extra info that's passed back in callbacks } iImage : longint; { output var: where to return the Image index. } end; BROWSEINFOW = _browseinfoW; PBROWSEINFOW = ^BROWSEINFOW; PPBROWSEINFOW = ^PBROWSEINFOW; LPBROWSEINFOW = PbrowseinfoW; PLPBROWSEINFOW = ^LPBROWSEINFOW; TBROWSEINFOW = BROWSEINFOW; P_EnumImageStoreDATAtag = ^_EnumImageStoreDATAtag; _EnumImageStoreDATAtag = record szPath : array[0..(MAX_PATH)-1] of WCHAR; ftTimeStamp : FILETIME; end; ENUMSHELLIMAGESTOREDATA = _EnumImageStoreDATAtag; PENUMSHELLIMAGESTOREDATA = ^ENUMSHELLIMAGESTOREDATA; PPENUMSHELLIMAGESTOREDATA = ^PENUMSHELLIMAGESTOREDATA; TENUMSHELLIMAGESTOREDATA = _EnumImageStoreDATAtag; PBANDINFOSFB = ^BANDINFOSFB; BANDINFOSFB = record dwMask : DWORD; { [in] ISFB_MASK mask of valid fields from crBkgnd on } dwStateMask : DWORD; { [in] ISFB_STATE mask of dwState bits being set/queried } dwState : DWORD; { [in/out] ISFB_STATE bits } crBkgnd : COLORREF; { [in/out] } crBtnLt : COLORREF; { [in/out] } crBtnDk : COLORREF; { [in/out] } wViewMode : WORD; { [in/out] } wAlign : WORD; { not used (yet) } psf : IShellFolder; { [out] } pidl : LPITEMIDLIST; { [out] } end; PPBANDINFOSFB = ^PBANDINFOSFB; _tagWALLPAPEROPT = record dwSize : DWORD; { size of this Structure. } dwStyle : DWORD; { WPSTYLE_* mentioned above } end; WALLPAPEROPT = _tagWALLPAPEROPT; TWALLPAPEROPT = _tagWALLPAPEROPT; PWALLPAPEROPT = ^WALLPAPEROPT; PLPWALLPAPEROPT = ^LPWALLPAPEROPT; LPWALLPAPEROPT = WALLPAPEROPT; PLPCWALLPAPEROPT = ^LPCWALLPAPEROPT; LPCWALLPAPEROPT = WALLPAPEROPT; _tagCOMPONENTSOPT = record dwSize : DWORD; {Size of this structure } fEnableComponents : BOOL; {Enable components? } fActiveDesktop : BOOL; { Active desktop enabled ? } end; COMPONENTSOPT = _tagCOMPONENTSOPT; TCOMPONENTSOPT = _tagCOMPONENTSOPT; PCOMPONENTSOPT = ^COMPONENTSOPT; PLPCOMPONENTSOPT = ^LPCOMPONENTSOPT; LPCOMPONENTSOPT = COMPONENTSOPT; PLPCCOMPONENTSOPT = ^LPCCOMPONENTSOPT; LPCCOMPONENTSOPT = COMPONENTSOPT; _tagCOMPPOS = record dwSize : DWORD; {Size of this structure } iLeft : longint; {Left of top-left corner in screen co-ordinates. } iTop : longint; {Top of top-left corner in screen co-ordinates. } dwWidth : DWORD; { Width in pixels. } dwHeight : DWORD; { Height in pixels. } izIndex : longint; { Indicates the Z-order of the component. } fCanResize : BOOL; { Is the component resizeable? } fCanResizeX : BOOL; { Resizeable in X-direction? } fCanResizeY : BOOL; { Resizeable in Y-direction? } iPreferredLeftPercent : longint;{Left of top-left corner as percent of screen width } iPreferredTopPercent : longint; {Top of top-left corner as percent of screen height } end; COMPPOS = _tagCOMPPOS; TCOMPPOS = _tagCOMPPOS; PCOMPPOS = ^COMPPOS; PLPCOMPPOS = ^LPCOMPPOS; LPCOMPPOS = COMPPOS; PLPCCOMPPOS = ^LPCCOMPPOS; LPCCOMPPOS = COMPPOS; _tagCOMPSTATEINFO = record dwSize : DWORD; { Size of this structure. } iLeft : longint; { Left of the top-left corner in screen co-ordinates. } iTop : longint; { Top of top-left corner in screen co-ordinates. } dwWidth : DWORD; { Width in pixels. } dwHeight : DWORD; { Height in pixels. } dwItemState : DWORD; { State of the component (full-screen mode or split-screen or normal state. } end; COMPSTATEINFO = _tagCOMPSTATEINFO; TCOMPSTATEINFO = _tagCOMPSTATEINFO; PCOMPSTATEINFO = ^COMPSTATEINFO; PLPCOMPSTATEINFO = ^LPCOMPSTATEINFO; LPCOMPSTATEINFO = COMPSTATEINFO; PLPCCOMPSTATEINFO = ^LPCCOMPSTATEINFO; LPCCOMPSTATEINFO = COMPSTATEINFO; _tagIE4COMPONENT = record dwSize : DWORD; {Size of this structure } dwID : DWORD; {Reserved: Set it always to zero. } iComponentType : longint; {One of COMP_TYPE_* } fChecked : BOOL; { Is this component enabled? } fDirty : BOOL; { Had the component been modified and not yet saved to disk? } fNoScroll : BOOL; { Is the component scrollable? } cpPos : COMPPOS; { Width, height etc., } {} wszFriendlyName : array[0..(MAX_PATH)-1] of WCHAR; { Friendly name of component. } wszSource : array[0..(INTERNET_MAX_URL_LENGTH)-1] of WCHAR; {URL of the component. } wszSubscribedURL : array[0..(INTERNET_MAX_URL_LENGTH)-1] of WCHAR; {Subscrined URL } end; IE4COMPONENT = _tagIE4COMPONENT; TIE4COMPONENT = _tagIE4COMPONENT; PIE4COMPONENT = ^IE4COMPONENT; PLPIE4COMPONENT = ^LPIE4COMPONENT; LPIE4COMPONENT = IE4COMPONENT; PLPCIE4COMPONENT = ^LPCIE4COMPONENT; LPCIE4COMPONENT = IE4COMPONENT; _tagCOMPONENT = record dwSize : DWORD; {Size of this structure } dwID : DWORD; {} {Reserved: Set it always to zero. } iComponentType : longint; {One of COMP_TYPE_* } fChecked : BOOL; { Is this component enabled? } fDirty : BOOL; { Had the component been modified and not yet saved to disk? } fNoScroll : BOOL; { Is the component scrollable? } cpPos : COMPPOS; { Width, height etc., } wszFriendlyName : array[0..(MAX_PATH)-1] of WCHAR; { Friendly name of component. } wszSource : array[0..(INTERNET_MAX_URL_LENGTH)-1] of WCHAR; {URL of the component. } wszSubscribedURL : array[0..(INTERNET_MAX_URL_LENGTH)-1] of WCHAR; {Subscrined URL } {New fields are added below. Everything above here must exactly match the IE4COMPONENT Structure. } dwCurItemState : DWORD; { Current state of the Component. } csiOriginal : COMPSTATEINFO; { Original state of the component when it was first added. } csiRestored : COMPSTATEINFO; { Restored state of the component. } end; COMPONENT = _tagCOMPONENT; PCOMPONENT = ^COMPONENT; // no tcomponent because ambiguous. PLPCOMPONENT = ^LPCOMPONENT; LPCOMPONENT = COMPONENT; PLPCCOMPONENT = ^LPCCOMPONENT; LPCCOMPONENT = COMPONENT; PSHCOLUMNINFO = ^SHCOLUMNINFO; SHCOLUMNINFO = record scid : SHCOLUMNID; { OUT the unique identifier of this column} vt : TVarType; { OUT the native type of the data return} fmt : DWORD; { OUT this listview format (LVCFMT_LEFT} cChars : UINT; { OUT the default width of the column,} csFlags : DWORD; { OUT SHCOLSTATE flags } wszTitle : array[0..(MAX_COLUMN_NAME_LEN)-1] of WCHAR; { OUT the title of the column } wszDescription : array[0..(MAX_COLUMN_DESC_LEN)-1] of WCHAR; { OUT full description of this column } end; TSHCOLUMNINFO = SHCOLUMNINFO; LPSHCOLUMNINFO = PSHCOLUMNINFO; PLPSHCOLUMNINFO = ^LPSHCOLUMNINFO; PSHCOLUMNINIT = ^SHCOLUMNINIT; SHCOLUMNINIT = record dwFlags : ULONG; { initialization flags } dwReserved : ULONG; { reserved for future use. } wszFolder : array[0..(MAX_PATH)-1] of WCHAR; { fully qualified folder path (or empty if multiple folders) } end; TSHCOLUMNINIT = SHCOLUMNINIT; LPSHCOLUMNINIT = PSHCOLUMNINIT; PLPSHCOLUMNINIT = ^LPSHCOLUMNINIT; PLPCSHCOLUMNINIT = ^LPCSHCOLUMNINIT; LPCSHCOLUMNINIT = SHCOLUMNINIT; PSHCOLUMNDATA = ^SHCOLUMNDATA; SHCOLUMNDATA = record dwFlags : ULONG; { combination of SHCDF_ flags. } dwFileAttributes : DWORD; { file attributes. } dwReserved : ULONG; { reserved for future use. } pwszExt : PWCHAR; { address of file name extension } wszFile : array[0..(MAX_PATH)-1] of WCHAR; { Absolute path of file. } end; TSHCOLUMNDAT=SHCOLUMNDATA; LPSHCOLUMNDATA = PSHCOLUMNDATA; PLPSHCOLUMNDATA = ^LPSHCOLUMNDATA; PLPCSHCOLUMNDATA = ^LPCSHCOLUMNDATA; LPCSHCOLUMNDATA = SHCOLUMNDATA; PSHDRAGIMAGE = ^SHDRAGIMAGE; SHDRAGIMAGE = record sizeDragImage : SIZE; { OUT - The length and Width of the rendered image } ptOffset : POINT; { OUT - The Offset from the mouse cursor to the upper left corner of the image } hbmpDragImage : HBITMAP; { OUT - The Bitmap containing the rendered drag images } crColorKey : COLORREF; { OUT - The COLORREF that has been blitted to the background of the images } end; LPSHDRAGIMAGE = PSHDRAGIMAGE; PLPSHDRAGIMAGE = ^LPSHDRAGIMAGE; TSHDRAGIMAGE = SHDRAGIMAGE; _NRESARRAY = record cItems : UINT; nr : array[0..0] of NETRESOURCE; end; NRESARRAY = _NRESARRAY; TNRESARRAY = _NRESARRAY; PNRESARRAY = ^NRESARRAY; LPNRESARRAY = PNRESARRAY; PLPNRESARRAY = ^LPNRESARRAY; _IDA = record cidl : UINT; { number of relative IDList } aoffset : array[0..0] of UINT; { [0]: folder IDList, [1]-[cidl]: item IDList } end; CIDA = _IDA; TIDA = _IDA; PIDA = ^TIDA; PCIDA = ^CIDA; LPIDA = PCIDA; PLPIDA = ^LPIDA; _FILEDESCRIPTORA = record dwFlags : DWORD; clsid : CLSID; sizel : SIZEL; pointl : POINTL; dwFileAttributes : DWORD; ftCreationTime : FILETIME; ftLastAccessTime : FILETIME; ftLastWriteTime : FILETIME; nFileSizeHigh : DWORD; nFileSizeLow : DWORD; cFileName : array[0..(MAX_PATH)-1] of CHAR; end; FILEDESCRIPTORA = _FILEDESCRIPTORA; TFILEDESCRIPTORA = _FILEDESCRIPTORA; PFILEDESCRIPTORA = ^FILEDESCRIPTORA; LPFILEDESCRIPTORA = PFILEDESCRIPTORA; PLPFILEDESCRIPTORA = ^LPFILEDESCRIPTORA; _FILEDESCRIPTORW = record dwFlags : DWORD; clsid : CLSID; sizel : SIZEL; pointl : POINTL; dwFileAttributes : DWORD; ftCreationTime : FILETIME; ftLastAccessTime : FILETIME; ftLastWriteTime : FILETIME; nFileSizeHigh : DWORD; nFileSizeLow : DWORD; cFileName : array[0..(MAX_PATH)-1] of WCHAR; end; FILEDESCRIPTORW = _FILEDESCRIPTORW; TFILEDESCRIPTORW = _FILEDESCRIPTORW; PFILEDESCRIPTORW = ^FILEDESCRIPTORW; LPFILEDESCRIPTORW = PFILEDESCRIPTORW; PLPFILEDESCRIPTORW = ^LPFILEDESCRIPTORW; _FILEGROUPDESCRIPTORA = record cItems : UINT; fgd : array[0..0] of FILEDESCRIPTORA; end; FILEGROUPDESCRIPTORA = _FILEGROUPDESCRIPTORA; TFILEGROUPDESCRIPTORA = _FILEGROUPDESCRIPTORA; PFILEGROUPDESCRIPTORA = ^FILEGROUPDESCRIPTORA; LPFILEGROUPDESCRIPTORA = PFILEGROUPDESCRIPTORA; PLPFILEGROUPDESCRIPTORA = ^LPFILEGROUPDESCRIPTORA; _FILEGROUPDESCRIPTORW = record cItems : UINT; fgd : array[0..0] of FILEDESCRIPTORW; end; FILEGROUPDESCRIPTORW = _FILEGROUPDESCRIPTORW; TFILEGROUPDESCRIPTORW = _FILEGROUPDESCRIPTORW; PFILEGROUPDESCRIPTORW = ^FILEGROUPDESCRIPTORW; LPFILEGROUPDESCRIPTORW = PFILEGROUPDESCRIPTORW; PLPFILEGROUPDESCRIPTORW = ^LPFILEGROUPDESCRIPTORW; _DROPFILES = record pFiles : DWORD; { offset of file list } pt : POINT; { drop point (client coords) } fNC : BOOL; { is it on NonClient area } fWide : BOOL; { and pt is in screen coords } end; { WIDE character switch } DROPFILES = _DROPFILES; TDROPFILES = _DROPFILES; PDROPFILES = ^DROPFILES; LPDROPFILES = PDROPFILES; PLPDROPFILES = ^LPDROPFILES; {====== File System Notification APIs =============================== } _SHChangeNotifyEntry = record pidl : LPCITEMIDLIST; fRecursive : BOOL; end; SHChangeNotifyEntry = _SHChangeNotifyEntry; TSHChangeNotifyEntry = _SHChangeNotifyEntry; PSHChangeNotifyEntry = ^SHChangeNotifyEntry; _SHChangeDWORDAsIDList = record cb : USHORT; dwItem1 : DWORD; dwItem2 : DWORD; cbZero : USHORT; end; SHChangeDWORDAsIDList = _SHChangeDWORDAsIDList; TSHChangeDWORDAsIDList = _SHChangeDWORDAsIDList; PSHChangeDWORDAsIDList = ^SHChangeDWORDAsIDList; LPSHChangeDWORDAsIDList = PSHChangeDWORDAsIDList; PLPSHChangeDWORDAsIDList = ^LPSHChangeDWORDAsIDList; _SHChangeUpdateImageIDList = record cb : USHORT; iIconIndex : longint; iCurIndex : longint; uFlags : UINT; dwProcessID : DWORD; szName : array[0..(MAX_PATH)-1] of WCHAR; cbZero : USHORT; end; SHChangeUpdateImageIDList = _SHChangeUpdateImageIDList; TSHChangeUpdateImageIDList = _SHChangeUpdateImageIDList; PSHChangeUpdateImageIDList = ^SHChangeUpdateImageIDList; LPSHChangeUpdateImageIDList = PSHChangeUpdateImageIDList; PLPSHChangeUpdateImageIDList = ^LPSHChangeUpdateImageIDList; _SHChangeProductKeyAsIDList = record cb : USHORT; wszProductKey : array[0..38] of WCHAR; cbZero : USHORT; end; SHChangeProductKeyAsIDList = _SHChangeProductKeyAsIDList; TSHChangeProductKeyAsIDList = _SHChangeProductKeyAsIDList; PSHChangeProductKeyAsIDList = ^SHChangeProductKeyAsIDList; LPSHChangeProductKeyAsIDList = PSHChangeProductKeyAsIDList; PLPSHChangeProductKeyAsIDList = ^LPSHChangeProductKeyAsIDList; _SHDESCRIPTIONID = record dwDescriptionId : DWORD; clsid : CLSID; end; SHDESCRIPTIONID = _SHDESCRIPTIONID; TSHDESCRIPTIONID = _SHDESCRIPTIONID; PSHDESCRIPTIONID = ^SHDESCRIPTIONID; LPSHDESCRIPTIONID = PSHDESCRIPTIONID; PLPSHDESCRIPTIONID = ^LPSHDESCRIPTIONID; const NUM_POINTS = 3; { asd } type PAUTO_SCROLL_DATA = ^AUTO_SCROLL_DATA; AUTO_SCROLL_DATA= record iNextSample : longint; dwLastScroll : DWORD; bFull : BOOL; pts : array[0..(NUM_POINTS)-1] of POINT; dwTimes : array[0..(NUM_POINTS)-1] of DWORD; end; TAUTO_SCROLL_DATA = AUTO_SCROLL_DATA; PCABINETSTATE = ^CABINETSTATE; CABINETSTATE = record cLength : WORD; { NT: Show compressed volumes in a different colour } nVersion : WORD; { NT: Do 8.3 name conversion, or not! } flag0 : word; { NT: Administrators create comon groups } fMenuEnumFilter : UINT; end; TCABINETSTATE = CABINETSTATE; LPCABINETSTATE = PCABINETSTATE; PLPCABINETSTATE = ^LPCABINETSTATE; FOLDERSettings = Packed Record ViewMode : UINT; // View mode (FOLDERVIEWMODE values) fFlags : UINT; // View options (FOLDERFLAGS bits) end; TFOLDERSettings = FOLDERSettings; PFOLDERSettings = ^FOLDERSettings; LPFOLDERSettings= PFOLDERSettings; LPCFOLDERSettings= LPFOLDERSettings; PSV2CVW2_PARAMS = ^TSV2CVW2_PARAMS; TSV2CVW2_PARAMS = packed record // actually ") cbSize : DWORD; psvPrev : IShellView; pfs : LPCFOLDERSETTINGS; psbOwner : IShellBrowser; prcView : PRECT; pvid : PSHELLVIEWID; hwndView : HWND; end; LPSV2CVW2_PARAMS = PSV2CVW2_PARAMS; _SHELLDETAILS = record fmt, cxChar : longint; str : TSTRRET; end; TShellDetails = _SHELLDETAILS; SHELLDETAILS = _SHELLDETAILS; PShellDetails = ^TShellDetails; LPSHELLDETAILS = PSHELLDETAILS; TShellDetailsEx = record Index: UINT; Detail: TShellDetails; end; tagEXTRASEARCH = packed record guidSearch : TGUID; wszFriendlyName : array[0..80-1] of WideChar; wszUrl : array[0..2084-1] of WideChar; end; EXTRASEARCH = TagEXTRASEARCH; TEXTRASEARCH = TagEXTRASEARCH; LPEXTRASEARCH = ^EXTRASEARCH; PEXTRASEARCH = ^EXTRASEARCH; SHCOLSTATEF = DWORD; PSHCOLSTATEF = ^SHCOLSTATEF; TSHCOLSTATEF = SHCOLSTATEF; PLPITEMIDLIST = ^LPITEMIDLIST; PROPPRG = record flPrg : WORD; flPrgInit : WORD; achTitle : array[0..(PIFNAMESIZE)-1] of CHAR; achCmdLine : array[0..((PIFSTARTLOCSIZE+PIFPARAMSSIZE)+1)-1] of CHAR; achWorkDir : array[0..(PIFDEFPATHSIZE)-1] of CHAR; wHotKey : WORD; achIconFile : array[0..(PIFDEFFILESIZE)-1] of CHAR; wIconIndex : WORD; dwEnhModeFlags : DWORD; dwRealModeFlags : DWORD; achOtherFile : array[0..(PIFDEFFILESIZE)-1] of CHAR; achPIFFile : array[0..(PIFMAXFILEPATH)-1] of CHAR; end; TPROPPRG = PROPPRG; PPPROPPRG = ^PPROPPRG; PPROPPRG = PROPPRG; PLPPROPPRG = ^LPPROPPRG; LPPROPPRG = PROPPRG; PLPCPROPPRG = ^LPCPROPPRG; LPCPROPPRG = PROPPRG; _QCMINFO_IDMAP_PLACEMENT = record id : UINT; fFlags : UINT; end; QCMINFO_IDMAP_PLACEMENT = _QCMINFO_IDMAP_PLACEMENT; TQCMINFO_IDMAP_PLACEMENT = _QCMINFO_IDMAP_PLACEMENT; PQCMINFO_IDMAP_PLACEMENT = ^QCMINFO_IDMAP_PLACEMENT; PQCMINFO_IDMAP = ^_QCMINFO_IDMAP; _QCMINFO_IDMAP = record nMaxIds : UINT; pIdList : array[0..0] of QCMINFO_IDMAP_PLACEMENT; end; QCMINFO_IDMAP = _QCMINFO_IDMAP; TQCMINFO_IDMAP = _QCMINFO_IDMAP; _QCMINFO = record hmenu : HMENU; indexMenu : UINT; idCmdFirst : UINT; idCmdLast : UINT; pIdMap : PQCMINFO_IDMAP; end; QCMINFO = _QCMINFO; TQCMINFO = _QCMINFO; PQCMINFO = ^QCMINFO; PLPQCMINFO = ^LPQCMINFO; LPQCMINFO = QCMINFO; _TBINFO = record cbuttons : UINT; uFlags : UINT; end; TBINFO = _TBINFO; TTBINFO = _TBINFO; PTBINFO = ^TBINFO; _DETAILSINFO = record pidl : LPCITEMIDLIST; fmt : longint; cxChar : longint; str : STRRET; iImage : longint; end; DETAILSINFO = _DETAILSINFO; TDETAILSINFO = _DETAILSINFO; PDETAILSINFO = ^DETAILSINFO; _SFVM_PROPPAGE_DATA = record dwReserved : DWORD; pfn : LPFNADDPROPSHEETPAGE; lParam : LPARAM; end; SFVM_PROPPAGE_DATA = _SFVM_PROPPAGE_DATA; TSFVM_PROPPAGE_DATA = _SFVM_PROPPAGE_DATA; PSFVM_PROPPAGE_DATA = ^SFVM_PROPPAGE_DATA; _SFVM_HELPTOPIC_DATA = record wszHelpFile : array[0..(MAX_PATH)-1] of WCHAR; wszHelpTopic : array[0..(MAX_PATH)-1] of WCHAR; end; SFVM_HELPTOPIC_DATA = _SFVM_HELPTOPIC_DATA; TSFVM_HELPTOPIC_DATA = _SFVM_HELPTOPIC_DATA; PSFVM_HELPTOPIC_DATA = ^SFVM_HELPTOPIC_DATA; _SFV_CREATE = record cbSize : UINT; pshf : IShellFolder; psvOuter : IShellView; psfvcb : IShellFolderViewCB; end; SFV_CREATE = _SFV_CREATE; TSFV_CREATE = _SFV_CREATE; PSFV_CREATE = ^SFV_CREATE; _CSFV = record cbSize : UINT; pshf : IShellFolder; psvOuter : IShellView; pidl : LPCITEMIDLIST; lEvents : LONG; pfnCallback : LPFNVIEWCALLBACK; fvm : FOLDERVIEWMODE; end; CSFV = _CSFV; TCSFV = _CSFV; PCSFV = ^CSFV; LPCSFV = PCSFV; PLPCSFV = ^LPCSFV; _SFV_SETITEMPOS = record pidl : LPCITEMIDLIST; pt : POINT; end; SFV_SETITEMPOS = _SFV_SETITEMPOS; TSFV_SETITEMPOS = _SFV_SETITEMPOS; PSFV_SETITEMPOS = ^SFV_SETITEMPOS; LPSFV_SETITEMPOS = PSFV_SETITEMPOS; PLPSFV_SETITEMPOS = ^LPSFV_SETITEMPOS; PSHELLSTATEA = ^SHELLSTATEA; SHELLSTATEA = record flag0 : longint; { No longer used, dead bit } dwWin95Unused : DWORD; { Win95 only - no longer supported pszHiddenFileExts } uWin95Unused : UINT; { Win95 only - no longer supported cbHiddenFileExts } lParamSort : LONG; { Note: Not a typo! This is a persisted structure so we cannot use LPARAM } iSortDirection : longint; { new for win2k. need notUsed var to calc the right size of ie4 struct } version : UINT; { FIELD_OFFSET does not work on bit fields } uNotUsed : UINT; { feel free to rename and use } flag1 : word; { new for Whistler. } end; {Indicates if the Whistler StartPanel mode is ON or OFF. } LPSHELLSTATEA = PSHELLSTATEA; {Indicates if the Whistler StartPage on desktop is ON or OFF. } PLPSHELLSTATEA = ^LPSHELLSTATEA; TSHELLSTATEA = SHELLSTATEA; LPSHELLSTATE = LPSHELLSTATEA; PSHELLSTATEW = ^SHELLSTATEW; SHELLSTATEW = record flag0 : longint; { Win95 only - no longer supported pszHiddenFileExts } dwWin95Unused : DWORD; { Win95 only - no longer supported cbHiddenFileExts } uWin95Unused : UINT; { Note: Not a typo! This is a persisted structure so we cannot use LPARAM } lParamSort : LONG; { new for win2k. need notUsed var to calc the right size of ie4 struct } iSortDirection : longint; { FIELD_OFFSET does not work on bit fields } version : UINT; { feel free to rename and use } uNotUsed : UINT; { new for Whistler. } flag1 : word; {Indicates if the Whistler StartPage mode is ON or OFF. } end; {Indicates if the Whistler StartPage on desktop is ON or OFF. } LPSHELLSTATEW = PSHELLSTATEW; { If you need a new flag, steal a bit from from fSpareFlags. } PLPSHELLSTATEW = ^LPSHELLSTATEW; TSHELLSTATE = SHELLSTATEW; PSHELLFLAGSTATE = ^SHELLFLAGSTATE; SHELLFLAGSTATE = record flag0 : word; end; LPSHELLFLAGSTATE = PSHELLFLAGSTATE; PLPSHELLFLAGSTATE = ^LPSHELLFLAGSTATE; TSHELLFLAGSTATE = SHELLFLAGSTATE; PtagAAMENUFILENAME = ^tagAAMENUFILENAME; tagAAMENUFILENAME = record cbTotal : SHORT; rgbReserved : array[0..11] of BYTE; szFileName : array[0..0] of WCHAR; end; AASHELLMENUFILENAME = tagAAMENUFILENAME; TAASHELLMENUFILENAME = tagAAMENUFILENAME; PAASHELLMENUFILENAME = ^AASHELLMENUFILENAME; LPAASHELLMENUFILENAME = PtagAAMENUFILENAME; PLPAASHELLMENUFILENAME = ^LPAASHELLMENUFILENAME; PtagAASHELLMENUITEM = ^tagAASHELLMENUITEM; tagAASHELLMENUITEM = record lpReserved1 : pointer; iReserved : longint; uiReserved : UINT; lpName : LPAASHELLMENUFILENAME; { name of file } psz : LPWSTR; { text to use if no file } end; AASHELLMENUITEM = tagAASHELLMENUITEM; TAASHELLMENUITEM = tagAASHELLMENUITEM; PAASHELLMENUITEM = ^AASHELLMENUITEM; LPAASHELLMENUITEM = PtagAASHELLMENUITEM; PLPAASHELLMENUITEM = ^LPAASHELLMENUITEM; FDE_OVERWRITE_RESPONSE = longint; TFDE_OVERWRITE_RESPONSE = FDE_OVERWRITE_RESPONSE; PFDE_OVERWRITE_RESPONSE = ^longint; FDE_SHAREVIOLATION_RESPONSE = longint; TFDE_SHAREVIOLATION_RESPONSE = FDE_SHAREVIOLATION_RESPONSE; PFDE_SHAREVIOLATION_RESPONSE = ^FDE_SHAREVIOLATION_RESPONSE; FILEOPENDIALOGOPTIONS = longint; TFILEOPENDIALOGOPTIONS = FILEOPENDIALOGOPTIONS; PFILEOPENDIALOGOPTIONS = ^TFILEOPENDIALOGOPTIONS; FDAP = longint; TFDAP= FDAP; PFDAP= ^FDAP; _COMDLG_FILTERSPEC = packed record pszName : LPCWSTR; pszSpec : LPCWSTR; end; COMDLG_FILTERSPEC = _COMDLG_FILTERSPEC; TCOMDLG_FILTERSPEC = _COMDLG_FILTERSPEC; PCOMDLG_FILTERSPEC = ^_COMDLG_FILTERSPEC; IPersistFolder = Interface(IPersist) ['{000214EA-0000-0000-C000-000000000046}'] function Initialize (pild : LPCITEMIDLIST): HResult; StdCall; end; IPersistFolder2 = Interface(IPersistFolder) ['{1AC3D9F0-175C-11d1-95BE-00609797EA4F}'] function GetCurFolder(Out ppidl : LPITEMIDLIST):HResult; StdCall; end; IPersistIDList = Interface(IPersist) ['{1079acfc-29bd-11d3-8e0d-00c04f6837d5}'] function SetIdList(pid:LPCITEMIDLIST):HResult;StdCall; function GetIdList(out pid:LPCITEMIDLIST):HResult;StdCall; end; IEnumIDList = interface(IUnknown) ['{000214F2-0000-0000-C000-000000000046}'] function Next(celt: ULONG; out rgelt: PItemIDList; var pceltFetched: ULONG): HRESULT; stdcall; function Skip(celt: ULONG): HRESULT; stdcall; function Reset: HRESULT; stdcall; function Clone(out ppenum: IEnumIDList): HRESULT; stdcall; end; IEnumExtraSearch = Interface(IUnknown) ['{0E700BE1-9DB6-11d1-A1CE-00C04FD75D13}'] function Next(celt: ULONG; out rgelt: EXTRASEARCH; var pceltFetched: ULONG): HRESULT; stdcall; function Skip(celt: ULONG): HRESULT; stdcall; function Reset: HRESULT; stdcall; function Clone(out ppenum: IEnumExtraSearch): HRESULT; stdcall; end; IShellFolder = interface(IUnknown) ['{000214E6-0000-0000-C000-000000000046}'] function ParseDisplayName(hwndOwner: HWND; pbcReserved: Pointer; lpszDisplayName: POLESTR; out pchEaten: ULONG; out ppidl: PItemIDList; var dwAttributes: ULONG): HRESULT; stdcall; function EnumObjects(hwndOwner: HWND; grfFlags: DWORD; out EnumIDList: IEnumIDList): HRESULT; stdcall; function BindToObject(pidl: PItemIDList; pbcReserved: Pointer; const riid: TIID; out ppvOut): HRESULT; stdcall; function BindToStorage(pidl: PItemIDList; pbcReserved: Pointer; const riid: TIID; out ppvObj): HRESULT; stdcall; function CompareIDs(lParam: LPARAM; pidl1, pidl2: PItemIDList): HRESULT; stdcall; function CreateViewObject(hwndOwner: HWND; const riid: TIID; out ppvOut): HRESULT; stdcall; function GetAttributesOf(cidl: UINT; var apidl: PItemIDList; var rgfInOut: UINT): HRESULT; stdcall; function GetUIObjectOf(hwndOwner: HWND; cidl: UINT; var apidl: PItemIDList; const riid: TIID; prgfInOut: Pointer; out ppvOut): HRESULT; stdcall; function GetDisplayNameOf(pidl: PItemIDList; uFlags: DWORD; var lpName: TStrRet): HRESULT; stdcall; function SetNameOf(hwndOwner: HWND; pidl: PItemIDList; lpszName: POLEStr; uFlags: DWORD; var ppidlOut: PItemIDList): HRESULT; stdcall; end; IShellFolder2 = interface(IShellFolder) ['{93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}'] function GetDefaultSearchGUID(out guid:TGUID):HResult;StdCall; function EnumSearches(out ppenum:IEnumExtraSearch):HResult;StdCall; function GetDefaultColumn(dwres:DWORD;psort :pulong; pdisplay:pulong):HResult;StdCall; function GetDefaultColumnState(icolumn:UINT;pscflag:PSHCOLSTATEF):HResult;StdCall; function GetDetailsEx(pidl:LPCITEMIDLIST;pscid:PSHCOLUMNID; pv : pOLEvariant):HResult;StdCall; function GetDetailsOf(pidl:LPCITEMIDLIST;iColumn:UINT;psd:PSHELLDETAILS):HResult;StdCall; function MapColumnToSCID(iColumn:UINT;pscid:PSHCOLUMNID):HResult;StdCall; end; IAutoComplete = interface(IUnknown) ['{00bb2762-6a77-11d0-a535-00c04fd7d062}'] function Init(hwndEdit: HWND; punkACL: IUnknown; pwszRegKeyPath: LPCWSTR; pwszQuickComplete: LPCWSTR): HRESULT; stdcall; function Enable(fEnable: BOOL): HRESULT; stdcall; end; IShellView = Interface(IOleWindow) ['{000214E3-0000-0000-C000-000000000046}'] function TranslateAccelerator( pm :PMSG):HResult; StdCall; function EnableModeless(fEnable : BOOL):HResult; StdCall; function UIActivate(uState:UINT):HResult; StdCall; function Refresh:HResult; StdCall; function CreateViewWindow(psvPrevious:IShellView;pfs:LPCFOLDERSETTINGS;psb:IShellBrowser;prcview:prect;var ph:HWND):HResult;StdCall; function DestroyViewWindow:HResult; StdCall; function GetCurrentInfo(pfs: LPFOLDERSETTINGS):HResult; StdCall; function AddPropertySheetPages(dwreserved : DWORD;pfn:pointer{LPFNSVADDPROPSHEETPAGE};lp:lparam):HResult; StdCall; function SaveViewState:HResult; StdCall; function SelectItem( pidlItem: LPCITEMIDLIST;uflags:TSVSIF):HResult; StdCall; function GetItemObject(uitem:UINT;const riid:TGUID;out ppv :PPOinter):HResult;StdCall; end; IShellView2 = Interface(IShellView) ['{88E39E80-3578-11CF-AE69-08002B2E1262}'] function GetView(var pvid:TSHELLVIEWID ;uview:ULONG):HResult;StdCall; function CreateViewWindow2(lpParams:LPSV2CVW2_PARAMS):HResult;StdCall; function HandleRename(pidlNew: LPCITEMIDLIST ):HResult;StdCall; function SelectAndPositionItem(pidlItem:LPCITEMIDLIST ;uflags:UINT;ppt:PPOINT):HRESULT;STDCALL; end; IFolderView = Interface(IUnknown) ['{cde725b0-ccc9-4519-917e-325d72fab4ce}'] function GetCurrentViewMode(pViewMode:PUINT):HResult; StdCall; function SetCurrentViewMode(ViewMode:UINT):HResult; StdCall; function GetFolder(const riid:TGUID;ppv:pointer):HResult; StdCall; function Item(iItemIndex:longint;ppidl:LPITEMIDLIST):HResult; StdCall; function ItemCount(uflags:uint;pcitems:plongint):HResult; StdCall; function Items (uflags:uint;const id :TGUID;out ppv: pointer):HResult; StdCall; function GetSelectionMarkedItem(piItem:pint):HResult; StdCall; function GetFocussedItem(piItem:pint):HResult; StdCall; function GetItemPosition(pidl:LPCITEMIDLIST;ppt:PPOINT):HResult; StdCall; function GetSpacing(ppt:ppoint):HResult; StdCall; function GetDefaultSpacing(ppt:ppoint):HResult; StdCall; function GetAutoArrange:HResult; StdCall; function SelectItem(iItem : longint;dwflags:Dword) :HResult; StdCall; function SelectAndPositionItems(cild:uint;var apid: LPCITEMIDLIST ;apt:PPOINT;dwflags:DWord):HResult; StdCall; end; IFolderFilterSite = Interface(IUnknown) ['{C0A651F5-B48B-11d2-B5ED-006097C686F6}'] function SetFilter(punk:IUnknown):HResult; StdCall; end; IFolderFilter = Interface(IUnknown) ['{9CC22886-DC8E-11d2-B1D0-00C04F8EEB3E}'] function ShouldShow(Psf:IShellFolder;pidlfolder:LPCITEMIDLIST;pidlItem:LPCITEMIDLIST):HResult; StdCall; function GetEnumFlags(Psf:IShellFolder;pidlfolder:LPCITEMIDLIST;var hwnd: hwnd;out pgrfflags:DWORD):HResult; StdCall; end; //cpp_quote("#include ") //cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;") IShellBrowser = interface(IOleWindow) ['{000214E2-0000-0000-C000-000000000046}'] function InsertMenusSB(hmenuShared: HMenu; var menuWidths: TOleMenuGroupWidths): HResult;StdCall; function SetMenuSB(hmenuShared: HMenu; holemenu: HOLEMenu; hwndActiveObject: HWnd): HResult;StdCall; function RemoveMenusSB(hmenuShared: HMenu): HResult;StdCall; function SetStatusTextSB(pszStatusText: POleStr): HResult;StdCall; function EnableModelessSB(fEnable: BOOL): HResult;StdCall; function TranslateAcceleratorSB(var msg: TMsg; wID: Word): HResult;StdCall; function BrowseObject(pidl:LPCITEMIDLIST;wFlags:UINT): HResult;StdCall; function GetViewStateStream(grfMode :DWORD; out ppstrm :IStream): HResult;StdCall; function GetControlWindow(id:UINT;var h:HWND): HResult;StdCall; function SendCOntrolMsg(id:uint;umsg:UINT;wparam:wparam;lparam:lparam;pret:PLRESULT): HResult;StdCall; function QueryActiveShellView(out ppsh :IShellView): HResult;StdCall; function OnViewWindowActive(psh :IShellView): HResult;StdCall; function SetToolBarItems(lpButtons:LPTBBUTTONSB;nButtons:UINT;uFlags:uint): HResult;StdCall; end; const CLSID_AutoComplete: TGUID = '{00BB2763-6A77-11D0-A535-00C04FD7D062}'; const { IAutoComplete2 options } ACO_NONE = 0; ACO_AUTOSUGGEST = $1; ACO_AUTOAPPEND = $2; ACO_SEARCH = $4; ACO_FILTERPREFIXES = $8; ACO_USETAB = $10; ACO_UPDOWNKEYDROPSLIST = $20; ACO_RTLREADING = $40; type IAutoComplete2 = interface(IAutoComplete) ['{EAC04BC0-3791-11d2-BB95-0060977B464C}'] function SetOptions(dwFlag: DWORD): HRESULT; stdcall; function GetOptions(var dwFlag: DWORD): HRESULT; stdcall; end; PCMINVOKECOMMANDINFO = ^TCMINVOKECOMMANDINFO; TCMINVOKECOMMANDINFO = packed record cbSize : DWORD; fMask : DWORD; hwnd : HWND; lpVerb : LPCSTR; lpParameters : LPCSTR; lpDirectory : LPCSTR; nShow : longint; dwHotKey: DWORD; hIcon : THANDLE; end; LPCMINVOKECOMMANDINFO = PCMINVOKECOMMANDINFO; IContextMenu = interface(IUnknown) ['{000214E4-0000-0000-c000-000000000046}'] function QueryContextMenu(hmenu:HMENU;indexMenu:UINT;idCmdFirst:UINT;idCmdLast:UINT;UFlags:uint):HRESULT;StdCall; function InvokeCommand(var lpici : TCMINVOKECOMMANDINFO):HResult; StdCall; function GetCommandString(idcmd:UINT_Ptr;uType:UINT;pwreserved:puint;pszName:LPStr;cchMax:uint):HResult;StdCall; end; IContextMenu2 = interface(IContextMenu) ['{000214f4-0000-0000-c000-000000000046}'] function HandleMenuMsg(uMsg:UINT;wParam:WPARAM;lParam:WPARAM):HResult;StdCall; end; IContextMenu3 = interface(IContextMenu2) ['{bcfce0a0-ec17-11d0-8d10-00a0c90f2719}'] function HandleMenuMsg2(uMsg:UINT;wParam:WPARAM;lParam:WPARAM;presult:PLRESULT):HResult;StdCall; end; IEXtractIconA = interface(IUNknown) ['{000214eb-0000-0000-c000-000000000046}'] function GetIconLocation(uFlags:UINT;szIconFIle:LPSTR;cchMax:UINT;var piIndex : longint; var pwflags:uint):HResult;StdCall; function Extract(pszFile:LPCStr;nIconIndex:UINT;var phiconLarge:HICON;var phiconSmall:HICON;nIconSize:UINT):HResult;StdCall; end; IEXtractIconW = interface(IUNknown) ['{000214fa-0000-0000-c000-000000000046}'] function GetIconLocation(uFlags:UINT;szIconFIle:LPWSTR;cchMax:UINT;var piIndex : longint; var pwflags:uint):HResult;StdCall; function Extract(pszFile:LPCWStr;nIconIndex:UINT;var phiconLarge:HICON;var hiconSmall:HICON;nIconSize:UINT):HResult;StdCall; end; IEXtractIcon=IExtractIconA; SPINITF = DWORD; EXPPS = UINT; IProfferService = interface (IUnknown) ['{cb728b20-f786-11ce-92ad-00aa00a74cd0}'] function ProfferService(const guid:TGUID;psp:IServiceProvider;var pdwcookie:DWORD):HRESULT;StdCall; function RevokeService(dwCookie:DWORD):HRESULT;StdCall; end; { IPropertyUI = interface(IUnknown) ['{757a7d9f-919a-4118-99d7-dbb208c8cc66}'] function ParsePropertyName(pszName:LPCWSTR; pfmtid:pFMTID; ppid:pPROPID; pchEaten:pULONG):HRESULT;StdCall; function GetCannonicalName(const fmtid:FMTID; pid:PROPID; pwszText:LPWSTR; cchText:DWORD):HRESULT;StdCall; function GetDisplayName(const fmtid:FMTID; pid:PROPID; flags:PROPERTYUI_NAME_FLAGS; pwszText:LPWSTR; cchText:DWORD):HRESULT;StdCall; function GetPropertyDescription(const fmtid:FMTID; pid:PROPID; pwszText:LPWSTR; cchText:DWORD):HRESULT;StdCall; function GetDefaultWidth(const fmtid:FMTID; pid:PROPID; pcxChars:pULONG):HRESULT;StdCall; function GetFlags(const fmtid:FMTID; pid:PROPID; pFlags:pPROPERTYUI_FLAGS):HRESULT;StdCall; function FormatForDisplay(const fmtid:FMTID; pid:PROPID; pvar:pPROPVARIANT; flags:PROPERTYUI_FORMAT_FLAGS;wszText:LPWSTR;cchText:DWORD):HRESULT;StdCall; function GetHelpInfo(const fmtid:FMTID; pid:PROPID; pwszHelpFile:LPWSTR; cch:DWORD; puHelpID:pUINT):HRESULT;StdCall; end; } ICategoryProvider =interface(IUnknown) ['{9af64809-5864-4c26-a720-c1f78c086ee3}'] function CanCategorizeOnSCID(pscid:pSHCOLUMNID):HRESULT;StdCall; function GetDefaultCategory(pguid:pGUID; pscid:pSHCOLUMNID):HRESULT;StdCall; function GetCategoryForSCID(pscid:pSHCOLUMNID; pguid:pGUID):HRESULT;StdCall; function EnumCategories(out penum:IEnumGUID):HRESULT;StdCall; function GetCategoryName(pguid:pGUID; pszName:LPWSTR; cch:UINT):HRESULT;StdCall; function CreateCategory(pguid:pGUID; riid:REFIID; ppv:Ppointer):HRESULT;StdCall; end; ICategorizer =Interface(IUnknown) ['{a3b14589-9174-49a8-89a3-06a1ae2b9ba7}'] function GetDescription(pszDesc:LPWSTR; cch:UINT):HRESULT;StdCall; function GetCategory(cidl:UINT; var apidl:LPCITEMIDLIST; rgCategoryIds:pDWORD):HRESULT;StdCall; function GetCategoryInfo(dwCategoryId:DWORD; pci:pCATEGORY_INFO):HRESULT;StdCall; function CompareCategory(csfFlags:CATSORT_FLAGS; dwCategoryId1:DWORD; dwCategoryId2:DWORD):HRESULT;StdCall; end; IQueryInfo = Interface(IUnknown) ['{00021500-0000-0000-c000-000000000046}'] function GetInfoTip (dwFlags:DWord;var pwsztip:pwchar):HResult;StdCall; function GetInfoFlags (var dwflags:dword):HResult;Stdcall; end; ITaskbarList = interface(IUnknown) ['{56FDF342-FD6D-11d0-958A-006097C9A090}'] function HrInit: HResult; stdcall; function AddTab(hwnd: HWND): HResult; stdcall; function DeleteTab(hwnd: HWND): HResult; stdcall; function ActivateTab(hwnd: HWND): HResult; stdcall; function SetActiveAlt(hwnd: HWND): HResult; stdcall; end; ITaskbarList2 = interface(ITaskbarList) ['{602D4995-B13A-429b-A66E-1935E44F4317}'] function MarkFullscreenWindow(hwnd: HWND; fFullscreen: BOOL): HResult; stdcall; end; const // enum THUMBBUTTONFLAGS THBF_ENABLED = 0; THBF_DISABLED = $1; THBF_DISMISSONCLICK = $2; THBF_NOBACKGROUND = $4; THBF_HIDDEN = $8; THBF_NONINTERACTIVE = $10; type THUMBBUTTONFLAGS = DWord; const // enum THUMBBUTTONMASK THB_BITMAP = $1; THB_ICON = $2; THB_TOOLTIP = $4; THB_FLAGS = $8; type THUMBBUTTONMASK = DWord; THUMBBUTTON = packed record dwMask: THUMBBUTTONMASK; iId: UINT; iBitmap: UINT; hIcon: HICON; szTip: array[0..259] of WCHAR; dwFlags: THUMBBUTTONFLAGS; end; LPTHUMBBUTTON = ^THUMBBUTTON; const THBN_CLICKED = $1800; // enum TBPFLAG TBPF_NOPROGRESS = 0; TBPF_INDETERMINATE = $1; TBPF_NORMAL = $2; TBPF_ERROR = $4; TBPF_PAUSED = $8; type TBPFLAG = DWord; ITaskBarList3 = interface(ITaskbarList2) ['{ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf}'] function SetProgressValue(hwnd: HWND; ullCompleted: ULONGLONG; ullTotal: ULONGLONG): HResult; stdcall; function SetProgressState(hwnd: HWND; tbpFlags: TBPFLAG): HResult; stdcall; function RegisterTab(hwndTab: HWND; hwndMDI: HWND): HResult; stdcall; function UnregisterTab(hwndTab: HWND): HResult; stdcall; function SetTabOrder(hwndTab: HWND; hwndInsertBefore: HWND): HResult; stdcall; function SetTabActive(hwndTab: HWND; hwndMDI: HWND; dwReserved: DWORD): HResult; stdcall; function ThumbBarAddButtons(hwnd: HWND; cButtons: UINT; pButton: LPTHUMBBUTTON): HResult; stdcall; function ThumbBarUpdateButtons(hwnd: HWND; cButtons: UINT; pButton: LPTHUMBBUTTON): HResult; stdcall; function ThumbBarSetImageList(hwnd: HWND; himl: HIMAGELIST): HResult; stdcall; function SetOverlayIcon(hwnd: HWND; hIcon: HICON; pszDescription: LPCWSTR): HResult; stdcall; function SetThumbnailTooltip(hwnd: HWND; pszTip: LPCWSTR): HResult; stdcall; function SetThumbnailClip(hwnd: HWND; prcClip: PRECT): HResult; stdcall; end; const // enum STPFLAG STPF_NONE = 0; STPF_USEAPPTHUMBNAILALWAYS = $1; STPF_USEAPPTHUMBNAILWHENACTIVE = $2; STPF_USEAPPPEEKALWAYS = $4; STPF_USEAPPPEEKWHENACTIVE = $8; type STPFLAG = DWord; ITaskbarList4 = interface(ITaskbarList3) ['{c43dc798-95d1-4bea-9030-bb99e2983a1a}'] function SetTabProperties(hwndTab: HWND; stpFlags: STPFLAG): HResult; stdcall; end; const // GETPROPERTYSTOREFLAGS enum GPS_DEFAULT = 0; GPS_HANDLERPROPERTIESONLY = $1; GPS_READWRITE = $2; GPS_TEMPORARY = $4; GPS_FASTPROPERTIESONLY = $8; GPS_OPENSLOWITEM = $10; GPS_DELAYCREATION = $20; GPS_BESTEFFORT = $40; GPS_NO_OPLOCK = $80; GPS_MASK_VALID = $ff; type GETPROPERTYSTOREFLAGS = DWord; _tagpropertykey = packed record fmtid: TGUID; pid: DWORD; end; PROPERTYKEY = _tagpropertykey; REFPROPERTYKEY = ^PROPERTYKEY; REFPROPVARIANT = ^TPROPVARIANT; IPropertyStore = interface(IUnknown) ['{886d8eeb-8cf2-4446-8d02-cdba1dbdcf99}'] function GetCount(out cProps: DWORD): HResult; stdcall; function GetAt(iProp: DWORD; out pkey: PROPERTYKEY): HResult; stdcall; function GetValue(key: REFPROPERTYKEY; out pv: PROPVARIANT): HResult; stdcall; function SetValue(key: REFPROPERTYKEY; propvar: REFPROPVARIANT): HResult; stdcall; function Commit: HResult; stdcall; end; IPropertyDescriptionList = interface(IUnknown) ['{1f9fc1d0-c39b-4b26-817f-011967d3440e}'] function GetCount(out pcElem: UINT): HResult; stdcall; function GetAt(iElem: UINT; const riid: REFIID; out ppv): HResult; stdcall; end; IShellLinkA = Interface(IUnknown) ['{000214EE-0000-0000-C000-000000000046}'] function GetPath(pszFile:LPSTR; cch:longint;var pfd:WIN32_FIND_DATA; fFlags:DWORD):HRESULT;StdCall; function GetIDList(var ppidl:LPITEMIDLIST):HRESULT;StdCall; function SetIDList(pidl:LPCITEMIDLIST):HRESULT;StdCall; function GetDescription(pszName:LPSTR; cch:longint):HRESULT;StdCall; function SetDescription(pszName:LPCSTR):HRESULT;StdCall; function GetWorkingDirectory(pszDir:LPSTR; cch:longint):HRESULT;StdCall; function SetWorkingDirectory(pszDir:LPCSTR):HRESULT;StdCall; function GetArguments(pszArgs:LPSTR; cch:longint):HRESULT;StdCall; function SetArguments(pszArgs:LPCSTR):HRESULT;StdCall; function GetHotkey(var pwHotkey:WORD):HRESULT;StdCall; function SetHotkey(wHotkey:WORD):HRESULT;StdCall; function GetShowCmd(var piShowCmd:longint):HRESULT;StdCall; function SetShowCmd(iShowCmd:longint):HRESULT;StdCall; function GetIconLocation(pszIconPath:LPSTR; cch:longint;var iIcon:longint):HRESULT;StdCall; function SetIconLocation(pszIconPath:LPCSTR; iIcon:longint):HRESULT;StdCall; function SetRelativePath(pszPathRel:LPCSTR; dwReserved:DWORD):HRESULT;StdCall; function Resolve(hwnd:HWND; fFlags:DWORD):HRESULT;StdCall; function SetPath(pszFile:LPCSTR):HRESULT;StdCall; end; IShellLinkW = interface (IUnknown) ['{000214F9-0000-0000-C000-000000000046}'] function GetPath(pszFile:LPWSTR; cch:longint; pfd:pWIN32_FIND_DATAW; fFlags:DWORD):HRESULT;StdCall; function GetIDList(ppidl:pLPITEMIDLIST):HRESULT;StdCall; function SetIDList(pidl:LPCITEMIDLIST):HRESULT;StdCall; function GetDescription(pszName:LPWSTR; cch:longint):HRESULT;StdCall; function SetDescription(pszName:LPCWSTR):HRESULT;StdCall; function GetWorkingDirectory(pszDir:LPWSTR; cch:longint):HRESULT;StdCall; function SetWorkingDirectory(pszDir:LPCWSTR):HRESULT;StdCall; function GetArguments(pszArgs:LPWSTR; cch:longint):HRESULT;StdCall; function SetArguments(pszArgs:LPCWSTR):HRESULT;StdCall; function GetHotkey(pwHotkey:pWORD):HRESULT;StdCall; function SetHotkey(wHotkey:WORD):HRESULT;StdCall; function GetShowCmd(piShowCmd:plongint):HRESULT;StdCall; function SetShowCmd(iShowCmd:longint):HRESULT;StdCall; function GetIconLocation(pszIconPath:LPWSTR; cch:longint; piIcon:plongint):HRESULT;StdCall; function SetIconLocation(pszIconPath:LPCWSTR; iIcon:longint):HRESULT;StdCall; function SetRelativePath(pszPathRel:LPCWSTR; dwReserved:DWORD):HRESULT;StdCall; function Resolve(hwnd:HWND; fFlags:DWORD):HRESULT;StdCall; function SetPath(pszFile:LPCWSTR):HRESULT;StdCall; end; IShellLink = IShellLinkA; PIShellItem= ^IShellItem; IShellItem = interface(IUnknown) ['{43826d1e-e718-42ee-bc55-a1e261c37bfe}'] function BindToHandler(pbc:IBindCTX;bhid:PGUID;RIID:PIID;ppv:ppointer):HResult;Stdcall; function GetParent(ppsi:PISHellItem):HResult;Stdcall; function GetDisplayName(sigdnname:SIGDN;ppszName:LPWSTR):HResult; Stdcall; function GetAttributes(sfgaomask:SFGAOF;psfgaoAttribs:PSFGAOF):HResult;Stdcall; function Compare(psi:IShellItem;hint:SICHINTF;piorder:PINT):HResult; Stdcall; end; IEnumShellItems = interface(IUnknown) ['{70629033-e363-4a28-a567-0db78006e6d7}'] function Next(celt: ULONG; out rgelt: IShellItem; var pceltFetched: ULONG): HResult; stdcall; function Skip(celt: ULONG): HResult; stdcall; function Reset: HResult; stdcall; function Clone(out ppenum: IEnumShellItems): HResult; stdcall; end; const // SIATTRIBFLAGS enum SIATTRIBFLAGS_AND = $1; SIATTRIBFLAGS_OR = $2; SIATTRIBFLAGS_APPCOMPAT = $3; SIATTRIBFLAGS_MASK = $3; SIATTRIBFLAGS_ALLITEMS = $4000; type SIATTRIBFLAGS = DWord; IShellItemArray = interface(IUnknown) ['{b63ea76d-1f85-456f-a19c-48159efa858b}'] function BindToHandler(pbc: IBindCtx; const bhid: TGUID; const riid: REFIID; out ppvOut): HResult; stdcall; function GetPropertyStore(flags: GETPROPERTYSTOREFLAGS; const riid: REFIID; out ppv): HResult; stdcall; function GetPropertyDescriptionList(keyType: REFPROPERTYKEY; const riid: REFIID; out ppv): HResult; stdcall; function GetAttributes(AttribFlags: SIATTRIBFLAGS; sfgaoMask: SFGAOF; var psfgaoAttribs: SFGAOF): HResult; stdcall; function GetCount(var pdwNumItems: DWORD): HResult; stdcall; function GetItemAt(dwIndex: DWORD; var ppsi: IShellItem): HResult; stdcall; function EnumItems(var ppenumShellItems: IEnumShellItems): HResult; stdcall; end; IModalWindow = Interface(IUnknown) ['{b4db1657-70d7-485e-8e3e-6fcb5a5c1802}'] function Show(hwndparent:HWND):HResult;StdCall; end; IShellItemFilter = Interface(IUnknown) ['{2659B475-EEB8-48b7-8F07-B378810F48CF}'] function IncludeItem(psi:IShellItem):HResult;StdCall; function GetEnumFlagsForItem(psi:IShellItem;pgrfflags :PSHCONTF):HRESULT;Stdcall; end; IFileDialog = Interface; IFileDialogEvents = Interface(IUnknown) ['{973510db-7d7f-452b-8975-74a85828d354}'] function OnFileOk (pfd:IFileDialog):HResult; Stdcall; function OnFolderChanging (pfd:IFileDialog;psifolder:IShellItem):HResult; Stdcall; function OnFolderChange (pfd:IFileDialog):HResult; Stdcall; function OnSelectionChange(pfd:IFileDialog):HResult; Stdcall; function OnShareViolation (pfd:IFileDialog;psi:IShellItem;pResponse :pFDE_SHAREVIOLATION_RESPONSE):HResult; Stdcall; function OnTypeChange (pfd:IFileDialog):HResult; Stdcall; function OnOverwrite (pfd:IFileDialog;psi:IShellItem;pResponse :pFDE_OVERWRITE_RESPONSE):HResult; Stdcall; end; IFileDialog = Interface(IModalWindow) ['{42f85136-db7e-439c-85f1-e4075d135fc8}'] function SetFileTypes(cFileTypes:UINT;rgFilterSpec:pCOMDLG_FILTERSPEC):HRESULT;Stdcall; function SetFileTypeIndex(iFileType:UINT):HRESULT;Stdcall; function GetFileTypeIndex(piFileType:pUINT):HRESULT;Stdcall; function Advise(pdfde:IFileDialogEvents;pdwcookie:PDWORD):HRESULT;Stdcall; function unadvise(dwCookie:DWORD):HRESULT;Stdcall; function SetOptions(fos:FILEOPENDIALOGOPTIONS):HRESULT;Stdcall; function GetOptions(pfos:pFILEOPENDIALOGOPTIONS):HRESULT;Stdcall; function SetDefaultFolder(psi:IShellItem):HRESULT;Stdcall; function SetFolder(psi:IShellItem):HRESULT;Stdcall; function Getfolder(ppsi:pIShellItem):HRESULT;Stdcall; function GetCurrentSelection(ppsi:pIShellItem):HRESULT;Stdcall; function SetFileName(pszName:LPCWSTR):HRESULT;Stdcall; function GetFileName(pszName:pLPWSTR):HRESULT;Stdcall; function SetTitle(pszTitle:LPCWSTR):HRESULT;Stdcall; function SetOkButtonLabel(pszText:LPCWSTR):HRESULT;Stdcall; function SetFileNameLabel(pszLabel:LPCWSTR):HRESULT;Stdcall; function GetResult(ppsi:pIShellItem):HRESULT;Stdcall; function AddPlace(psi:IShellItem;fdap:FDAP):HRESULT;Stdcall; function SetDefaultExtension(pszDefaultExtension:LPCWSTR):HRESULT;Stdcall; function Close(hr:HRESULT):HRESULT;Stdcall; function SetClientGuid(GUID:PGUID):HRESULT;Stdcall; function ClearClientData:HRESULT;Stdcall; function SetFilter(pfilter:IShellItemFilter):HRESULT;Stdcall; end; IFileOperationProgressSink = interface(IUnknown) ['{04b0f1a7-9490-44bc-96e1-4296a31252e2}'] function StartOperations: HResult; stdcall; function FinishOperations(hrResult: HResult): HResult; stdcall; function PreRenameItem(dwFlags: DWORD; psiItem: IShellItem; pszNewName: LPCWSTR): HResult; stdcall; function PostRenameItem(dwFlags: DWORD; psiItem: IShellItem; pszNewName: LPCWSTR; hrRename: HRESULT; psiNewlyCreated: IShellItem): HResult; stdcall; function PreMoveItem(dwFlags: DWORD; psiItem: IShellItem; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR): HResult; stdcall; function PostMoveItem(dwFlags: DWORD; psiItem: IShellItem; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR; hrMove: HRESULT; psiNewlyCreated: IShellItem): HResult; stdcall; function PreCopyItem(dwFlags: DWORD; psiItem: IShellItem; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR): HResult; stdcall; function PostCopyItem(dwFlags: DWORD; psiItem: IShellItem; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR; hrCopy: HRESULT; psiNewlyCreated: IShellItem): HResult; stdcall; function PreDeleteItem(dwFlags: DWORD; psiItem: IShellItem): HResult; stdcall; function PostDeleteItem(dwFlags: DWORD; psiItem: IShellItem; hrDelete: HRESULT; psiNewlyCreated: IShellItem): HResult; stdcall; function PreNewItem(dwFlags: DWORD; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR): HResult; stdcall; function PostNewItem(dwFlags: DWORD; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR; pszTemplateName: LPCWSTR; dwFileAttributes: DWORD; hrNew: HRESULT; psiNewItem: IShellItem): HResult; stdcall; function UpdateProgress(iWorkTotal: UINT; iWorkSoFar: UINT): HResult; stdcall; function ResetTimer: HResult; stdcall; function PauseTimer: HResult; stdcall; function ResumeTimer: HResult; stdcall; end; IFileSaveDialog = interface(IFileDialog) ['{84bccd23-5fde-4cdb-aea4-af64b83d78ab}'] function SetSaveAsItem(psi: IShellItem): HResult; stdcall; function SetProperties(pStore: IPropertyStore): HResult; stdcall; function SetCollectedProperties(pList: IPropertyDescriptionList; fAppendDefault: BOOL): HResult; stdcall; function GetProperties(var ppStore: IPropertyStore): HResult; stdcall; function ApplyProperties(psi: IShellItem; pStore: IPropertyStore; hwnd: HWND; pSink: IFileOperationProgressSink): HResult; stdcall; end; IFileOpenDialog = interface(IFileDialog) ['{d57c7288-d4ad-4768-be02-9d969532d960}'] function GetResults(var ppenum: IShellItemArray): HResult; stdcall; function GetSelectedItems(var ppsai: IShellItemArray): HResult; stdcall; end; const // CDCONTROLSTATEF enum CDCS_INACTIVE = 0; CDCS_ENABLED = $1; CDCS_VISIBLE = $2; CDCS_ENABLEDVISIBLE = $3; type CDCONTROLSTATEF = DWord; IFileDialogCustomize = interface(IUnknown) ['{e6fdd21a-163f-4975-9c8c-a69f1ba37034}'] function EnableOpenDropDown(dwIDCtl: DWORD): HResult; stdcall; function AddMenu(dwIDCtl: DWORD; pszLabel: LPCWSTR): HResult; stdcall; function AddPushButton(dwIDCtl: DWORD; pszLabel: LPCWSTR): HResult; stdcall; function AddComboBox(dwIDCtl: DWORD): HResult; stdcall; function AddRadioButtonList(dwIDCtl: DWORD): HResult; stdcall; function AddCheckButton(dwIDCtl: DWORD; pszLabel: LPCWSTR; bChecked: BOOL): HResult; stdcall; function AddEditBox(dwIDCtl: DWORD; pszText: LPCWSTR): HResult; stdcall; function AddSeparator(dwIDCtl: DWORD): HResult; stdcall; function AddText(dwIDCtl: DWORD; pszText: LPCWSTR): HResult; stdcall; function SetControlLabel(dwIDCtl: DWORD; pszLabel: LPCWSTR): HResult; stdcall; function GetControlState(dwIDCtl: DWORD; out pdwState: CDCONTROLSTATEF): HResult; stdcall; function SetControlState(dwIDCtl: DWORD; dwState: CDCONTROLSTATEF): HResult; stdcall; function GetEditBoxText(dwIDCtl: DWORD; out ppszText: WCHAR): HResult; stdcall; function SetEditBoxText(dwIDCtl: DWORD; pszText: LPCWSTR): HResult; stdcall; function GetCheckButtonState(dwIDCtl: DWORD; out pbChecked: BOOL): HResult; stdcall; function SetCheckButtonState(dwIDCtl: DWORD; bChecked: BOOL): HResult; stdcall; function AddControlItem(dwIDCtl: DWORD; dwIDItem: DWORD; pszLabel: LPCWSTR): HResult; stdcall; function RemoveControlItem(dwIDCtl: DWORD; dwIDItem: DWORD): HResult; stdcall; function RemoveAllControlItems(dwIDCtl: DWORD): HResult; stdcall; function GetControlItemState(dwIDCtl: DWORD; dwIDItem: DWORD; out pdwState: CDCONTROLSTATEF): HResult; stdcall; function SetControlItemState(dwIDCtl: DWORD; dwIDItem: DWORD; dwState: CDCONTROLSTATEF): HResult; stdcall; function GetSelectedControlItem(dwIDCtl: DWORD; out pdwIDItem: DWORD): HResult; stdcall; function SetSelectedControlItem(dwIDCtl: DWORD; dwIDItem: DWORD): HResult; stdcall; function StartVisualGroup(dwIDCtl: DWORD; pszLabel: LPCWSTR): HResult; stdcall; function EndVisualGroup: HResult; stdcall; function MakeProminent(dwIDCtl: DWORD): HResult; stdcall; function SetControlItemText(dwIDCtl: DWORD; dwIDItem: DWORD; pszLabel: LPCWSTR): HResult; stdcall; end; IFileDialogControlEvents = interface(IUnknown) ['{36116642-D713-4b97-9B83-7484A9D00433}'] function OnItemSelected(pfdc: IFileDialogCustomize; dwIDCtl: DWORD; dwIDItem: DWORD): HResult; stdcall; function OnButtonClicked(pfdc: IFileDialogCustomize; dwIDCtl: DWORD): HResult; stdcall; function OnCheckButtonToggled(pfdc: IFileDialogCustomize; dwIDCtl: DWORD; bChecked: BOOL): HResult; stdcall; function OnControlActivating(pfdc: IFileDialogCustomize; dwIDCtl: DWORD): HResult; stdcall; end; IShellExtInit = Interface(IUnknown) [IID_IShellExtInit] function Initialize(pidlfolder: LPCITEMIDLIST; pdtobj : IDataObject;hkeyProgID : HKEY):HResult; stdcall; end; function SHGetMalloc(out ppmalloc: IMalloc):HResult;StdCall; external 'shell32' name 'SHGetMalloc'; function SHGetDesktopFolder(out ppshf:IShellFolder):HResult;StdCall; external 'shell32' name 'SHGetDesktopFolder'; function SHOpenFolderAndSelectItems(pidlFolder:LPCITEMIDLIST;cidl:UINT;var apidl: LPCITEMIDLIST; dwflags: DWORD):HResult;StdCall; external 'shell32' name 'SHOpenFolderAndSelectItems'; //function SHCreateShellItem( pidlParent:LPCITEMIDLIST; psfparent:IShellFolder; pidl: LPCITEMIDLIST pidl; out ppsi: IShellItem):HResult;StdCall; external 'shell32' name 'SHCreateShellItem'; function SHGetSpecialFolderLocation( hwnd:HWND; csidl:longint;out ppidl: LPITEMIDLIST):HResult;StdCall; external 'shell32' name 'SHGetSpecialFolderLocation'; procedure SHFlushSFCache;StdCall; external 'shell32' name 'SHFlushSFCache'; function SHCloneSpecialIDList(HWND:hwnd; csidl:longint;fcreate:BOOL):LPITEMIDLIST; StdCall; external 'shell32' name 'SHCloneSpecialIDList'; function SHGetSpecialFolderPathA(HWND:hwnd;pszpath: LPSTR; csidl:Longint;fcreate:bool):bool;StdCall; external 'shell32' name 'SHGetSpecialFolderPathA'; function SHGetSpecialFolderPath(HWND:hwnd;pszpath: LPSTR; csidl:Longint;fcreate:bool):bool;StdCall; external 'shell32' name 'SHGetSpecialFolderPathA'; function SHGetSpecialFolderPathW(HWND:hwnd;pszpath: LPWSTR; csidl:Longint;fcreate:bool):bool;StdCall; external 'shell32' name 'SHGetSpecialFolderPathW'; function SHGetFolderPathA(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszpath:lpstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathA'; function SHGetFolderPath(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszpath:lpstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathA'; function SHGetFolderPathW(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszpath:lpWstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathW'; function SHGetFolderPathAndSubDirA(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszsubdir:LPCStr;pszpath:lpstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathAndSubDirA'; function SHGetFolderPathAndSubDir(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszsubdir:LPCStr;pszpath:lpstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathAndSubDirA'; function SHGetFolderPathAndSubDirW(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszsubdir:LPCWStr;pszpath:lpWstr):HResult; external 'shell32' name 'SHGetFolderPathAndSubDirW'; function SHFolderLocation(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;var ppidl:LPITEMIDLIST):HRESULT;StdCall; external 'shell32' name 'SHFolderLocation'; Const External_Library = 'shell32'; function SHAlloc(cb:SIZE_T):pointer;StdCall;external External_library name 'SHAlloc'; procedure SHFree(pv:pointer);StdCall;external External_library name 'SHFree'; function SHGetIconOverlayIndexA(pszIconPath:lpcstr; iIconIndex:Longint):Longint;StdCall;external External_library name 'SHGetIconOverlayIndexA'; function SHGetIconOverlayIndexW(pszIconPath:lpcwstr; iIconIndex:Longint):Longint;StdCall;external External_library name 'SHGetIconOverlayIndexW'; function SHGetPathFromIDListA(pidl:LPCITEMIDLIST; pszPath:LPStr):BOOL;StdCall;external External_library name 'SHGetPathFromIDListA'; function SHGetPathFromIDListW(pidl:LPCITEMIDLIST; pszPath:LPWStr):BOOL;StdCall;external External_library name 'SHGetPathFromIDListW'; function SHCreateDirectory(hwnd:HWND; pszPath:lpcwstr):Longint;StdCall;external External_library name 'SHCreateDirectory'; function SHCreateDirectoryExA(hwnd:HWND; pszPath:lpcstr; psa:LPSECURITY_ATTRIBUTES):Longint;StdCall;external External_library name 'SHCreateDirectoryExA'; function SHCreateDirectoryExW(hwnd:HWND; pszPath:lpcwstr; psa:LPSECURITY_ATTRIBUTES):Longint;StdCall;external External_library name 'SHCreateDirectoryExW'; { function SHOpenFolderAndSelectItems(pidlFolder:LPCITEMIDLIST; cidl:UINT; var apidl:LPCITEMIDLIST; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHOpenFolderAndSelectItems'; function SHCreateShellItem(pidlParent:LPCITEMIDLIST; psfParent:IShellFolder; pidl:LPCITEMIDLIST;out ppsi:IShellItem):HRESULT;StdCall;external External_library name 'SHCreateShellItem'; function SHGetSpecialFolderLocation(hwnd:HWND; csidl:Longint; var ppidl:LPITEMIDLIST):HRESULT;StdCall;external External_library name 'SHGetSpecialFolderLocation'; procedure SHFlushSFCache;StdCall;external External_library name 'SHFlushSFCache'; function SHCloneSpecialIDList(hwnd:HWND; csidl:Longint; fCreate:BOOL):LPITEMIDLIST;StdCall;external External_library name 'SHCloneSpecialIDList'; function SHGetSpecialFolderPathA(hwnd:HWND; pszPath:LPStr; csidl:Longint; fCreate:BOOL):BOOL;StdCall;external External_library name 'SHGetSpecialFolderPathA'; function SHGetSpecialFolderPathW(hwnd:HWND; pszPath:LPWStr; csidl:Longint; fCreate:BOOL):BOOL;StdCall;external External_library name 'SHGetSpecialFolderPathW'; function SHGetFolderLocation(hwnd:HWND; csidl:Longint; hToken:THANDLE; dwFlags:DWord;var ppidl:LPITEMIDLIST):HRESULT;StdCall;external External_library name 'SHGetFolderLocation'; } function SHGetSetFolderCustomSettingsA(pfcs:LPSHFOLDERCUSTOMSETTINGSA; pszPath:lpcstr; dwReadWrite:DWord):HRESULT;StdCall;external External_library name 'SHGetSetFolderCustomSettingsA'; function SHGetSetFolderCustomSettingsW(pfcs:LPSHFOLDERCUSTOMSETTINGSW; pszPath:lpcwstr; dwReadWrite:DWord):HRESULT;StdCall;external External_library name 'SHGetSetFolderCustomSettingsW'; function SHBrowseForFolderA(lpbi:LPBROWSEINFOA):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderA'; function SHBrowseForFolderW(lpbi:LPBROWSEINFOW):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderW'; function SHLoadInProc(const rclsid:Tguid):HRESULT;StdCall;external External_library name 'SHLoadInProc'; function SHEnableServiceObject(const rclsid:Tguid; fEnable:BOOL):HRESULT;StdCall;external External_library name 'SHEnableServiceObject'; // function SHGetDesktopFolder(out ppshf:IShellFolder):HRESULT;StdCall;external External_library name 'SHGetDesktopFolder'; procedure SHChangeNotify(wEventId:LONG; uFlags:UINT; dwItem1:POINTER; dwItem2:POINTER);StdCall;external External_library name 'SHChangeNotify'; procedure SHAddToRecentDocs(uFlags:UINT; pv:POINTER);StdCall;external External_library name 'SHAddToRecentDocs'; function SHHandleUpdateImage(pidlExtra:LPCITEMIDLIST):Longint;StdCall;external External_library name 'SHHandleUpdateImage'; procedure SHUpdateImageA(pszHashItem:lpcstr; iIndex:Longint; uFlags:UINT; iImageIndex:Longint);StdCall;external External_library name 'SHUpdateImageA'; procedure SHUpdateImageW(pszHashItem:lpcwstr; iIndex:Longint; uFlags:UINT; iImageIndex:Longint);StdCall;external External_library name 'SHUpdateImageW'; function SHChangeNotifyRegister(hwnd:HWND; fSources:Longint; fEvents:LONG; wMsg:UINT; cEntries:Longint; pshcne:PSHChangeNotifyEntry):ULONG;StdCall;external External_library name 'SHChangeNotifyRegister'; function SHChangeNotifyDeregister(ulID:ulong):BOOL;StdCall;external External_library name 'SHChangeNotifyDeregister'; function SHChangeNotification_Lock(hChangeNotification:THANDLE; dwProcessId:DWord; var pppidl:PLPITEMIDLIST; plEvent:PLONG):THANDLE;StdCall;external External_library name 'SHChangeNotification_Lock'; function SHChangeNotification_Unlock(hLock:THANDLE):BOOL;StdCall;external External_library name 'SHChangeNotification_Unlock'; function SHGetRealIDL(psf:IShellFolder; pidlSimple:LPCITEMIDLIST; var ppidlReal:LPITEMIDLIST):HRESULT;StdCall;external External_library name 'SHGetRealIDL'; function SHGetInstanceExplorer(out ppunk:IUnknown):HRESULT;StdCall;external External_library name 'SHGetInstanceExplorer'; function SHGetDataFromIDListA(psf:IShellFolder; pidl:LPCITEMIDLIST; nFormat:Longint; pv:pointer; cb:Longint):HRESULT;StdCall;external External_library name 'SHGetDataFromIDListA'; function SHGetDataFromIDListW(psf:IShellFolder; pidl:LPCITEMIDLIST; nFormat:Longint; pv:pointer; cb:Longint):HRESULT;StdCall;external External_library name 'SHGetDataFromIDListW'; function RestartDialog(hwnd:HWND; lpPrompt:lpcwstr; dwReturn:DWord):Longint;StdCall;external External_library name 'RestartDialog'; function RestartDialogEx(hwnd:HWND; lpPrompt:lpcwstr; dwReturn:DWord; dwReasonCode:DWord):Longint;StdCall;external External_library name 'RestartDialogEx'; function SHCoCreateInstance(pszCLSID:lpcwstr; pclsid:PCLSID; pUnkOuter:IUnknown; riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCoCreateInstance'; // function CallCPLEntry16(hinst:HINSTANCE; lpfnEntry:TFARPROC16; hwndCPL:HWND; msg:UINT; lParam1:lparam; lParam2:lparam):LRESULT;StdCall;external External_library name 'CallCPLEntry16'; function SHCreateStdEnumFmtEtc(cfmt:UINT; afmt:array of TFORMATETC; var ppenumFormatEtc:IEnumFORMATETC):HRESULT;StdCall;external External_library name 'SHCreateStdEnumFmtEtc'; function SHDoDragDrop(hwnd:HWND; pdata:IDataObject; pdsrc:IDropSource; dwEffect:DWord; pdwEffect:PDWORD):HRESULT;StdCall;external External_library name 'SHDoDragDrop'; function DAD_SetDragImage(him:HIMAGELIST; pptOffset:PPOINT):BOOL;StdCall;external External_library name 'DAD_SetDragImage'; function DAD_DragEnterEx(hwndTarget:HWND; ptStart:TPOINT):BOOL;StdCall;external External_library name 'DAD_DragEnterEx'; function DAD_DragEnterEx2(hwndTarget:HWND; ptStart:TPOINT; pdtObject:IDataObject):BOOL;StdCall;external External_library name 'DAD_DragEnterEx2'; function DAD_ShowDragImage(fShow:BOOL):BOOL;StdCall;external External_library name 'DAD_ShowDragImage'; function DAD_DragMove(pt:TPOINT):BOOL;StdCall;external External_library name 'DAD_DragMove'; function DAD_DragLeave:BOOL;StdCall;external External_library name 'DAD_DragLeave'; function DAD_AutoScroll(hwnd:HWND; pad:PAUTO_SCROLL_DATA; pptNow:PPOINT):BOOL;StdCall;external External_library name 'DAD_AutoScroll'; function ReadCabinetState(lpState:LPCABINETSTATE; iSize:Longint):BOOL;StdCall;external External_library name 'ReadCabinetState'; function WriteCabinetState(lpState:LPCABINETSTATE):BOOL;StdCall;external External_library name 'WriteCabinetState'; function PathMakeUniqueName(pszUniqueName:LPWStr; cchMax:UINT; pszTemplate:lpcwstr; pszLongPlate:lpcwstr; pszDir:lpcwstr):BOOL;StdCall;external External_library name 'PathMakeUniqueName'; procedure PathQualify(psz:LPWStr);StdCall;external External_library name 'PathQualify'; function PathIsExe(pszPath:lpcwstr):BOOL;StdCall;external External_library name 'PathIsExe'; function PathIsSlowA(pszFile:lpcstr; dwAttr:DWord):BOOL;StdCall;external External_library name 'PathIsSlowA'; function PathIsSlowW(pszFile:lpcwstr; dwAttr:DWord):BOOL;StdCall;external External_library name 'PathIsSlowW'; function PathCleanupSpec(pszDir:lpcwstr; pszSpec:LPWStr):Longint;StdCall;external External_library name 'PathCleanupSpec'; function PathResolve(pszPath:LPWStr; dirs:array of lpcwstr; fFlags:UINT):Longint;StdCall;external External_library name 'PathResolve'; function GetFileNameFromBrowse(hwnd:HWND; pszFilePath:LPWStr; cbFilePath:UINT; pszWorkingDir:lpcwstr; pszDefExt:lpcwstr; pszFilters:lpcwstr; pszTitle:lpcwstr):BOOL;StdCall;external External_library name 'GetFileNameFromBrowse'; function DriveType(iDrive:Longint):Longint;StdCall;external External_library name 'DriveType'; function RealDriveType(iDrive:Longint; fOKToHitNet:BOOL):Longint;StdCall;external External_library name 'RealDriveType'; function IsNetDrive(iDrive:Longint):Longint;StdCall;external External_library name 'IsNetDrive'; function Shell_MergeMenus(hmDst:HMENU; hmSrc:HMENU; uInsert:UINT; uIDAdjust:UINT; uIDAdjustMax:UINT; uFlags:ULONG):UINT;StdCall;external External_library name 'Shell_MergeMenus'; function SHObjectProperties(hwnd:HWND; dwType:DWord; lpObject:lpcwstr; lpPage:lpcwstr):BOOL;StdCall;external External_library name 'SHObjectProperties'; function SHFormatDrive(hwnd:HWND; drive:UINT; fmtID:UINT; options:UINT):DWord;StdCall;external External_library name 'SHFormatDrive'; function ILClone(pidl:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILClone'; function ILGetNext(pidl:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILGetNext'; function ILGetSize(pidl:LPCITEMIDLIST):UINT;StdCall;external External_library name 'ILGetSize'; function ILFindLastID(pidl:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILFindLastID'; function ILRemoveLastID(pidl:LPITEMIDLIST):BOOL;StdCall;external External_library name 'ILRemoveLastID'; function ILAppendID(pidl:LPITEMIDLIST; pmkid:LPCSHITEMID; fAppend:BOOL):LPITEMIDLIST;StdCall;external External_library name 'ILAppendID'; procedure ILFree(pidl:LPITEMIDLIST);StdCall;external External_library name 'ILFree'; function ILCloneFirst(pidl:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILCloneFirst'; function ILIsEqual(pidl1:LPCITEMIDLIST; pidl2:LPCITEMIDLIST):BOOL;StdCall;external External_library name 'ILIsEqual'; function ILIsParent(pidl1:LPCITEMIDLIST; pidl2:LPCITEMIDLIST; fImmediate:BOOL):BOOL;StdCall;external External_library name 'ILIsParent'; function ILFindChild(pidlParent:LPCITEMIDLIST; pidlChild:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILFindChild'; function ILCombine(pidl1:LPCITEMIDLIST; pidl2:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILCombine'; function ILLoadFromStream(pstm:IStream; var pidl:LPITEMIDLIST):HRESULT;StdCall;external External_library name 'ILLoadFromStream'; function ILSaveToStream(pstm:IStream; pidl:LPCITEMIDLIST):HRESULT;StdCall;external External_library name 'ILSaveToStream'; function ILCreateFromPathA(pszPath:lpcstr):LPITEMIDLIST;StdCall;external External_library name 'ILCreateFromPathA'; function ILCreateFromPathW(pszPath:lpcwstr):LPITEMIDLIST;StdCall;external External_library name 'ILCreateFromPathW'; function ILCreateFromPath(pszPath:LPCTSTR):LPITEMIDLIST;StdCall;external External_library name 'ILCreateFromPath'; function SHILCreateFromPath(szPath:lpcwstr;var ppidl:LPITEMIDLIST; rgfInOut:PDWORD):HRESULT;StdCall;external External_library name 'SHILCreateFromPath'; function OpenRegStream(hkey:HKEY; pszSubkey:lpcwstr; pszValue:lpcwstr; grfMode:DWord):IStream;StdCall;external External_library name 'OpenRegStream'; function SHFindFiles(pidlFolder:LPCITEMIDLIST; pidlSaveFile:LPCITEMIDLIST):BOOL;StdCall;external External_library name 'SHFindFiles'; procedure PathGetShortPath(pszLongPath:LPWStr);StdCall;external External_library name 'PathGetShortPath'; function PathYetAnotherMakeUniqueName(pszUniqueName:LPWStr; pszPath:lpcwstr; pszShort:lpcwstr; pszFileSpec:lpcwstr):BOOL;StdCall;external External_library name 'PathYetAnotherMakeUniqueName'; function Win32DeleteFile(pszPath:lpcwstr):BOOL;StdCall;external External_library name 'Win32DeleteFile'; function PathProcessCommand(lpSrc:lpcwstr; lpDest:LPWStr; iMax:Longint; dwFlags:DWord):LONG;StdCall;external External_library name 'PathProcessCommand'; function SHRestricted(rest:TRESTRICTIONS):DWord;StdCall;external External_library name 'SHRestricted'; function SignalFileOpen(pidl:LPCITEMIDLIST):BOOL;StdCall;external External_library name 'SignalFileOpen'; function SHSimpleIDListFromPath(pszPath:lpcwstr):LPITEMIDLIST;StdCall;external External_library name 'SHSimpleIDListFromPath'; function SHLoadOLE(lParam:lparam):HRESULT;StdCall;external External_library name 'SHLoadOLE'; function SHStartNetConnectionDialogA(hwnd:HWND; pszRemoteName:lpcstr; dwType:DWord):HRESULT;StdCall;external External_library name 'SHStartNetConnectionDialogA'; function SHStartNetConnectionDialogW(hwnd:HWND; pszRemoteName:lpcwstr; dwType:DWord):HRESULT;StdCall;external External_library name 'SHStartNetConnectionDialogW'; function SHDefExtractIconA(pszIconFile:lpcstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON; nIconSize:UINT):HRESULT;StdCall;external External_library name 'SHDefExtractIconA'; function SHDefExtractIconW(pszIconFile:lpcwstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON; nIconSize:UINT):HRESULT;StdCall;external External_library name 'SHDefExtractIconW'; function Shell_GetImageLists(var phiml:HIMAGELIST; var phimlSmall:HIMAGELIST):BOOL;StdCall;external External_library name 'Shell_GetImageLists'; function Shell_GetCachedImageIndex(pszIconPath:lpcwstr; iIconIndex:Longint; uIconFlags:UINT):Longint;StdCall;external External_library name 'Shell_GetCachedImageIndex'; function SHValidateUNC(hwndOwner:HWND; pszFile:LPWStr; fConnect:UINT):BOOL;StdCall;external External_library name 'SHValidateUNC'; function PifMgr_OpenProperties(pszApp:lpcwstr; pszPIF:lpcwstr; hInf:UINT; flOpt:UINT):THANDLE;StdCall;external External_library name 'PifMgr_OpenProperties'; function PifMgr_GetProperties(hProps:THANDLE; pszGroup:lpcstr; lpProps:pointer; cbProps:Longint; flOpt:UINT):Longint;StdCall;external External_library name 'PifMgr_GetProperties'; function PifMgr_SetProperties(hProps:THANDLE; pszGroup:lpcstr; lpProps:pointer; cbProps:Longint; flOpt:UINT):Longint;StdCall;external External_library name 'PifMgr_SetProperties'; function PifMgr_CloseProperties(hProps:THANDLE; flOpt:UINT):THANDLE;StdCall;external External_library name 'PifMgr_CloseProperties'; procedure SHSetInstanceExplorer(punk:IUnknown);StdCall;external External_library name 'SHSetInstanceExplorer'; function IsUserAnAdmin:BOOL;StdCall;external External_library name 'IsUserAnAdmin'; function SHShellFolderView_Message(hwndMain:HWND; uMsg:UINT; lParam:lparam):lresult;StdCall;external External_library name 'SHShellFolderView_Message'; function SHCreateShellFolderView(pcsfv:PSFV_CREATE; out ppsv:IShellView):HRESULT;StdCall;external External_library name 'SHCreateShellFolderView'; function CDefFolderMenu_Create2(pidlFolder:LPCITEMIDLIST; hwnd:HWND; cidl:UINT;var apidl:LPCITEMIDLIST; psf:IShellFolder; lpfn:LPFNDFMCALLBACK; nKeys:UINT; ahkeyClsKeys:PHKEY; out ppcm:IContextMenu):HRESULT;StdCall;external External_library name 'CDefFolderMenu_Create2'; function SHOpenPropSheetA(pszCaption:lpcstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject; psb:IShellBrowser; pStartPage:lpcstr):BOOL;StdCall;external External_library name 'SHOpenPropSheetA'; function SHOpenPropSheetW(pszCaption:lpcwstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject; psb:IShellBrowser; pStartPage:lpcwstr):BOOL;StdCall;external External_library name 'SHOpenPropSheetW'; function SHFind_InitMenuPopup(hmenu:HMENU; hwndOwner:HWND; idCmdFirst:UINT; idCmdLast:UINT):IContextMenu;StdCall;external External_library name 'SHFind_InitMenuPopup'; function SHCreateShellFolderViewEx(pcsfv:LPCSFV; out ppsv:IShellView):HRESULT;StdCall;external External_library name 'SHCreateShellFolderViewEx'; procedure SHGetSetSettings(lpss:LPSHELLSTATE; dwMask:DWord; bSet:BOOL);StdCall;external External_library name 'SHGetSetSettings'; procedure SHGetSettings(lpsfs:LPSHELLFLAGSTATE; dwMask:DWord);StdCall;external External_library name 'SHGetSettings'; function SHBindToParent(pidl:LPCITEMIDLIST; riid:TREFIID; ppv:Ppointer; var ppidlLast:LPCITEMIDLIST):HRESULT;StdCall;external External_library name 'SHBindToParent'; function SHParseDisplayName(pszName:PCWSTR; pbc:IBindCtx; var ppidl:LPITEMIDLIST; sfgaoIn:TSFGAOF; psfgaoOut:PSFGAOF):HRESULT;StdCall;external External_library name 'SHParseDisplayName'; function SHPathPrepareForWriteA(hwnd:HWND; punkEnableModless:IUnknown; pszPath:lpcstr; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHPathPrepareForWriteA'; function SHPathPrepareForWriteW(hwnd:HWND; punkEnableModless:IUnknown; pszPath:lpcwstr; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHPathPrepareForWriteW'; { function SHPropStgCreate(psstg:IPropertySetStorage; fmtid:TREFFMTID; pclsid:PCLSID; grfFlags:DWord; grfMode:DWord; dwDisposition:DWord; out ppstg:IPropertyStorage; puCodePage:PUINT):HRESULT;StdCall;external External_library name 'SHPropStgCreate'; function SHPropStgReadMultiple(pps:IPropertyStorage; uCodePage:UINT; cpspec:ULONG; rgpspec:array of TPROPSPEC; rgvar:array of TPROPVARIANT):HRESULT;StdCall;external External_library name 'SHPropStgReadMultiple'; function SHPropStgWriteMultiple(pps:IPropertyStorage; puCodePage:PUINT; cpspec:ULONG; rgpspec:array of TPROPSPEC; rgvar:array of TPROPVARIANT; propidNameFirst:TPROPID):HRESULT;StdCall;external External_library name 'SHPropStgWriteMultiple'; } function SHCreateFileExtractIconA(pszFile:lpcstr; dwFileAttributes:DWord; riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCreateFileExtractIconA'; function SHCreateFileExtractIconW(pszFile:lpcwstr; dwFileAttributes:DWord; riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCreateFileExtractIconW'; function SHLimitInputEdit(hwndEdit:HWND; psf:IShellFolder):HRESULT;StdCall;external External_library name 'SHLimitInputEdit'; function SHMultiFileProperties(pdtobj:IDataObject; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHMultiFileProperties'; // function SHMapIDListToImageListIndexAsync(pts:IShellTaskScheduler; psf:IShellFolder; pidl:LPCITEMIDLIST; flags:UINT; pfn:TPFNASYNCICONTASKBALLBACK; // pvData:pointer; pvHint:pointer; piIndex:plongint; piIndexSel:plongint):HRESULT;StdCall;external External_library name 'SHMapIDListToImageListIndexAsync'; function SHMapPIDLToSystemImageListIndex(pshf:IShellFolder; pidl:LPCITEMIDLIST; piIndexSel:plongint):Longint;StdCall;external External_library name 'SHMapPIDLToSystemImageListIndex'; implementation end.