shlobj.pp 162 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2007 by Florian Klaempfl
  4. member of the Free Pascal development team.
  5. See the file COPYING.FPC, included in this distribution,
  6. for details about the copyright.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. Original copyright statement follows.
  11. }
  12. {$mode objfpc}
  13. unit shlobj;
  14. interface
  15. {$ifdef FPC_OS_UNICODE}
  16. {$define UNICODE}
  17. {$endif}
  18. uses
  19. windows,activex,shellapi,commctrl;
  20. Const
  21. IID_IShellExtInit : TGUID ='{000214E8-0000-0000-C000-000000000046}';
  22. IID_IShellFolder : TGUID ='{000214E6-0000-0000-C000-000000000046}';
  23. IID_IEnumList : TGUID ='{000214F2-0000-0000-C000-000000000046}';
  24. IID_IAutoComplete : TGUID ='{00bb2762-6a77-11d0-a535-00c04fd7d062}';
  25. IID_IAutoComplete2 : TGUID ='{EAC04BC0-3791-11d2-BB95-0060977B464C}';
  26. IID_IContextMenu : TGUID ='{000214E4-0000-0000-c000-000000000046}';
  27. IID_IContextMenu2 : TGUID ='{000214f4-0000-0000-c000-000000000046}';
  28. IID_IContextMenu3 : TGUID ='{bcfce0a0-ec17-11d0-8d10-00a0c90f2719}';
  29. IID_IPersistFolder : TGUID ='{000214EA-0000-0000-C000-000000000046}';
  30. IID_IPersistFolder2 : TGUID ='{1AC3D9F0-175C-11d1-95BE-00609797EA4F}';
  31. IID_IPersistIDListr : TGUID ='{1079acfc-29bd-11d3-8e0d-00c04f6837d5}';
  32. IID_IEnumExtraSearch: TGUID ='{0E700BE1-9DB6-11d1-A1CE-00C04FD75D13}';
  33. IID_IShellFolder2 : TGUID ='{93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}';
  34. IID_IEXtractIconW : TGUID ='{000214fa-0000-0000-c000-000000000046}';
  35. IID_IEXtractIconA : TGUID ='{000214eb-0000-0000-c000-000000000046}';
  36. IID_IShellLinkA : TGUID ='{000214EE-0000-0000-C000-000000000046}';
  37. IID_IShellLinkW : TGUID ='{000214F9-0000-0000-C000-000000000046}';
  38. IID_IShellBrowser : TGUID ='{000214E2-0000-0000-C000-000000000046}';
  39. IID_IShellDetails : TGUID ='{000214EC-0000-0000-C000-000000000046}';
  40. IID_IShellIcon : TGUID ='{000214E5-0000-0000-C000-000000000046}';
  41. IID_IShellView : TGUID ='{000214E3-0000-0000-C000-000000000046}';
  42. IID_IShellView2 : TGUID ='{88E39E80-3578-11CF-AE69-08002B2E1262}';
  43. IID_IEnumIDList : TGUID ='{000214F2-0000-0000-C000-000000000046}';
  44. CGID_Explorer : TGUID ='{000214D0-0000-0000-C000-000000000046}';
  45. CGID_ShellDocView : TGUID ='{000214D1-0000-0000-C000-000000000046}';
  46. CLSID_StdMarshal : TGUID = '{00000017-0000-0000-c000-000000000046}';
  47. CLSID_IdentityUnmarshal : TGUID = '{0000001b-0000-0000-c000-000000000046}';
  48. CLSID_InProcFreeMarshaler : TGUID = '{0000001c-0000-0000-c000-000000000046}';
  49. CLSID_PSGenObject : TGUID = '{0000030c-0000-0000-c000-000000000046}';
  50. CLSID_PSClientSite : TGUID = '{0000030d-0000-0000-c000-000000000046}';
  51. CLSID_PSClassObject : TGUID = '{0000030e-0000-0000-c000-000000000046}';
  52. CLSID_PSInPlaceActive : TGUID = '{0000030f-0000-0000-c000-000000000046}';
  53. CLSID_PSInPlaceFrame : TGUID = '{00000310-0000-0000-c000-000000000046}';
  54. CLSID_PSDragDrop : TGUID = '{00000311-0000-0000-c000-000000000046}';
  55. CLSID_PSBindCtx : TGUID = '{00000312-0000-0000-c000-000000000046}';
  56. CLSID_PSEnumerators : TGUID = '{00000313-0000-0000-c000-000000000046}';
  57. CLSID_Picture_Metafile : TGUID = '{00000315-0000-0000-c000-000000000046}';
  58. CLSID_StaticMetafile : TGUID = '{00000315-0000-0000-c000-000000000046}';
  59. CLSID_Picture_Dib : TGUID = '{00000316-0000-0000-c000-000000000046}';
  60. CLSID_StaticDib : TGUID = '{00000316-0000-0000-c000-000000000046}';
  61. CLSID_Picture_EnhMetafile : TGUID = '{00000319-0000-0000-c000-000000000046}';
  62. CLSID_DCOMAccessControl : TGUID = '{0000031d-0000-0000-c000-000000000046}';
  63. CLSID_ShellDesktop : TGUID = '{00021400-0000-0000-c000-000000000046}';
  64. CLSID_ShellLink : TGUID = '{00021401-0000-0000-c000-000000000046}';
  65. CLSID_InternetExplorer : TGUID = '{0002DF01-0000-0000-C000-000000000046}';
  66. CLSID_StdComponentCategoriesMgr : TGUID = '{0002e005-0000-0000-c000-000000000046}';
  67. CLSID_WebCrawlerAgent : TGUID = '{08165ea0-e946-11cf-9c87-00aa005127ed}';
  68. CLSID_ShellDispatchInproc : TGUID = '{0A89A860-D7B1-11CE-8350-444553540000}';
  69. CLSID_OldHTMLFormElement : TGUID = '{0D04D285-6BEC-11CF-8B97-00AA00476DA6}';
  70. CLSID_CFontPropPage : TGUID = '{0be35200-8f91-11ce-9de3-00aa004bb851}';
  71. CLSID_CColorPropPage : TGUID = '{0be35201-8f91-11ce-9de3-00aa004bb851}';
  72. CLSID_CPicturePropPage : TGUID = '{0be35202-8f91-11ce-9de3-00aa004bb851}';
  73. CLSID_StdFont : TGUID = '{0be35203-8f91-11ce-9de3-00aa004bb851}';
  74. CLSID_StdPicture : TGUID = '{0be35204-8f91-11ce-9de3-00aa004bb851}';
  75. CLSID_ShellLinkObject : TGUID = '{11219420-1768-11D1-95BE-00609797EA4F}';
  76. CLSID_HTMLLocation : TGUID = '{163BB1E1-6E00-11CF-837A-48DC04C10000}';
  77. CLSID_WebViewFolderContents : TGUID = '{1820FED0-473E-11D0-A96C-00C04FD705A2}';
  78. CLSID_HTMLDocument : TGUID = '{25336920-03F9-11CF-8FD0-00AA00686F13}';
  79. CLSID_HTMLPluginDocument : TGUID = '{25336921-03f9-11cf-8fd0-00aa00686f13}';
  80. CLSID_CMultiLanguage : TGUID = '{275C23E2-3747-11D0-9FEA-00AA003F8646}';
  81. CLSID_HTMLImg : TGUID = '{3050F241-98B5-11CF-BB82-00AA00BDCE0B}';
  82. CLSID_HTMLSelectElement : TGUID = '{3050F245-98B5-11CF-BB82-00AA00BDCE0B}';
  83. CLSID_HTMLTableCell : TGUID = '{3050F246-98B5-11CF-BB82-00AA00BDCE0B}';
  84. CLSID_HTMLAnchorElement : TGUID = '{3050F248-98B5-11CF-BB82-00AA00BDCE0B}';
  85. CLSID_HTMLDivPosition : TGUID = '{3050F249-98B5-11CF-BB82-00AA00BDCE0B}';
  86. CLSID_HTMLBody : TGUID = '{3050F24A-98B5-11CF-BB82-00AA00BDCE0B}';
  87. CLSID_HTMLOptionElement : TGUID = '{3050F24D-98B5-11CF-BB82-00AA00BDCE0B}';
  88. CLSID_HTMLObjectElement : TGUID = '{3050F24E-98B5-11CF-BB82-00AA00BDCE0B}';
  89. CLSID_HTMLFormElement : TGUID = '{3050F251-98B5-11CF-BB82-00AA00BDCE0B}';
  90. CLSID_HTMLHRElement : TGUID = '{3050F252-98B5-11CF-BB82-00AA00BDCE0B}';
  91. CLSID_HTMLEmbed : TGUID = '{3050F25D-98B5-11CF-BB82-00AA00BDCE0B}';
  92. CLSID_HTMLUnknownElement : TGUID = '{3050F268-98B5-11CF-BB82-00AA00BDCE0B}';
  93. CLSID_HTMLUListElement : TGUID = '{3050F269-98B5-11CF-BB82-00AA00BDCE0B}';
  94. CLSID_HTMLTextElement : TGUID = '{3050F26A-98B5-11CF-BB82-00AA00BDCE0B}';
  95. CLSID_HTMLTable : TGUID = '{3050F26B-98B5-11CF-BB82-00AA00BDCE0B}';
  96. CLSID_HTMLTableCol : TGUID = '{3050F26C-98B5-11CF-BB82-00AA00BDCE0B}';
  97. CLSID_HTMLTableRow : TGUID = '{3050F26D-98B5-11CF-BB82-00AA00BDCE0B}';
  98. CLSID_HTMLPhraseElement : TGUID = '{3050F26E-98B5-11CF-BB82-00AA00BDCE0B}';
  99. CLSID_HTMLParaElement : TGUID = '{3050F26F-98B5-11CF-BB82-00AA00BDCE0B}';
  100. CLSID_HTMLOListElement : TGUID = '{3050F270-98B5-11CF-BB82-00AA00BDCE0B}';
  101. CLSID_HTMLMapElement : TGUID = '{3050F271-98B5-11CF-BB82-00AA00BDCE0B}';
  102. CLSID_HTMLListElement : TGUID = '{3050F272-98B5-11CF-BB82-00AA00BDCE0B}';
  103. CLSID_HTMLLIElement : TGUID = '{3050F273-98B5-11CF-BB82-00AA00BDCE0B}';
  104. CLSID_HTMLMetaElement : TGUID = '{3050F275-98B5-11CF-BB82-00AA00BDCE0B}';
  105. CLSID_HTMLBaseElement : TGUID = '{3050F276-98B5-11CF-BB82-00AA00BDCE0B}';
  106. CLSID_HTMLLinkElement : TGUID = '{3050F277-98B5-11CF-BB82-00AA00BDCE0B}';
  107. CLSID_HTMLIsIndexElement : TGUID = '{3050F278-98B5-11CF-BB82-00AA00BDCE0B}';
  108. CLSID_HTMLNextIdElement : TGUID = '{3050F279-98B5-11CF-BB82-00AA00BDCE0B}';
  109. CLSID_HTMLHeaderElement : TGUID = '{3050F27A-98B5-11CF-BB82-00AA00BDCE0B}';
  110. CLSID_HTMLFontElement : TGUID = '{3050F27B-98B5-11CF-BB82-00AA00BDCE0B}';
  111. CLSID_HTMLDTElement : TGUID = '{3050F27C-98B5-11CF-BB82-00AA00BDCE0B}';
  112. CLSID_HTMLDListElement : TGUID = '{3050F27D-98B5-11CF-BB82-00AA00BDCE0B}';
  113. CLSID_HTMLDivElement : TGUID = '{3050F27E-98B5-11CF-BB82-00AA00BDCE0B}';
  114. CLSID_HTMLDDElement : TGUID = '{3050F27F-98B5-11CF-BB82-00AA00BDCE0B}';
  115. CLSID_HTMLBRElement : TGUID = '{3050F280-98B5-11CF-BB82-00AA00BDCE0B}';
  116. CLSID_HTMLBlockElement : TGUID = '{3050F281-98B5-11CF-BB82-00AA00BDCE0B}';
  117. CLSID_HTMLBaseFontElement : TGUID = '{3050F282-98B5-11CF-BB82-00AA00BDCE0B}';
  118. CLSID_HTMLAreaElement : TGUID = '{3050F283-98B5-11CF-BB82-00AA00BDCE0B}';
  119. CLSID_HTMLTitleElement : TGUID = '{3050F284-98B5-11CF-BB82-00AA00BDCE0B}';
  120. CLSID_HTMLStyle : TGUID = '{3050F285-98B5-11CF-BB82-00AA00BDCE0B}';
  121. CLSID_HTMLDialog : TGUID = '{3050F28A-98B5-11CF-BB82-00AA00BDCE0B}';
  122. CLSID_HTMLScriptElement : TGUID = '{3050F28C-98B5-11CF-BB82-00AA00BDCE0B}';
  123. CLSID_HTMLInputTextElement : TGUID = '{3050F2AB-98B5-11CF-BB82-00AA00BDCE0B}';
  124. CLSID_HTMLTextAreaElement : TGUID = '{3050F2AC-98B5-11CF-BB82-00AA00BDCE0B}';
  125. CLSID_HTMLInputFileElement : TGUID = '{3050F2AE-98B5-11CF-BB82-00AA00BDCE0B}';
  126. CLSID_HTMLInputButtonElement : TGUID = '{3050F2B4-98B5-11CF-BB82-00AA00BDCE0B}';
  127. CLSID_HTMLMarqueeElement : TGUID = '{3050F2B9-98B5-11CF-BB82-00AA00BDCE0B}';
  128. CLSID_HTMLOptionButtonElement : TGUID = '{3050F2BE-98B5-11CF-BB82-00AA00BDCE0B}';
  129. CLSID_HTMLInputImage : TGUID = '{3050F2C4-98B5-11CF-BB82-00AA00BDCE0B}';
  130. CLSID_HTMLButtonElement : TGUID = '{3050F2C6-98B5-11CF-BB82-00AA00BDCE0B}';
  131. CLSID_HTMLStyleSheet : TGUID = '{3050F2E4-98B5-11CF-BB82-00AA00BDCE0B}';
  132. CLSID_HTMLTableSection : TGUID = '{3050F2E9-98B5-11CF-BB82-00AA00BDCE0B}';
  133. CLSID_HTMLTableCaption : TGUID = '{3050F2EC-98B5-11CF-BB82-00AA00BDCE0B}';
  134. CLSID_HTMLFrameBase : TGUID = '{3050F312-98B5-11CF-BB82-00AA00BDCE0B}';
  135. CLSID_HTMLFrameElement : TGUID = '{3050F314-98B5-11CF-BB82-00AA00BDCE0B}';
  136. CLSID_HTMLIFrame : TGUID = '{3050F316-98B5-11CF-BB82-00AA00BDCE0B}';
  137. CLSID_HTMLCommentElement : TGUID = '{3050F317-98B5-11CF-BB82-00AA00BDCE0B}';
  138. CLSID_HTMLFrameSetSite : TGUID = '{3050F31A-98B5-11CF-BB82-00AA00BDCE0B}';
  139. CLSID_HTMLLabelElement : TGUID = '{3050F32B-98B5-11CF-BB82-00AA00BDCE0B}';
  140. CLSID_HTMLScreen : TGUID = '{3050F35D-98B5-11CF-BB82-00AA00BDCE0B}';
  141. CLSID_HTMLBGsound : TGUID = '{3050F370-98B5-11CF-BB82-00AA00BDCE0B}';
  142. CLSID_HTMLStyleElement : TGUID = '{3050F37D-98B5-11CF-BB82-00AA00BDCE0B}';
  143. CLSID_HTMLStyleSheetsCollection : TGUID = '{3050F37F-98B5-11CF-BB82-00AA00BDCE0B}';
  144. CLSID_HTMLNoShowElement : TGUID = '{3050F38B-98B5-11CF-BB82-00AA00BDCE0B}';
  145. CLSID_HTMLOptionElementFactory : TGUID = '{3050F38D-98B5-11CF-BB82-00AA00BDCE0B}';
  146. CLSID_HTMLImageElementFactory : TGUID = '{3050F38F-98B5-11CF-BB82-00AA00BDCE0B}';
  147. CLSID_HTMLWindowProxy : TGUID = '{3050F391-98B5-11CF-BB82-00AA00BDCE0B}';
  148. CLSID_HTMLStyleSheetRulesCollection : TGUID = '{3050F3CD-98B5-11CF-BB82-00AA00BDCE0B}';
  149. CLSID_HTMLStyleSheetRule : TGUID = '{3050F3CE-98B5-11CF-BB82-00AA00BDCE0B}';
  150. CLSID_HTMLRuleStyle : TGUID = '{3050F3D0-98B5-11CF-BB82-00AA00BDCE0B}';
  151. CLSID_HTMLStyleFontFace : TGUID = '{3050F3D4-98B5-11CF-BB82-00AA00BDCE0B}';
  152. CLSID_HTMLSpanFlow : TGUID = '{3050F3E6-98B5-11CF-BB82-00AA00BDCE0B}';
  153. CLSID_HTMLFieldSetElement : TGUID = '{3050F3E8-98B5-11CF-BB82-00AA00BDCE0B}';
  154. CLSID_HTMLLegendElement : TGUID = '{3050F3E9-98B5-11CF-BB82-00AA00BDCE0B}';
  155. CLSID_HTMLFiltersCollection : TGUID = '{3050F3EF-98B5-11CF-BB82-00AA00BDCE0B}';
  156. CLSID_HTMLSpanElement : TGUID = '{3050F3F5-98B4-11CF-BB82-00AA00BDCE0B}';
  157. CLSID_CMimeTypes : TGUID = '{3050F3FE-98B5-11CF-BB82-00AA00BDCE0B}';
  158. CLSID_CPlugins : TGUID = '{3050F3FF-98B5-11CF-BB82-00AA00BDCE0B}';
  159. CLSID_COpsProfile : TGUID = '{3050F402-98B5-11CF-BB82-00AA00BDCE0B}';
  160. CLSID_MHTMLDocument : TGUID = '{3050f3d9-98b5-11cf-bb82-00aa00bdce0b}';
  161. CLSID_ClassInstallFilter : TGUID = '{32b533bb-edae-11d0-bd5a-00aa00b92af1}';
  162. CLSID_CUrlHistory : TGUID = '{3c374a40-bae4-11cf-bf7d-00aa006946ee}';
  163. CLSID_CdlProtocol : TGUID = '{3dd53d40-7b8b-11d0-b013-00aa0059ce02}';
  164. CLSID_StdEncodingFilterFac : TGUID = '{54c37cd0-d944-11d0-a9f4-006097942311}';
  165. CLSID_TaskbarList : TGUID = '{56fdf344-fd6d-11d0-958a-006097c9a090}';
  166. CLSID_ShellFolderView : TGUID = '{62112AA1-EBE4-11CF-A5FB-0020AFE7292D}';
  167. CLSID_CFSIconOverlayManager : TGUID = '{63b51f81-c868-11d0-999c-00c04fd655e1}';
  168. CLSID_ShellUIHelper : TGUID = '{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}';
  169. CLSID_ActiveDesktop : TGUID = '{75048700-ef1f-11d0-9888-006097deacf9}';
  170. CLSID_StdHlink : TGUID = '{79eac9d0-baf9-11ce-8c82-00aa004ba90b}';
  171. CLSID_StdHlinkBrowseContext : TGUID = '{79eac9d1-baf9-11ce-8c82-00aa004ba90b}';
  172. CLSID_StdURLMoniker : TGUID = '{79eac9e0-baf9-11ce-8c82-00aa004ba90b}';
  173. CLSID_StdURLProtocol : TGUID = '{79eac9e1-baf9-11ce-8c82-00aa004ba90b}';
  174. CLSID_HttpProtocol : TGUID = '{79eac9e2-baf9-11ce-8c82-00aa004ba90b}';
  175. CLSID_FtpProtocol : TGUID = '{79eac9e3-baf9-11ce-8c82-00aa004ba90b}';
  176. CLSID_GopherProtocol : TGUID = '{79eac9e4-baf9-11ce-8c82-00aa004ba90b}';
  177. CLSID_HttpSProtocol : TGUID = '{79eac9e5-baf9-11ce-8c82-00aa004ba90b}';
  178. CLSID_MkProtocol : TGUID = '{79eac9e6-baf9-11ce-8c82-00aa004ba90b}';
  179. CLSID_FileProtocol : TGUID = '{79eac9e7-baf9-11ce-8c82-00aa004ba90b}';
  180. CLSID_UrlMkBindCtx : TGUID = '{79eac9f2-baf9-11ce-8c82-00aa004ba90b}';
  181. CLSID_InternetSecurityManager : TGUID = '{7b8a2d94-0ac9-11d1-896c-00c04fb6bfc4}';
  182. CLSID_InternetZoneManager : TGUID = '{7b8a2d95-0ac9-11d1-896c-00c04fb6bfc4}';
  183. CLSID_CDLAgent : TGUID = '{7d559c10-9fe9-11d0-93f7-00aa0059ce02}';
  184. CLSID_OverlayIdentifier_SlowFile : TGUID = '{7d688a77-c613-11d0-999b-00c04fd655e1}';
  185. CLSID_StockFontPage : TGUID = '{7ebdaae0-8120-11cf-899f-00aa00688b10}';
  186. CLSID_StockColorPage : TGUID = '{7ebdaae1-8120-11cf-899f-00aa00688b10}';
  187. CLSID_StockPicturePage : TGUID = '{7ebdaae2-8120-11cf-899f-00aa00688b10}';
  188. CLSID_WebBrowser : TGUID = '{8856F961-340A-11D0-A96B-00C04FD705A2}';
  189. CLSID_DeCompMimeFilter : TGUID = '{8f6b0360-b80d-11d0-a9b3-006097942311}';
  190. CLSID_ShellFolderViewOC : TGUID = '{9BA05971-F6A8-11CF-A442-00A0C90A8F39}';
  191. CLSID_ShellWindows : TGUID = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}';
  192. CLSID_SubscriptionMgr : TGUID = '{ABBE31D0-6DAE-11D0-BECA-00C04FD940BE}';
  193. CLSID_ChannelMgr : TGUID = '{B3CDAE90-D170-11D0-802B-00C04FD75D13}';
  194. CLSID_CMLangString : TGUID = '{C04D65CF-B70D-11D0-B188-00AA0038C969}';
  195. CLSID_HTMLWindow2 : TGUID = '{D48A6EC6-6A4A-11CF-94A7-444553540000}';
  196. CLSID_OldHTMLDocument : TGUID = '{D48A6EC9-6A4A-11CF-94A7-444553540000}';
  197. CLSID_CMLangConvertCharset : TGUID = '{D66D6F99-CDAA-11D0-B822-00C04FC9B31F}';
  198. CLSID_WebBrowser_V1 : TGUID = '{EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}';
  199. CLSID_HTMLHistory : TGUID = '{FECEAAA3-8405-11CF-8BA1-00AA00476DA6}';
  200. CLSID_HTMLNavigator : TGUID = '{FECEAAA6-8405-11CF-8BA1-00AA00476DA6}';
  201. CLSID_SoftDistExt : TGUID = '{b15b8dc0-c7e1-11d0-8680-00aa00bdcb71}';
  202. CLSID_CURLSearchHook : TGUID = '{cfbfae00-17a6-11d0-99cb-00c04fd64497}';
  203. CLSID_PersistPropset : TGUID = '{fb8f0821-0164-101b-84ed-08002b2ec713}';
  204. CLSID_ConvertVBX : TGUID = '{fb8f0822-0164-101b-84ed-08002b2ec713}';
  205. CLSID_InternetShortcut : TGUID = '{fbf23b40-e3f0-101b-8488-00aa003e56f8}';
  206. CLSID_ShellItem : TGUID = '{9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917}';
  207. CLSID_FileOpenDialog : TGUID = '{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7}';
  208. CLSID_FileSaveDialog : TGUID = '{C0B4E2F3-BA21-4773-8DBA-335EC946EB8B}';
  209. FOLDERID_Fonts : TGUID = '{FD228CB7-AE11-4AE3-864C-16F3910AB8FE}';
  210. Const
  211. SV2GV_CURRENTVIEW = DWORD(-1);
  212. SV2GV_DEFAULTVIEW = DWORD(-2);
  213. INTERNET_MAX_URL_LENGTH = 2083;
  214. MAX_COLUMN_NAME_LEN = 80;
  215. MAX_COLUMN_DESC_LEN = 128;
  216. CMF_NORMAL = $00000000;
  217. CMF_DEFAULTONLY = $00000001;
  218. CMF_VERBSONLY = $00000002;
  219. CMF_EXPLORE = $00000004;
  220. CMF_NOVERBS = $00000008;
  221. CMF_CANRENAME = $00000010;
  222. CMF_NODEFAULT = $00000020;
  223. CMF_INCLUDESTATIC = $00000040;
  224. CMF_EXTENDEDVERBS = $00000100; // rarely used verbs
  225. CMF_RESERVED = $ffff0000; // View specific
  226. GCS_VERBA = $00000000; // canonical verb
  227. GCS_HELPTEXTA = $00000001; // help text (for status bar)
  228. GCS_VALIDATEA = $00000002; // validate command exists
  229. GCS_VERBW = $00000004; // canonical verb (unicode)
  230. GCS_HELPTEXTW = $00000005; // help text (unicode version)
  231. GCS_VALIDATEW = $00000006; // validate command exists (unicode)
  232. GCS_UNICODE = $00000004; // for bit testing - Unicode string
  233. CMIC_MASK_ICON = $00000010;
  234. CMIC_MASK_HOTKEY = $00000020;
  235. CMIC_MASK_FLAG_NO_UI = $00000400;
  236. CMIC_MASK_UNICODE = $00004000;
  237. CMIC_MASK_NO_CONSOLE = $00008000;
  238. CMIC_MASK_ASYNCOK = $00100000;
  239. CMIC_MASK_SHIFT_DOWN = $10000000;
  240. CMIC_MASK_CONTROL_DOWN = $40000000;
  241. CMIC_MASK_PTINVOKE = $20000000;
  242. GIL_OPENICON = $0001; // allows containers to specify an "open" look
  243. GIL_FORSHELL = $0002; // icon is to be displayed in a ShellFolder
  244. GIL_ASYNC = $0020; // this is an async extract, return E_PENDING
  245. GIL_DEFAULTICON = $0040; // get the default icon location if the final one takes too long to get
  246. GIL_FORSHORTCUT = $0080; // the icon is for a shortcut to the object
  247. GIL_SIMULATEDOC = $0001; // simulate this document icon for this
  248. GIL_PERINSTANCE = $0002; // icons from this class are per instance (each file has its own)
  249. GIL_PERCLASS = $0004; // icons from this class per class (shared for all files of this type)
  250. GIL_NOTFILENAME = $0008; // location is not a filename, must call ::ExtractIcon
  251. GIL_DONTCACHE = $0010; // this icon should not be cached
  252. ISIOI_ICONFILE = $00000001; // path is returned through pwszIconFile
  253. ISIOI_ICONINDEX = $00000002; // icon index in pwszIconFile is returned through pIndex
  254. OI_ASYNC = $FFFFEEEE;
  255. IDO_SHGIOI_SHARE = $0FFFFFFF;
  256. IDO_SHGIOI_LINK = $0FFFFFFE;
  257. IDO_SHGIOI_SLOWFILE = $0FFFFFFFD;
  258. NT_CONSOLE_PROPS_SIG = $A0000002;
  259. NT_FE_CONSOLE_PROPS_SIG = $A0000004;
  260. EXP_DARWIN_ID_SIG = $A0000006;
  261. EXP_LOGO3_ID_SIG = $A0000007;
  262. EXP_SPECIAL_FOLDER_SIG = $A0000005; // LPEXP_SPECIAL_FOLDER
  263. EXP_SZ_LINK_SIG = $A0000001; // LPEXP_SZ_LINK (target)
  264. EXP_SZ_ICON_SIG = $A0000007; // LPEXP_SZ_LINK (icon)
  265. FO_MOVE = $0001;
  266. FO_COPY = $0002;
  267. FO_DELETE = $0003;
  268. FO_RENAME = $0004;
  269. FOF_MULTIDESTFILES = $0001;
  270. FOF_CONFIRMMOUSE = $0002;
  271. FOF_SILENT = $0004; // don't create progress/report
  272. FOF_RENAMEONCOLLISION = $0008;
  273. FOF_NOCONFIRMATION = $0010; // Don't prompt the user.
  274. FOF_WANTMAPPINGHANDLE = $0020; // Fill in SHFILEOPSTRUCT.hNameMappings
  275. FOF_ALLOWUNDO = $0040;
  276. FOF_FILESONLY = $0080; // on *.*, do only files
  277. FOF_SIMPLEPROGRESS = $0100; // means don't show names of files
  278. FOF_NOCONFIRMMKDIR = $0200; // don't confirm making any needed dirs
  279. FOF_NOERRORUI = $0400; // don't put up error UI
  280. FOF_NOCOPYSECURITYATTRIBS = $0800; // dont copy NT file Security Attributes
  281. FOF_NORECURSION = $1000; // don't recurse into directories.
  282. FOF_NO_CONNECTED_ELEMENTS = $2000; // don't operate on connected file elements.
  283. FOF_WANTNUKEWARNING = $4000; // during delete operation, warn if nuking instead of recycling (partially overrides FOF_NOCONFIRMATION)
  284. FOF_NORECURSEREPARSE = $8000; // treat reparse points as objects, not containers
  285. PO_DELETE = $0013; // printer is being deleted
  286. PO_RENAME = $0014; // printer is being renamed
  287. PO_PORTCHANGE = $0020; // port this printer connected to is being changed
  288. PO_REN_PORT = $0034; // PO_RENAME and PO_PORTCHANGE at same time.
  289. FVSIF_RECT = $00000001; // The rect variable has valid data.
  290. FVSIF_PINNED = $00000002; // We should Initialize pinned
  291. FVSIF_NEWFAILED = $08000000; // The new file passed back failed
  292. FVSIF_NEWFILE = $80000000; // A new file to view has been returned
  293. FVSIF_CANVIEWIT = $40000000; // The viewer can view it.
  294. FCIDM_SHVIEWFIRST = $0000;
  295. FCIDM_SHVIEWLAST = $7fff;
  296. FCIDM_BROWSERFIRST = $a000;
  297. FCIDM_BROWSERLAST = $bf00;
  298. FCIDM_GLOBALFIRST = $8000;
  299. FCIDM_GLOBALLAST = $9fff;
  300. FCIDM_MENU_FILE = (FCIDM_GLOBALFIRST + $0000);
  301. FCIDM_MENU_EDIT = (FCIDM_GLOBALFIRST + $0040);
  302. FCIDM_MENU_VIEW = (FCIDM_GLOBALFIRST + $0080);
  303. FCIDM_MENU_VIEW_SEP_OPTIONS= (FCIDM_GLOBALFIRST + $0081);
  304. FCIDM_MENU_TOOLS = (FCIDM_GLOBALFIRST + $00c0); // for Win9x compat
  305. FCIDM_MENU_TOOLS_SEP_GOTO = (FCIDM_GLOBALFIRST + $00c1); // for Win9x compat
  306. FCIDM_MENU_HELP = (FCIDM_GLOBALFIRST + $0100);
  307. FCIDM_MENU_FIND = (FCIDM_GLOBALFIRST + $0140);
  308. FCIDM_MENU_EXPLORE = (FCIDM_GLOBALFIRST + $0150);
  309. FCIDM_MENU_FAVORITES = (FCIDM_GLOBALFIRST + $0170);
  310. CDBOSC_SETFOCUS = $00000000;
  311. CDBOSC_KILLFOCUS = $00000001;
  312. CDBOSC_SELCHANGE = $00000002;
  313. CDBOSC_RENAME = $00000003;
  314. CDBOSC_STATECHANGE = $00000004;
  315. CDB2N_CONTEXTMENU_DONE = $00000001;
  316. CDB2N_CONTEXTMENU_START = $00000002;
  317. CDB2GVF_SHOWALLFILES = $00000001;
  318. CSIDL_DESKTOP = $0000; // <desktop>
  319. CSIDL_INTERNET = $0001; // Internet Explorer (icon on desktop)
  320. CSIDL_PROGRAMS = $0002; // Start Menu\Programs
  321. CSIDL_CONTROLS = $0003; // My Computer\Control Panel
  322. CSIDL_PRINTERS = $0004; // My Computer\Printers
  323. CSIDL_PERSONAL = $0005; // My Documents
  324. CSIDL_FAVORITES = $0006; // <user name>\Favorites
  325. CSIDL_STARTUP = $0007; // Start Menu\Programs\Startup
  326. CSIDL_RECENT = $0008; // <user name>\Recent
  327. CSIDL_SENDTO = $0009; // <user name>\SendTo
  328. CSIDL_BITBUCKET = $000a; // <desktop>\Recycle Bin
  329. CSIDL_STARTMENU = $000b; // <user name>\Start Menu
  330. CSIDL_MYDOCUMENTS = $000c; // logical "My Documents" desktop icon
  331. CSIDL_MYMUSIC = $000d; // "My Music" folder
  332. CSIDL_MYVIDEO = $000e; // "My Videos" folder
  333. CSIDL_DESKTOPDIRECTORY = $0010; // <user name>\Desktop
  334. CSIDL_DRIVES = $0011; // My Computer
  335. CSIDL_NETWORK = $0012; // Network Neighborhood (My Network Places)
  336. CSIDL_NETHOOD = $0013; // <user name>\nethood
  337. CSIDL_FONTS = $0014; // windows\fonts
  338. CSIDL_TEMPLATES = $0015;
  339. CSIDL_COMMON_STARTMENU = $0016; // All Users\Start Menu
  340. CSIDL_COMMON_PROGRAMS = $0017; // All Users\Start Menu\Programs
  341. CSIDL_COMMON_STARTUP = $0018; // All Users\Startup
  342. CSIDL_COMMON_DESKTOPDIRECTORY = $0019; // All Users\Desktop
  343. CSIDL_APPDATA = $001a; // <user name>\Application Data
  344. CSIDL_PRINTHOOD = $001b; // <user name>\PrintHood
  345. CSIDL_LOCAL_APPDATA = $001c; // <user name>\Local Settings\Applicaiton Data (non roaming)
  346. CSIDL_ALTSTARTUP = $001d; // non localized startup
  347. CSIDL_COMMON_ALTSTARTUP = $001e; // non localized common startup
  348. CSIDL_COMMON_FAVORITES = $001f;
  349. CSIDL_INTERNET_CACHE = $0020;
  350. CSIDL_COOKIES = $0021;
  351. CSIDL_HISTORY = $0022;
  352. CSIDL_COMMON_APPDATA = $0023; // All Users\Application Data
  353. CSIDL_WINDOWS = $0024; // GetWindowsDirectory()
  354. CSIDL_SYSTEM = $0025; // GetSystemDirectory()
  355. CSIDL_PROGRAM_FILES = $0026; // C:\Program Files
  356. CSIDL_MYPICTURES = $0027; // C:\Program Files\My Pictures
  357. CSIDL_PROFILE = $0028; // USERPROFILE
  358. CSIDL_SYSTEMX86 = $0029; // x86 system directory on RISC
  359. CSIDL_PROGRAM_FILESX86 = $002a; // x86 C:\Program Files on RISC
  360. CSIDL_PROGRAM_FILES_COMMON = $002b; // C:\Program Files\Common
  361. CSIDL_PROGRAM_FILES_COMMONX86 = $002c; // x86 Program Files\Common on RISC
  362. CSIDL_COMMON_TEMPLATES = $002d; // All Users\Templates
  363. CSIDL_COMMON_DOCUMENTS = $002e; // All Users\Documents
  364. CSIDL_COMMON_ADMINTOOLS = $002f; // All Users\Start Menu\Programs\Administrative Tools
  365. CSIDL_ADMINTOOLS = $0030; // <user name>\Start Menu\Programs\Administrative Tools
  366. CSIDL_CONNECTIONS = $0031; // Network and Dial-up Connections
  367. CSIDL_COMMON_MUSIC = $0035; // All Users\My Music
  368. CSIDL_COMMON_PICTURES = $0036; // All Users\My Pictures
  369. CSIDL_COMMON_VIDEO = $0037; // All Users\My Video
  370. CSIDL_RESOURCES = $0038; // Resource Direcotry
  371. CSIDL_RESOURCES_LOCALIZED = $0039; // Localized Resource Direcotry
  372. CSIDL_COMMON_OEM_LINKS = $003a; // Links to All Users OEM specific apps
  373. CSIDL_CDBURN_AREA = $003b; // USERPROFILE\Local Settings\Application Data\Microsoft\CD Burning
  374. CSIDL_COMPUTERSNEARME = $003d; // Computers Near Me (computered from Workgroup membership)
  375. CSIDL_FLAG_CREATE = $8000; // combine with CSIDL_ value to force folder creation in SHGetFolderPath()
  376. CSIDL_FLAG_DONT_VERIFY = $4000; // combine with CSIDL_ value to return an unverified folder path
  377. CSIDL_FLAG_NO_ALIAS = $1000; // combine with CSIDL_ value to insure non-alias versions of the pidl
  378. CSIDL_FLAG_PER_USER_INIT = $0800; // combine with CSIDL_ value to indicate per-user init (eg. upgrade)
  379. CSIDL_FLAG_MASK = $FF00; // mask for all possible flag values
  380. FCS_READ = $00000001;
  381. FCS_FORCEWRITE = $00000002;
  382. FCSM_VIEWID = $00000001;
  383. FCSM_WEBVIEWTEMPLATE = $00000002;
  384. FCSM_INFOTIP = $00000004;
  385. FCSM_CLSID = $00000008;
  386. FCSM_ICONFILE = $00000010;
  387. FCSM_LOGO = $00000020;
  388. FCSM_FLAGS = $00000040;
  389. BIF_RETURNONLYFSDIRS = $0001; // For finding a folder to start document searching
  390. BIF_DONTGOBELOWDOMAIN = $0002; // For starting the Find Computer
  391. BIF_STATUSTEXT = $0004; // Top of the dialog has 2 lines of text for BROWSEINFO.lpszTitle and one line if
  392. BIF_RETURNFSANCESTORS = $0008;
  393. BIF_EDITBOX = $0010; // Add an editbox to the dialog
  394. BIF_VALIDATE = $0020; // insist on valid result (or CANCEL)
  395. BIF_NEWDIALOGSTYLE = $0040; // Use the new dialog layout with the ability to resize
  396. BIF_BROWSEINCLUDEURLS = $0080; // Allow URLs to be displayed or entered. (Requires BIF_USENEWUI)
  397. BIF_UAHINT = $0100; // Add a UA hint to the dialog, in place of the edit box. May not be combined with BIF_EDITBOX
  398. BIF_NONEWFOLDERBUTTON = $0200; // Do not add the "New Folder" button to the dialog. Only applicable with BIF_NEWDIALOGSTYLE.
  399. BIF_NOTRANSLATETARGETS = $0400; // don't traverse target as shortcut
  400. BIF_BROWSEFORCOMPUTER = $1000; // Browsing for Computers.
  401. BIF_BROWSEFORPRINTER = $2000; // Browsing for Printers
  402. BIF_BROWSEINCLUDEFILES = $4000; // Browsing for Everything
  403. BIF_SHAREABLE = $8000; // sharable resources displayed (remote shares, requires BIF_USENEWUI)
  404. BFFM_INITIALIZED = $0001;
  405. BFFM_SELCHANGED = $0002;
  406. BFFM_VALIDATEFAILEDA = $0003;
  407. BFFM_VALIDATEFAILEDW = $0004;
  408. BFFM_SETSTATUSTEXTA = WM_USER + 100;
  409. BFFM_SETSTATUSTEXTW = WM_USER + 104;
  410. BFFM_ENABLEOK = WM_USER + 101;
  411. BFFM_SETSELECTIONA = WM_USER + 102;
  412. BFFM_SETSELECTIONW = WM_USER + 103;
  413. BFFM_SETOKTEXT = WM_USER + 105;
  414. BFFM_SETEXPANDED = WM_USER + 106;
  415. {$ifdef Unicode}
  416. BFFM_SETSTATUSTEXT = BFFM_SETSTATUSTEXTW;
  417. BFFM_SETSELECTION = BFFM_SETSELECTIONW;
  418. BFFM_VALIDATEFAILED = BFFM_VALIDATEFAILEDW;
  419. {$else}
  420. BFFM_SETSTATUSTEXT = BFFM_SETSTATUSTEXTA;
  421. BFFM_SETSELECTION = BFFM_SETSELECTIONA;
  422. BFFM_VALIDATEFAILED = BFFM_VALIDATEFAILEDA;
  423. {$endif}
  424. PROGDLG_NORMAL = $00000000; // default normal progress dlg behavior
  425. PROGDLG_MODAL = $00000001; // the dialog is modal to its hwndParent (default is modeless)
  426. PROGDLG_AUTOTIME = $00000002; // automatically updates the "Line3" text with the "time remaining" (you cant call SetLine3 if you passs this!)
  427. PROGDLG_NOTIME = $00000004; // we dont show the "time remaining" if this is set. We need this if dwTotal < dwCompleted for sparse files
  428. PROGDLG_NOMINIMIZE = $00000008; // Do not have a minimize button in the caption bar.
  429. PROGDLG_NOPROGRESSBAR = $00000010; // Don't display the progress bar
  430. PDTIMER_RESET = $00000001; // Reset the timer so the progress will be calculated from now until the first ::SetProgress() is called so
  431. DWFRF_NORMAL = $0000;
  432. DWFRF_DELETECONFIGDATA = $0001;
  433. DWFAF_HIDDEN = $0001; // add hidden
  434. ITSSFLAG_COMPLETE_ON_DESTROY = $0000;
  435. ITSSFLAG_KILL_ON_DESTROY = $0001;
  436. ITSSFLAG_SUPPORTS_TERMINATE = $0002;
  437. ITSSFLAG_FLAGS_MASK = $0003;
  438. ITSSFLAG_THREAD_TERMINATE_TIMEOUT = $0010;
  439. ITSSFLAG_THREAD_POOL_TIMEOUT = $0020;
  440. ITSAT_DEFAULT_LPARAM = $ffffffff;
  441. ITSAT_DEFAULT_PRIORITY = $10000000;
  442. ITSAT_MAX_PRIORITY = $7fffffff;
  443. ITSAT_MIN_PRIORITY = $00000000;
  444. ITSSFLAG_TASK_PLACEINFRONT = $00000001;
  445. ITSSFLAG_TASK_PLACEINBACK = $00000002;
  446. SHIMSTCAPFLAG_LOCKABLE = $0001; // does the store require/support locking
  447. SHIMSTCAPFLAG_PURGEABLE = $0002; // does the store require dead items purging externally ?
  448. ISFB_MASK_STATE = $00000001; // TRUE if dwStateMask and dwState is valid
  449. ISFB_MASK_BKCOLOR = $00000002; // TRUE if crBkgnd field is valid
  450. ISFB_MASK_VIEWMODE = $00000004; // TRUE if wViewMode field is valid
  451. ISFB_MASK_SHELLFOLDER = $00000008;
  452. ISFB_MASK_IDLIST = $00000010;
  453. ISFB_MASK_COLORS = $00000020; // TRUE if crXXXX fields are valid (except bkgnd)
  454. ISFB_STATE_DEFAULT = $00000000;
  455. ISFB_STATE_DEBOSSED = $00000001;
  456. ISFB_STATE_ALLOWRENAME = $00000002;
  457. ISFB_STATE_NOSHOWTEXT = $00000004; // TRUE if _fNoShowText
  458. ISFB_STATE_CHANNELBAR = $00000010; // TRUE if we want NavigateTarget support
  459. ISFB_STATE_QLINKSMODE = $00000020; // TRUE if we want to turn off drag & drop onto content items
  460. ISFB_STATE_FULLOPEN = $00000040; // TRUE if band should maximize when opened
  461. ISFB_STATE_NONAMESORT = $00000080; // TRUE if band should _not_ sort icons by name
  462. ISFB_STATE_BTNMINSIZE = $00000100; // TRUE if band should report min thickness of button
  463. ISFBVIEWMODE_SMALLICONS = $0001;
  464. ISFBVIEWMODE_LARGEICONS = $0002;
  465. ISFBVIEWMODE_LOGOS = $0003;
  466. COMPONENT_TOP = $3fffffff; // izOrder value meaning component is at the top
  467. IS_NORMAL = $00000001;
  468. IS_FULLSCREEN = $00000002;
  469. IS_SPLIT = $00000004;
  470. IS_VALIDSTATEBITS = dword(IS_NORMAL or IS_SPLIT or IS_FULLSCREEN or $80000000 or $40000000); // All of the currently defined IS_* bits.
  471. AD_APPLY_SAVE = $00000001;
  472. AD_APPLY_HTMLGEN = $00000002;
  473. AD_APPLY_REFRESH = $00000004;
  474. AD_APPLY_FORCE = $00000008;
  475. AD_APPLY_BUFFERED_REFRESH = $00000010;
  476. AD_APPLY_DYNAMICREFRESH = $00000020;
  477. COMP_ELEM_TYPE = $00000001;
  478. COMP_ELEM_CHECKED = $00000002;
  479. COMP_ELEM_DIRTY = $00000004;
  480. COMP_ELEM_NOSCROLL = $00000008;
  481. COMP_ELEM_POS_LEFT = $00000010;
  482. COMP_ELEM_POS_TOP = $00000020;
  483. COMP_ELEM_SIZE_WIDTH = $00000040;
  484. COMP_ELEM_SIZE_HEIGHT = $00000080;
  485. COMP_ELEM_POS_ZINDEX = $00000100;
  486. COMP_ELEM_SOURCE = $00000200;
  487. COMP_ELEM_FRIENDLYNAME = $00000400;
  488. COMP_ELEM_SUBSCRIBEDURL = $00000800;
  489. COMP_ELEM_ORIGINAL_CSI = $00001000;
  490. COMP_ELEM_RESTORED_CSI = $00002000;
  491. COMP_ELEM_CURITEMSTATE = $00004000;
  492. ADDURL_SILENT = $0001;
  493. COMPONENT_DEFAULT_LEFT = ($FFFF);
  494. COMPONENT_DEFAULT_TOP = ($FFFF);
  495. SSM_CLEAR = $0000;
  496. SSM_SET = $0001;
  497. SSM_REFRESH = $0002;
  498. SSM_UPDATE = $0004;
  499. SCHEME_DISPLAY = $0001;
  500. SCHEME_EDIT = $0002;
  501. SCHEME_LOCAL = $0004;
  502. SCHEME_GLOBAL = $0008;
  503. SCHEME_REFRESH = $0010;
  504. SCHEME_UPDATE = $0020;
  505. SCHEME_DONOTUSE = $0040; // used to be SCHEME_ENUMERATE; no longer supported
  506. SCHEME_CREATE = $0080;
  507. GADOF_DIRTY = $00000001;
  508. SHCDF_UPDATEITEM = $00000001; // this flag is a hint that the file has changed since the last call to GetItemData
  509. SHCNE_RENAMEITEM = DWord($00000001);
  510. SHCNE_CREATE = DWord($00000002);
  511. SHCNE_DELETE = DWord($00000004);
  512. SHCNE_MKDIR = DWord($00000008);
  513. SHCNE_RMDIR = DWord($00000010);
  514. SHCNE_MEDIAINSERTED = DWord($00000020);
  515. SHCNE_MEDIAREMOVED = DWord($00000040);
  516. SHCNE_DRIVEREMOVED = DWord($00000080);
  517. SHCNE_DRIVEADD = DWord($00000100);
  518. SHCNE_NETSHARE = DWord($00000200);
  519. SHCNE_NETUNSHARE = DWord($00000400);
  520. SHCNE_ATTRIBUTES = DWord($00000800);
  521. SHCNE_UPDATEDIR = DWord($00001000);
  522. SHCNE_UPDATEITEM = DWord($00002000);
  523. SHCNE_SERVERDISCONNECT = DWord($00004000);
  524. SHCNE_UPDATEIMAGE = DWord($00008000);
  525. SHCNE_DRIVEADDGUI = DWord($00010000);
  526. SHCNE_RENAMEFOLDER = DWord($00020000);
  527. SHCNE_FREESPACE = DWord($00040000);
  528. SHCNE_EXTENDED_EVENT = DWord($04000000);
  529. SHCNE_ASSOCCHANGED = DWord($08000000);
  530. SHCNE_DISKEVENTS = DWord($0002381F);
  531. SHCNE_GLOBALEVENTS = DWord($0C0581E0); // Events that dont match pidls first
  532. SHCNE_ALLEVENTS = DWord($7FFFFFFF);
  533. SHCNE_INTERRUPT = DWord($80000000); // The presence of this flag indicates
  534. SHCNF_IDLIST = $0000; // LPITEMIDLIST
  535. SHCNF_PATHA = $0001; // path name
  536. SHCNF_PRINTERA = $0002; // printer friendly name
  537. SHCNF_DWORD = $0003; // DWORD
  538. SHCNF_PATHW = $0005; // path name
  539. SHCNF_PRINTERW = $0006; // printer friendly name
  540. SHCNF_TYPE = $00FF;
  541. SHCNF_FLUSH = $1000;
  542. SHCNF_FLUSHNOWAIT = $2000;
  543. QITIPF_DEFAULT = $00000000;
  544. QITIPF_USENAME = $00000001;
  545. QITIPF_LINKNOTARGET = $00000002;
  546. QITIPF_LINKUSETARGET = $00000004;
  547. QITIPF_USESLOWTIP = $00000008; // Flag says it's OK to take a long time generating tip
  548. QIF_CACHED = $00000001;
  549. QIF_DONTEXPANDFOLDER= $00000002;
  550. SHARD_PIDL = DWord($00000001);
  551. SHARD_PATHA = DWord($00000002);
  552. SHARD_PATHW = DWord($00000003);
  553. SHARD_APPIDINFO = DWord($00000004);
  554. SHARD_APPIDINFOIDLIST = DWord($00000005);
  555. SHARD_LINK = DWord($00000006);
  556. SHARD_APPIDINFOLINK = DWord($00000007);
  557. SHARD_SHELLITEM = DWord($00000008);
  558. PRF_VERIFYEXISTS = $0001;
  559. PRF_TRYPROGRAMEXTENSIONS = ($0002 or PRF_VERIFYEXISTS);
  560. PRF_FIRSTDIRDEF = $0004;
  561. PRF_DONTFINDLNK = $0008; // if PRF_TRYPROGRAMEXTENSIONS is specified
  562. PCS_FATAL = $80000000;
  563. PCS_REPLACEDCHAR = $00000001;
  564. PCS_REMOVEDCHAR = $00000002;
  565. PCS_TRUNCATED = $00000004;
  566. PCS_PATHTOOLONG = $00000008; // Always combined with FATA);
  567. MM_ADDSEPARATOR = dword($00000001);
  568. MM_SUBMENUSHAVEIDS = dword($00000002);
  569. MM_DONTREMOVESEPS = dword($00000004);
  570. SHOP_PRINTERNAME = $00000001; // lpObject points to a printer friendly name
  571. SHOP_FILEPATH = $00000002; // lpObject points to a fully qualified path+file name
  572. SHOP_VOLUMEGUID = $00000004; // lpObject points to a Volume GUID
  573. SHFMT_ID_DEFAULT = $FFFF;
  574. SHFMT_OPT_FULL = $0001;
  575. SHFMT_OPT_SYSONLY = $0002;
  576. SHFMT_ERROR = dword($FFFFFFFF); // Error on last format, drive may be formatable
  577. SHFMT_CANCEL = dword($FFFFFFFE); // Last format was canceled
  578. SHFMT_NOFORMAT = dword($FFFFFFFD); // Drive is not formatable
  579. PPCF_ADDQUOTES = $00000001; // return a quoted name if required
  580. PPCF_ADDARGUMENTS = $00000003; // appends arguments (and wraps in quotes if required)
  581. PPCF_NODIRECTORIES = $00000010; // don't match to directories
  582. PPCF_FORCEQUALIFY = $00000040; // qualify even non-relative names
  583. PPCF_LONGESTPOSSIBLE = $00000080; // always find the longest possible name
  584. VALIDATEUNC_NOUI = $0002; // don't bring up UI
  585. VALIDATEUNC_CONNECT = $0001; // connect a drive letter
  586. VALIDATEUNC_PRINT = $0004; // validate as print share instead of disk share
  587. VALIDATEUNC_VALID = $0007; // valid flags
  588. OPENPROPS_NONE = $0000;
  589. OPENPROPS_INHIBITPIF = $8000;
  590. GETPROPS_NONE = $0000;
  591. SETPROPS_NONE = $0000;
  592. CLOSEPROPS_NONE = $0000;
  593. CLOSEPROPS_DISCARD = $0001;
  594. TBIF_DEFAULT = $00000000;
  595. TBIF_INTERNETBAR = $00010000;
  596. TBIF_STANDARDTOOLBAR = $00020000;
  597. TBIF_NOTOOLBAR = $00030000;
  598. SFVM_REARRANGE = $00000001;
  599. SFVM_ADDOBJECT = $00000003;
  600. SFVM_REMOVEOBJECT = $00000006;
  601. SFVM_UPDATEOBJECT = $00000007;
  602. SFVM_GETSELECTEDOBJECTS = $00000009;
  603. SFVM_SETITEMPOS = $0000000e;
  604. SFVM_SETCLIPBOARD = $00000010;
  605. SFVM_SETPOINTS = $00000017;
  606. PIDISF_RECENTLYCHANGED = $00000001;
  607. PIDISF_CACHEDSTICKY = $00000002;
  608. PIDISF_CACHEIMAGES = $00000010;
  609. PIDISF_FOLLOWALLLINKS = $00000020;
  610. SSF_SHOWALLOBJECTS = $00000001;
  611. SSF_SHOWEXTENSIONS = $00000002;
  612. SSF_HIDDENFILEEXTS = $00000004;
  613. SSF_SERVERADMINUI = $00000004;
  614. SSF_SHOWCOMPCOLOR = $00000008;
  615. SSF_SORTCOLUMNS = $00000010;
  616. SSF_SHOWSYSFILES = $00000020;
  617. SSF_DOUBLECLICKINWEBVIEW = $00000080;
  618. SSF_SHOWATTRIBCOL = $00000100;
  619. SSF_DESKTOPHTML = $00000200;
  620. SSF_WIN95CLASSIC = $00000400;
  621. SSF_DONTPRETTYPATH = $00000800;
  622. SSF_SHOWINFOTIP = $00002000;
  623. SSF_MAPNETDRVBUTTON = $00001000;
  624. SSF_NOCONFIRMRECYCLE = $00008000;
  625. SSF_HIDEICONS = $00004000;
  626. SSF_FILTER = $00010000;
  627. SSF_WEBVIEW = $00020000;
  628. SSF_SHOWSUPERHIDDEN = $00040000;
  629. SSF_SEPPROCESS = $00080000;
  630. SSF_NONETCRAWLING = $00100000;
  631. SSF_STARTPANELON = $00200000;
  632. SSF_SHOWSTARTPAGE = $00400000;
  633. SHPPFW_NONE = $00000000;
  634. SHPPFW_DIRCREATE = $00000001; // Create the directory if it doesn't exist without asking the user.
  635. SHPPFW_ASKDIRCREATE = $00000002; // Create the directory if it doesn't exist after asking the user.
  636. SHPPFW_IGNOREFILENAME = $00000004; // Ignore the last item in pszPath because it's a file. Example: pszPath="C:\DirA\DirB", only use "C:\DirA".
  637. SHPPFW_NOWRITECHECK = $00000008; // Caller only needs to read from the drive, so don't check if it's READ ONLY.
  638. SHPPFW_MEDIACHECKONLY = $00000010; // do the retrys on the media (or net path), return errors if the file can't be found
  639. PUIFNF_DEFAULT = $00000000;
  640. PUIFNF_MNEMONIC = $00000001; // include mnemonic in display name
  641. PUIF_DEFAULT = $00000000;
  642. PUIF_RIGHTALIGN = $00000001; // this property should be right alligned
  643. PUIF_NOLABELININFOTIP = $00000002; // this property should not display a label in the infotip
  644. PUIFFDF_DEFAULT = $00000000;
  645. PUIFFDF_RIGHTTOLEFT = $00000001; // BIDI support, right to left caller
  646. PUIFFDF_SHORTFORMAT = $00000002; // short format version of string
  647. PUIFFDF_NOTIME = $00000004; // truncate time to days, not hours/mins/sec
  648. PUIFFDF_FRIENDLYDATE = $00000008; // "Today", "Yesterday", etc
  649. PUIFFDF_NOUNITS = $00000010; // don't do "KB", "MB", "KHz"
  650. CATINFO_NORMAL = $00000000; // Apply default properties to this category
  651. CATINFO_COLLAPSED = $00000001; // This category should appear collapsed. useful for the "None" category.
  652. CATINFO_HIDDEN = $00000002; // This category should follow the "Hidden" files setting for being displayed
  653. CATSORT_DEFAULT = $00000000; // Default Sort order
  654. CATSORT_NAME = $00000001; // Sort by name
  655. SLR_NO_UI = $0001; // don't post any UI durring the resolve operation, not msgs are pumped
  656. SLR_ANY_MATCH = $0002; // no longer used
  657. SLR_UPDATE = $0004; // save the link back to it's file if the track made it dirty
  658. SLR_NOUPDATE = $0008;
  659. SLR_NOSEARCH = $0010; // don't execute the search heuristics
  660. SLR_NOTRACK = $0020; // don't use NT5 object ID to track the link
  661. SLR_NOLINKINFO = $0040; // don't use the net and volume relative info
  662. SLR_INVOKE_MSI = $0080; // if we have a darwin link, then call msi to fault in the applicaion
  663. SLR_NO_UI_WITH_MSG_PUMP = $0101; // SLR_NO_UI + requires an enable modeless site or HWND
  664. SLGP_SHORTPATH = $0001;
  665. SLGP_UNCPRIORITY = $0002;
  666. SLGP_RAWPATH = $0004;
  667. SPINITF_NORMAL = $00000000; // default normal progress behavior
  668. SPINITF_MODAL = $00000001; // call punkSite->EnableModeless() or EnableWindow()
  669. SPINITF_NOMINIMIZE = $00000008; // Do not have a minimize button in the caption bar.
  670. ARCONTENT_AUTORUNINF = $00000002; // That's the one we have today, and always had
  671. ARCONTENT_AUDIOCD = $00000004; // Audio CD (not MP3 and the like, the stuff you buy at the store)
  672. ARCONTENT_DVDMOVIE = $00000008; // DVD Movie (not MPEGs, the stuff you buy at the store)
  673. ARCONTENT_BLANKCD = $00000010; // Blank CD-R/CD-RW
  674. ARCONTENT_BLANKDVD = $00000020; // Blank DVD-R/DVD-RW
  675. ARCONTENT_UNKNOWNCONTENT= $00000040; // Whatever files. Mean that it's formatted.
  676. ARCONTENT_AUTOPLAYPIX = $00000080; // Whatever files. Mean that it's formatted.
  677. ARCONTENT_AUTOPLAYMUSIC = $00000100; // Whatever files. Mean that it's formatted.
  678. ARCONTENT_AUTOPLAYVIDEO = $00000200; // Whatever files. Mean that it's formatted.
  679. SPBEGINF_NORMAL = $00000000; // default normal progress behavior
  680. SPBEGINF_AUTOTIME = $00000002; // automatically updates the "time remaining" text
  681. SPBEGINF_NOPROGRESSBAR = $00000010; // Don't display the progress bar (SetProgress() wont be called)
  682. SPBEGINF_MARQUEEPROGRESS= $00000020; // use marquee progress (comctl32 v6 required)
  683. EXPPS_FILETYPES = $00000001;
  684. IEI_PRIORITY_MAX = ITSAT_MAX_PRIORITY;
  685. IEI_PRIORITY_MIN = ITSAT_MIN_PRIORITY;
  686. IEIT_PRIORITY_NORMAL = ITSAT_DEFAULT_PRIORITY;
  687. IEIFLAG_ASYNC = $0001; // ask the extractor if it supports ASYNC extract (free threaded)
  688. IEIFLAG_CACHE = $0002; // returned from the extractor if it does NOT cache the thumbnail
  689. IEIFLAG_ASPECT = $0004; // passed to the extractor to beg it to render to the aspect ratio of the supplied rect
  690. IEIFLAG_OFFLINE = $0008; // if the extractor shouldn't hit the net to get any content neede for the rendering
  691. IEIFLAG_GLEAM = $0010; // does the image have a gleam ? this will be returned if it does
  692. IEIFLAG_SCREEN = $0020; // render as if for the screen (this is exlusive with IEIFLAG_ASPECT )
  693. IEIFLAG_ORIGSIZE = $0040; // render to the approx size passed, but crop if neccessary
  694. IEIFLAG_NOSTAMP = $0080; // returned from the extractor if it does NOT want an icon stamp on the thumbnail
  695. IEIFLAG_NOBORDER = $0100; // returned from the extractor if it does NOT want an a border around the thumbnail
  696. IEIFLAG_QUALITY = $0200; // passed to the Extract method to indicate that a slower, higher quality image is desired, re-compute the thumbnail
  697. IEIFLAG_REFRESH = $0400; // returned from the extractor if it would like to have Refresh Thumbnail available
  698. DBIM_MINSIZE = $0001;
  699. DBIM_MAXSIZE = $0002;
  700. DBIM_INTEGRAL = $0004;
  701. DBIM_ACTUAL = $0008;
  702. DBIM_TITLE = $0010;
  703. DBIM_MODEFLAGS = $0020;
  704. DBIM_BKCOLOR = $0040;
  705. DBIMF_NORMAL = $0000;
  706. DBIMF_FIXED = $0001;
  707. DBIMF_FIXEDBMP = $0004; // a fixed background bitmap (if supported)
  708. DBIMF_VARIABLEHEIGHT = $0008;
  709. DBIMF_UNDELETEABLE = $0010;
  710. DBIMF_DEBOSSED = $0020;
  711. DBIMF_BKCOLOR = $0040;
  712. DBIMF_USECHEVRON = $0080;
  713. DBIMF_BREAK = $0100;
  714. DBIMF_ADDTOFRONT = $0200;
  715. DBIMF_TOPALIGN = $0400;
  716. DBIF_VIEWMODE_NORMAL = $0000;
  717. DBIF_VIEWMODE_VERTICAL = $0001;
  718. DBIF_VIEWMODE_FLOATING = $0002;
  719. DBIF_VIEWMODE_TRANSPARENT = $0004;
  720. DBID_BANDINFOCHANGED = 0;
  721. DBID_SHOWONLY = 1;
  722. DBID_MAXIMIZEBAND = 2; // Maximize the specified band (VT_UI4 == dwID)
  723. DBID_PUSHCHEVRON = 3;
  724. DBID_DELAYINIT = 4; // Note: _bandsite_ calls _band_ with this code
  725. DBID_FINISHINIT = 5; // Note: _bandsite_ calls _band_ with this code
  726. DBID_SETWINDOWTHEME = 6; // Note: _bandsite_ calls _band_ with this code
  727. DBID_PERMITAUTOHIDE = 7;
  728. IDD_WIZEXTN_FIRST = $5000;
  729. IDD_WIZEXTN_LAST = $5100;
  730. SHPWHF_NORECOMPRESS = $00000001; // don't allow/prompt for recompress of streams
  731. SHPWHF_NONETPLACECREATE = $00000002; // don't create a network place when transfer is complete
  732. SHPWHF_NOFILESELECTOR = $00000004; // don't show the file selector
  733. SHPWHF_VALIDATEVIAWEBFOLDERS = $00010000; // enable web folders to validate network places (ANP support)
  734. CDBE_RET_DEFAULT = $00000000;
  735. CDBE_RET_DONTRUNOTHEREXTS = $00000001;
  736. CDBE_RET_STOPWIZARD = $00000002;
  737. CDBE_TYPE_MUSIC = $00000001;
  738. CDBE_TYPE_DATA = $00000002;
  739. CDBE_TYPE_ALL = $FFFFFFFF;
  740. BSIM_STATE = $00000001;
  741. BSIM_STYLE = $00000002;
  742. BSSF_VISIBLE = $00000001;
  743. BSSF_NOTITLE = $00000002;
  744. BSSF_UNDELETEABLE = $00001000;
  745. BSIS_AUTOGRIPPER = $00000000;
  746. BSIS_NOGRIPPER = $00000001;
  747. BSIS_ALWAYSGRIPPER = $00000002;
  748. BSIS_LEFTALIGN = $00000004;
  749. BSIS_SINGLECLICK = $00000008;
  750. BSIS_NOCONTEXTMENU = $00000010;
  751. BSIS_NODROPTARGET = $00000020;
  752. BSIS_NOCAPTION = $00000040;
  753. BSIS_PREFERNOLINEBREAK = $00000080;
  754. BSIS_LOCKED = $00000100;
  755. NSWF_NONE_IMPLIES_ALL = $00000001;
  756. NSWF_ONE_IMPLIES_ALL = $00000002;
  757. NSWF_DONT_TRAVERSE_LINKS= $00000004;
  758. NSWF_DONT_ACCUMULATE_RESULT = $00000008;
  759. NSWF_TRAVERSE_STREAM_JUNCTIONS = $00000010;
  760. NSWF_FILESYSTEM_ONLY = $00000020;
  761. NSWF_SHOW_PROGRESS = $00000040;
  762. NSWF_FLAG_VIEWORDER = $00000080;
  763. NSWF_IGNORE_AUTOPLAY_HIDA = $00000100;
  764. MPPF_SETFOCUS = $00000001; // Menu can take the focus
  765. MPPF_INITIALSELECT = $00000002; // Select the first item
  766. MPPF_NOANIMATE = $00000004; // Do not animate this show
  767. MPPF_KEYBOARD = $00000010; // The menu is activated by keyboard
  768. MPPF_REPOSITION = $00000020; // Resposition the displayed bar.
  769. MPPF_FORCEZORDER = $00000040; // internal: Tells menubar to ignore Submenu positions
  770. MPPF_FINALSELECT = $00000080; // Select the last item
  771. MPPF_TOP = $20000000; // Popup menu up from point
  772. MPPF_LEFT = $40000000; // Popup menu left from point
  773. MPPF_RIGHT = $60000000; // Popup menu right from point
  774. MPPF_BOTTOM = $80000000; // Popup menu below point
  775. MPPF_POS_MASK = $E0000000; // Menu Position Mask
  776. SIGDN_NORMALDISPLAY = $00000000;
  777. SIGDN_PARENTRELATIVEPARSING = $80018001;
  778. SIGDN_PARENTRELATIVEFORADDRESSBAR = $8001c001;
  779. SIGDN_DESKTOPABSOLUTEPARSING = $80028000;
  780. SIGDN_PARENTRELATIVEEDITING = $80031001;
  781. SIGDN_DESKTOPABSOLUTEEDITING = $8004c000;
  782. SIGDN_FILESYSPATH = $80058000;
  783. SIGDN_URL = $80068000;
  784. SICHINT_DISPLAY = $00000000;
  785. SICHINT_ALLFIELDS = $80000000;
  786. SICHINT_CANONICAL = $10000000;
  787. BFO_NONE = $00000000; // Do nothing.
  788. BFO_BROWSER_PERSIST_SETTINGS = $00000001; // Does this item want the browser stream? (Same window position as IE browser windows?)
  789. BFO_RENAME_FOLDER_OPTIONS_TOINTERNET= $00000002; // Rename "Folder Options" to "Internet Options" in the Tools or View menu?
  790. BFO_BOTH_OPTIONS = $00000004; // Keep both "Folder Options" and "Internet Options" in the Tools or View menu?
  791. BIF_PREFER_INTERNET_SHORTCUT = $00000008; // NSE would prefer a .url shortcut over a .lnk shortcut
  792. BFO_BROWSE_NO_IN_NEW_PROCESS = $00000010; // Specify this flag if you don't want the "Browse in New Process" via invoking a shortcut.
  793. BFO_ENABLE_HYPERLINK_TRACKING = $00000020; // Does this NSE want it's display name tracked to determine when hyperlinks should be tagged as previously used?
  794. BFO_USE_IE_OFFLINE_SUPPORT = $00000040; // Use "Internet Explorer"'s offline support?
  795. BFO_SUBSTITUE_INTERNET_START_PAGE = $00000080; // Does this NSE want to use the Start Page support?
  796. BFO_USE_IE_LOGOBANDING = $00000100; // Use the Brand block in the Toolbar. (Spinning globe or whatever it is this year)
  797. BFO_ADD_IE_TOCAPTIONBAR = $00000200; // Should " - Internet Explorer" be appended to display name in the Captionbar
  798. 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.
  799. BFO_USE_IE_TOOLBAR = $00000800; // Should the IE toolbar be used?
  800. 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.
  801. 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?
  802. BFO_GO_HOME_PAGE = $00004000; // Add "Home Page" to menu (Go).
  803. BFO_PREFER_IEPROCESS = $00008000; // prefers to use IEXPLORE.EXE over EXPLORER.EXE
  804. BFO_SHOW_NAVIGATION_CANCELLED = $00010000; // If navigation is aborted, show the "Action Cancelled" HTML page.
  805. BFO_USE_IE_STATUSBAR = $00020000; // Use the persisted IE status bar settings
  806. BFO_QUERY_ALL = $FFFFFFFF; // Return all values set.
  807. NWMF_UNLOADING = $0001; // The query is occuring during onBeforeUnload or onUnload
  808. NWMF_USERINITED = $0002; // The query is occuring in the context of what trident considers to be a user initiated action
  809. NWMF_FIRST = $0004; // This is the first query since the begining of the last user initiated action
  810. NWMF_OVERRIDEKEY = $0008; // The override key was pressed at the time the query was made
  811. NWMF_SHOWHELP = $0010; // New window is an HTML help window
  812. NWMF_HTMLDIALOG = $0020; // New window is an HTML dialog
  813. NWMF_FROMDIALOGCHILD = $0040; // Called from an HTML dialog - do not show UI in parent window
  814. NWMF_USERREQUESTED = $0080; // There is no doubt the user requested this window (from RClick->Open in New Window, or Shift+Clicked a link)
  815. NWMF_USERALLOWED = $0100; // This popup is the result of the user requesting a replay that resulted in a refresh
  816. SMDM_SHELLFOLDER = $00000001; // This is for an item in the band
  817. SMDM_HMENU = $00000002; // This is for the Band itself
  818. SMDM_TOOLBAR = $00000004; // Plain toolbar, not associated with a shell folder or hmenu
  819. SMIM_TYPE = $00000001;
  820. SMIM_FLAGS = $00000002;
  821. SMIM_ICON = $00000004;
  822. SMIT_SEPARATOR = $00000001;
  823. SMIT_STRING = $00000002;
  824. SMIF_ICON = $00000001; // Show an icon
  825. SMIF_ACCELERATOR = $00000002; // Underline the character marked w/ '&'
  826. SMIF_DROPTARGET = $00000004; // Item is a drop target
  827. SMIF_SUBMENU = $00000008; // Item has a submenu
  828. SMIF_CHECKED = $00000020; // Item has a Checkmark
  829. SMIF_DROPCASCADE = $00000040; // Item can cascade out during drag/drop
  830. SMIF_HIDDEN = $00000080; // Don't display item
  831. SMIF_DISABLED = $00000100; // Should be unselectable. Gray.
  832. SMIF_TRACKPOPUP = $00000200; // Should be unselectable. Gray.
  833. SMIF_DEMOTED = $00000400; // Display item in "Demoted" state.
  834. SMIF_ALTSTATE = $00000800; // Displayed in "Altered State"
  835. SMIF_DRAGNDROP = $00001000; // If item that is being dragged hovers over an item for long enough then it SMC_EXECs that item
  836. SMIF_NEW = $00002000; // Item is newly-installed or otherwise attractive (XP)
  837. SMC_INITMENU = $00000001; // The callback is called to init a menuband
  838. SMC_CREATE = $00000002;
  839. SMC_EXITMENU = $00000003; // The callback is called when menu is collapsing
  840. SMC_GETINFO = $00000005; // The callback is called to return DWORD values
  841. SMC_GETSFINFO = $00000006; // The callback is called to return DWORD values
  842. SMC_GETOBJECT = $00000007; // The callback is called to get some object
  843. SMC_GETSFOBJECT = $00000008; // The callback is called to get some object
  844. SMC_SFEXEC = $00000009; // The callback is called to execute an shell folder item
  845. SMC_SFSELECTITEM = $0000000A; // The callback is called when an item is selected
  846. SMC_REFRESH = $00000010; // Menus have completely refreshed. Reset your state.
  847. SMC_DEMOTE = $00000011; // Demote an item
  848. SMC_PROMOTE = $00000012; // Promote an item, wParam = SMINV_* flag
  849. SMC_DEFAULTICON = $00000016; // Returns Default icon location in wParam, index in lParam
  850. SMC_NEWITEM = $00000017; // Notifies item is not in the order stream.
  851. SMC_CHEVRONEXPAND = $00000019; // Notifies of a expansion via the chevron
  852. SMC_DISPLAYCHEVRONTIP = $0000002A; // S_OK display, S_FALSE not.
  853. SMC_SETSFOBJECT = $0000002D; // Called to save the passed object
  854. SMC_SHCHANGENOTIFY = $0000002E; // Called when a Change notify is received. lParam points to SMCSHCHANGENOTIFYSTRUCT
  855. SMC_CHEVRONGETTIP = $0000002F; // Called to get the chevron tip text. wParam = Tip title, Lparam = TipText Both MAX_PATH
  856. SMC_SFDDRESTRICTED = $00000030; // Called requesting if it's ok to drop. wParam = IDropTarget.
  857. ATTACHMENT_PROMPT_NONE = $0000;
  858. ATTACHMENT_PROMPT_SAVE = $0001;
  859. ATTACHMENT_PROMPT_EXEC = $0002;
  860. ATTACHMENT_PROMPT_EXEC_OR_SAVE = $0003;
  861. ATTACHMENT_ACTION_CANCEL= $0000;
  862. ATTACHMENT_ACTION_SAVE = $0001;
  863. ATTACHMENT_ACTION_EXEC = $0002;
  864. SMINIT_DEFAULT = $00000000; // No Options
  865. SMINIT_RESTRICT_DRAGDROP= $00000002; // Don't allow Drag and Drop
  866. SMINIT_TOPLEVEL = $00000004; // This is the top band.
  867. SMINIT_CACHED = $00000010;
  868. SMINIT_VERTICAL = $10000000; // This is a vertical menu
  869. SMINIT_HORIZONTAL = $20000000; // This is a horizontal menu (does not inherit)
  870. ANCESTORDEFAULT = dword(-1);
  871. SMSET_TOP = $10000000; // Bias this namespace to the top of the menu
  872. SMSET_BOTTOM = $20000000; // Bias this namespace to the bottom of the menu
  873. SMSET_DONTOWN = $00000001; // The Menuband doesn't own the non-ref counted object
  874. SMINV_REFRESH = $00000001;
  875. SMINV_ID = $00000008;
  876. FDEOR_DEFAULT = 0;
  877. FDEOR_ACCEPT = 1;
  878. FDEOR_REFUSE = 2;
  879. FDESVR_DEFAULT = 0;
  880. FDESVR_ACCEPT = 1;
  881. FDESVR_REFUSE = 2;
  882. FDAP_BOTTOM = 0;
  883. FDAP_TOP = 1;
  884. FOS_OVERWRITEPROMPT = $2;
  885. FOS_STRICTFILETYPES = $4;
  886. FOS_NOCHANGEDIR = $8;
  887. FOS_PICKFOLDERS = $20;
  888. FOS_FORCEFILESYSTEM = $40;
  889. FOS_ALLNONSTORAGEITEMS = $80;
  890. FOS_NOVALIDATE = $100;
  891. FOS_ALLOWMULTISELECT = $200;
  892. FOS_PATHMUSTEXIST = $800;
  893. FOS_FILEMUSTEXIST = $1000;
  894. FOS_CREATEPROMPT = $2000;
  895. FOS_SHAREAWARE = $4000;
  896. FOS_NOREADONLYRETURN = $8000;
  897. FOS_NOTESTFILECREATE = $10000;
  898. FOS_HIDEMRUPLACES = $20000;
  899. FOS_HIDEPINNEDPLACES = $40000;
  900. FOS_NODEREFERENCELINKS = $100000;
  901. FOS_DONTADDTORECENT = $2000000;
  902. FOS_FORCESHOWHIDDEN = $10000000;
  903. FOS_DEFAULTNOMINIMODE = $20000000;
  904. FOS_FORCEPREVIEWPANEON = $40000000;
  905. SHGFP_TYPE_CURRENT = 0; // shgetfolderpath, current value for user, verify it exists
  906. SHGFP_TYPE_DEFAULT = 1; // shgetfolderpath, default value, may not exist
  907. SHGDN_NORMAL = $0000;
  908. SHGDN_INFOLDER = $0001;
  909. SHGDN_FOREDITING = $1000;
  910. SHGDN_FORADDRESSBAR = $4000;
  911. SHGDN_FORPARSING = $8000;
  912. SHCONTF_CHECKING_FOR_CHILDREN = $00010;
  913. SHCONTF_FOLDERS = $00020;
  914. SHCONTF_NONFOLDERS = $00040;
  915. SHCONTF_INCLUDEHIDDEN = $00080;
  916. SHCONTF_INIT_ON_FIRST_NEXT = $00100;
  917. SHCONTF_NETPRINTERSRCH = $00200;
  918. SHCONTF_SHAREABLE = $00400;
  919. SHCONTF_STORAGE = $00800;
  920. SHCONTF_NAVIGATION_ENUM = $01000;
  921. SHCONTF_FASTITEMS = $02000;
  922. SHCONTF_FLATLIST = $04000;
  923. SHCONTF_ENABLE_ASYNC = $08000;
  924. SHCONTF_INCLUDESUPERHIDDEN = $10000;
  925. SFGAO_CANCOPY = $00000001;
  926. SFGAO_CANMOVE = $00000002;
  927. SFGAO_CANLINK = $00000004;
  928. SFGAO_STORAGE = $00000008;
  929. SFGAO_CANRENAME = $00000010;
  930. SFGAO_CANDELETE = $00000020;
  931. SFGAO_HASPROPSHEET = $00000040;
  932. SFGAO_DROPTARGET = $00000100;
  933. SFGAO_CAPABILITYMASK = $00000177;
  934. SFGAO_SYSTEM = $00001000;
  935. SFGAO_ENCRYPTED = $00002000;
  936. SFGAO_ISSLOW = $00004000;
  937. SFGAO_GHOSTED = $00008000;
  938. SFGAO_LINK = $00010000;
  939. SFGAO_SHARE = $00020000;
  940. SFGAO_READONLY = $00040000;
  941. SFGAO_HIDDEN = $00080000;
  942. SFGAO_DISPLAYATTRMASK = $000FC000;
  943. SFGAO_NONENUMERATED = $00100000;
  944. SFGAO_NEWCONTENT = $00200000;
  945. SFGAO_STREAM = $00400000;
  946. SFGAO_STORAGEANCESTOR = $00800000;
  947. SFGAO_VALIDATE = $01000000;
  948. SFGAO_REMOVABLE = $02000000;
  949. SFGAO_COMPRESSED = $04000000;
  950. SFGAO_BROWSABLE = $08000000;
  951. SFGAO_FILESYSANCESTOR = $10000000;
  952. SFGAO_FOLDER = $20000000;
  953. SFGAO_FILESYSTEM = $40000000;
  954. SFGAO_STORAGECAPMASK = $70C50008;
  955. SFGAO_HASSUBFOLDER = $80000000;
  956. SFGAO_CONTENTSMASK = $80000000;
  957. SFGAO_PKEYSFGAOMASK = $81044000;
  958. Type
  959. SFGAOF = ULONG;
  960. TSFGAOF = SFGAOF;
  961. PSFGAOF = ^SFGAOF;
  962. SHCONTF = longint;
  963. TSHCONTF = SHCONTF;
  964. PSHCONTF = ^SHCONTF;
  965. SIGDN = longint;
  966. TSIGDN = SIGDN;
  967. PSIGDN = ^SIGDN;
  968. SICHINTF = longint;
  969. TSICHINTF = SICHINTF;
  970. PSICHINTF = ^SICHINTF;
  971. PROPERTYUI_NAME_FLAGS = DWord; // enum
  972. PROPERTYUI_FORMAT_FLAGS = DWord;
  973. PROPERTYUI_FLAGS = Dword;
  974. CATSORT_FLAGS = DWORD;
  975. CATEGORYINFO_FLAGS = DWord;
  976. PPROPERTYUI_NAME_FLAGS = ^PROPERTYUI_NAME_FLAGS;
  977. PPROPERTYUI_FORMAT_FLAGS = ^PROPERTYUI_FORMAT_FLAGS;
  978. PPROPERTYUI_FLAGS = ^PROPERTYUI_FLAGS;
  979. PCATSORT_FLAGS = ^CATSORT_FLAGS;
  980. PCATEGORYINFO_FLAGS = ^CATEGORYINFO_FLAGS;
  981. RESTRICTIONS = DWORD;
  982. TRESTRICTIONS = RESTRICTIONS;
  983. PRESTRICTIONS = ^RESTRICTIONS;
  984. FOLDERVIEWMODE = DWORD;
  985. SHColumnID = packed record
  986. fmtid : TGUID;
  987. pid : DWORD;
  988. end;
  989. CATEGORY_INFO = record
  990. cif : CATEGORYINFO_FLAGS;
  991. wsname: array[0..259] of wchar;
  992. end;
  993. TCATEGORY_INFO = CATEGORY_INFO;
  994. PCATEGORY_INFO = ^CATEGORY_INFO;
  995. LPSHColumnID = SHColumnID;
  996. TSHColumnid = SHColumnID;
  997. pSHColumnID = LPSHColumnID;
  998. IShellView = Interface;
  999. IShellFolder = Interface;
  1000. IShellBrowser = Interface;
  1001. LPFNVIEWCALLBACK = function (psvouter:IShellView;psf : IShellFolder;hwndMain:HWND ;uMSG:UINT;wParam:WPARAM;lParam:LPARAM) :HRESULT; StdCall;
  1002. LPFNDFMCALLBACK = function (psf:IShellFolder; HWND: hwnd;pdtobj:IDataObject;uMsg:UINT;WPARAM:wParam; LPARAM: lParam) :HRESULT; StdCall;
  1003. IShellFolderViewCB = Interface(IUnknown)
  1004. ['{2047E320-F2A9-11CE-AE65-08002B2E1262}']
  1005. function MessageSFVCB (uMSG: UINT;wparam:WPARAM;LPARAM:lParam):HResult; stdcall;
  1006. end;
  1007. LPTBBUTTONSB = LPTBBUTTON;
  1008. SVSIF = UINT;
  1009. TSVSIF = SVSIF;
  1010. SHELLVIEWID = TGUID;
  1011. TSHELLVIEWID = TGUID;
  1012. PSHELLVIEWID = ^TGUID;
  1013. LPVIEWSETTINGS = Pchar;
  1014. _CMInvokeCommandInfoEx = record
  1015. cbSize : DWORD; { must be sizeof(CMINVOKECOMMANDINFOEX) }
  1016. fMask : DWORD; { any combination of CMIC_MASK_* }
  1017. hwnd : HWND; { might be NULL (indicating no owner window) }
  1018. lpVerb : LPCSTR; { either a string or MAKEINTRESOURCE(idOffset) }
  1019. lpParameters : LPCSTR; { might be NULL (indicating no parameter) }
  1020. lpDirectory : LPCSTR; { might be NULL (indicating no specific directory) }
  1021. nShow : longint; { one of SW_ values for ShowWindow() API }
  1022. dwHotKey : DWORD;
  1023. hIcon : HANDLE;
  1024. lpTitle : LPCSTR; { For CreateProcess-StartupInfo.lpTitle }
  1025. lpVerbW : LPCWSTR; { Unicode verb (for those who can use it) }
  1026. lpParametersW : LPCWSTR; { Unicode parameters (for those who can use it) }
  1027. lpDirectoryW : LPCWSTR; { Unicode directory (for those who can use it) }
  1028. lpTitleW : LPCWSTR; { Unicode title (for those who can use it) }
  1029. ptInvoke : POINT; { Point where it's invoked }
  1030. end;
  1031. TCMINVOKECOMMANDINFOEX = _CMInvokeCommandInfoEx;
  1032. PCMINVOKECOMMANDINFOEX = ^TCMINVOKECOMMANDINFOEX;
  1033. LPCMINVOKECOMMANDINFOEX = PCMInvokeCommandInfoEx;
  1034. PLPCMINVOKECOMMANDINFOEX = ^LPCMINVOKECOMMANDINFOEX;
  1035. PPERSIST_FOLDER_TARGET_INFO = ^PERSIST_FOLDER_TARGET_INFO;
  1036. PERSIST_FOLDER_TARGET_INFO = record
  1037. pidlTargetFolder : LPITEMIDLIST; { pidl for the folder we want to intiailize }
  1038. szTargetParsingName : array[0..(MAX_PATH)-1] of WCHAR; { optional parsing name for the target }
  1039. szNetworkProvider : array[0..(MAX_PATH)-1] of WCHAR; { optional network provider }
  1040. dwAttributes : DWORD; { optional FILE_ATTRIBUTES_ flags (-1 if not used) }
  1041. csidl : longint; { optional folder index (SHGetFolderPath()) -1 if not used }
  1042. end;
  1043. TPERSIST_FOLDER_TARGET_INFO = PERSIST_FOLDER_TARGET_INFO;
  1044. DATABLOCK_HEADER = record
  1045. cbSize : DWORD; { Size of this extra data block }
  1046. dwSignature : DWORD; { signature of this extra data block }
  1047. end;
  1048. TDATABLOCKHEADER = DATABLOCK_HEADER;
  1049. TDATABLOCK_HEADER = DATABLOCK_HEADER;
  1050. PDATABLOCK_HEADER = ^TDATABLOCK_HEADER;
  1051. PDATABLOCKHEADER = ^TDATABLOCKHEADER;
  1052. LPDATABLOCK_HEADER = PDATABLOCK_HEADER;
  1053. PLPDATABLOCK_HEADER = ^LPDATABLOCK_HEADER;
  1054. LPDBLIST = PDATABLOCK_HEADER;
  1055. PLPDBLIST = ^LPDBLIST;
  1056. PNT_CONSOLE_PROPS = ^NT_CONSOLE_PROPS;
  1057. NT_CONSOLE_PROPS = record
  1058. dbh : DATABLOCK_HEADER;
  1059. wFillAttribute : WORD; { fill attribute for console }
  1060. wPopupFillAttribute : WORD; { fill attribute for console popups }
  1061. dwScreenBufferSize : COORD; { screen buffer size for console }
  1062. dwWindowSize : COORD; { window size for console }
  1063. dwWindowOrigin : COORD; { window origin for console }
  1064. nFont : DWORD;
  1065. nInputBufferSize : DWORD;
  1066. dwFontSize : COORD;
  1067. uFontFamily : UINT;
  1068. uFontWeight : UINT;
  1069. FaceName : array[0..(LF_FACESIZE)-1] of WCHAR;
  1070. uCursorSize : UINT;
  1071. bFullScreen : BOOL;
  1072. bQuickEdit : BOOL;
  1073. bInsertMode : BOOL;
  1074. bAutoPosition : BOOL;
  1075. uHistoryBufferSize : UINT;
  1076. uNumberOfHistoryBuffers : UINT;
  1077. bHistoryNoDup : BOOL;
  1078. ColorTable : array[0..15] of COLORREF;
  1079. end;
  1080. TNT_CONSOLE_PROPS = NT_CONSOLE_PROPS;
  1081. LPNT_CONSOLE_PROPS = PNT_CONSOLE_PROPS;
  1082. PLPNT_CONSOLE_PROPS = ^LPNT_CONSOLE_PROPS;
  1083. PNT_FE_CONSOLE_PROPS = ^NT_FE_CONSOLE_PROPS;
  1084. NT_FE_CONSOLE_PROPS = record
  1085. dbh : DATABLOCK_HEADER;
  1086. uCodePage : UINT; { This is a FE Console property }
  1087. end;
  1088. TNT_FE_CONSOLE_PROPS = NT_FE_CONSOLE_PROPS;
  1089. LPNT_FE_CONSOLE_PROPS = PNT_FE_CONSOLE_PROPS;
  1090. PLPNT_FE_CONSOLE_PROPS = ^LPNT_FE_CONSOLE_PROPS;
  1091. PEXP_DARWIN_LINK = ^EXP_DARWIN_LINK;
  1092. EXP_DARWIN_LINK = record
  1093. dbh : DATABLOCK_HEADER;
  1094. szDarwinID : array[0..(MAX_PATH)-1] of CHAR; { ANSI darwin ID associated with link }
  1095. szwDarwinID : array[0..(MAX_PATH)-1] of WCHAR; { UNICODE darwin ID associated with link }
  1096. end;
  1097. TEXP_DARWIN_LINK = EXP_DARWIN_LINK;
  1098. LPEXP_DARWIN_LINK = PEXP_DARWIN_LINK;
  1099. PLPEXP_DARWIN_LINK = ^LPEXP_DARWIN_LINK;
  1100. PEXP_SPECIAL_FOLDER = ^EXP_SPECIAL_FOLDER;
  1101. EXP_SPECIAL_FOLDER = record
  1102. cbSize : DWORD; { Size of this extra data block }
  1103. dwSignature : DWORD; { signature of this extra data block }
  1104. idSpecialFolder : DWORD; { special folder id this link points into }
  1105. cbOffset : DWORD; { ofset into pidl from SLDF_HAS_ID_LIST for child }
  1106. end;
  1107. LPEXP_SPECIAL_FOLDER = PEXP_SPECIAL_FOLDER;
  1108. PLPEXP_SPECIAL_FOLDER = ^LPEXP_SPECIAL_FOLDER;
  1109. TEXP_SPECIAL_FOLDER = EXP_SPECIAL_FOLDER;
  1110. PEXP_SZ_LINK = ^EXP_SZ_LINK;
  1111. EXP_SZ_LINK = record
  1112. cbSize : DWORD; { Size of this extra data block }
  1113. dwSignature : DWORD; { signature of this extra data block }
  1114. szTarget : array[0..(MAX_PATH)-1] of CHAR; { ANSI target name w/EXP_SZ in it }
  1115. swzTarget : array[0..(MAX_PATH)-1] of WCHAR; { UNICODE target name w/EXP_SZ in it }
  1116. end;
  1117. LPEXP_SZ_LINK = PEXP_SZ_LINK;
  1118. PLPEXP_SZ_LINK = ^LPEXP_SZ_LINK;
  1119. TEXP_SZ_LINK = EXP_SZ_LINK;
  1120. PFVSHOWINFO = ^FVSHOWINFO;
  1121. FVSHOWINFO = record { Stuff passed into viewer (in) }
  1122. cbSize : DWORD; { Size of structure for future expansion... }
  1123. hwndOwner : HWND; { who is the owner window. }
  1124. iShow : longint; { The show command }
  1125. { Passed in and updated (in/Out) }
  1126. dwFlags : DWORD; { flags }
  1127. rect : RECT; { Where to create the window may have defaults }
  1128. punkRel : IUnknown; { Relese this interface when window is visible }
  1129. { Stuff that might be returned from viewer (out) }
  1130. strNewFile : array[0..(MAX_PATH)-1] of OLECHAR; { New File to view. }
  1131. end;
  1132. TFVSHOWINFO = FVSHOWINFO;
  1133. LPFVSHOWINFO = PFVSHOWINFO;
  1134. PLPFVSHOWINFO = ^LPFVSHOWINFO;
  1135. PSHFOLDERCUSTOMSETTINGSA = ^SHFOLDERCUSTOMSETTINGSA;
  1136. SHFOLDERCUSTOMSETTINGSA = record
  1137. dwSize : DWORD;
  1138. dwMask : DWORD; { IN/OUT Which Attributes to Get/Set }
  1139. pvid : PSHELLVIEWID; { OUT - if dwReadWrite is FCS_READ, IN - otherwise }
  1140. { The folder's WebView template path }
  1141. pszWebViewTemplate : LPSTR; { OUT - if dwReadWrite is FCS_READ, IN - otherwise }
  1142. cchWebViewTemplate : DWORD; { IN - Specifies the size of the buffer pointed to by pszWebViewTemplate }
  1143. pszWebViewTemplateVersion : LPSTR; { Ignored if dwReadWrite is FCS_READ }
  1144. pszInfoTip : LPSTR; { currently IN only }
  1145. cchInfoTip : DWORD; { Infotip for the folder }
  1146. { OUT - if dwReadWrite is FCS_READ, IN - otherwise }
  1147. { IN - Specifies the size of the buffer pointed to by pszInfoTip }
  1148. pclsid : PCLSID; { Ignored if dwReadWrite is FCS_READ }
  1149. { CLSID that points to more info in the registry }
  1150. dwFlags : DWORD; { OUT - if dwReadWrite is FCS_READ, IN - otherwise }
  1151. pszIconFile : LPSTR; { Other flags for the folder. Takes FCS_FLAG_* values }
  1152. cchIconFile : DWORD; { OUT - if dwReadWrite is FCS_READ, IN - otherwise }
  1153. { OUT - if dwReadWrite is FCS_READ, IN - otherwise }
  1154. iIconIndex : longint; { IN - Specifies the size of the buffer pointed to by pszIconFile }
  1155. { Ignored if dwReadWrite is FCS_READ }
  1156. pszLogo : LPSTR; { OUT - if dwReadWrite is FCS_READ, IN - otherwise }
  1157. cchLogo : DWORD; { OUT - if dwReadWrite is FCS_READ, IN - otherwise }
  1158. end; { IN - Specifies the size of the buffer pointed to by pszIconFile }
  1159. { Ignored if dwReadWrite is FCS_READ }
  1160. LPSHFOLDERCUSTOMSETTINGSA = PSHFOLDERCUSTOMSETTINGSA;
  1161. PLPSHFOLDERCUSTOMSETTINGSA = ^LPSHFOLDERCUSTOMSETTINGSA;
  1162. TSHFOLDERCUSTOMSETTINGSA = SHFOLDERCUSTOMSETTINGSA;
  1163. PSHFOLDERCUSTOMSETTINGSW = ^SHFOLDERCUSTOMSETTINGSW;
  1164. SHFOLDERCUSTOMSETTINGSW = record
  1165. dwSize : DWORD;
  1166. dwMask : DWORD;
  1167. pvid : PSHELLVIEWID;
  1168. pszWebViewTemplate : LPWSTR;
  1169. cchWebViewTemplate : DWORD;
  1170. pszWebViewTemplateVersion : LPWSTR;
  1171. pszInfoTip : LPWSTR;
  1172. cchInfoTip : DWORD;
  1173. pclsid : PCLSID;
  1174. dwFlags : DWORD;
  1175. pszIconFile : LPWSTR;
  1176. cchIconFile : DWORD;
  1177. iIconIndex : longint;
  1178. pszLogo : LPWSTR;
  1179. cchLogo : DWORD;
  1180. end;
  1181. LPSHFOLDERCUSTOMSETTINGSW = PSHFOLDERCUSTOMSETTINGSW;
  1182. PLPSHFOLDERCUSTOMSETTINGSW = ^LPSHFOLDERCUSTOMSETTINGSW;
  1183. TSHFOLDERCUSTOMSETTINGSW = SHFOLDERCUSTOMSETTINGSW;
  1184. {$ifdef unicode}
  1185. LPSHFOLDERCUSTOMSETTINGS = PSHFOLDERCUSTOMSETTINGSW;
  1186. PLPSHFOLDERCUSTOMSETTINGS = PLPSHFOLDERCUSTOMSETTINGSW;
  1187. TSHFOLDERCUSTOMSETTINGS = SHFOLDERCUSTOMSETTINGSW;
  1188. SHFOLDERCUSTOMSETTINGS = SHFOLDERCUSTOMSETTINGSW;
  1189. {$else}
  1190. LPSHFOLDERCUSTOMSETTINGS = PSHFOLDERCUSTOMSETTINGSA;
  1191. PLPSHFOLDERCUSTOMSETTINGS = PLPSHFOLDERCUSTOMSETTINGSA;
  1192. TSHFOLDERCUSTOMSETTINGS = SHFOLDERCUSTOMSETTINGSA;
  1193. SHFOLDERCUSTOMSETTINGS = SHFOLDERCUSTOMSETTINGSA;
  1194. {$endif}
  1195. _browseinfoA = record
  1196. hwndOwner : HWND;
  1197. pidlRoot : LPCITEMIDLIST;
  1198. pszDisplayName : LPSTR; { Return display name of item selected. }
  1199. lpszTitle : LPCSTR; { text to go in the banner over the tree. }
  1200. ulFlags : UINT; { Flags that control the return stuff }
  1201. lpfn : BFFCALLBACK;
  1202. lParam : LPARAM; { extra info that's passed back in callbacks }
  1203. iImage : longint; { output var: where to return the Image index. }
  1204. end;
  1205. BROWSEINFOA = _browseinfoA;
  1206. PBROWSEINFOA = ^BROWSEINFOA;
  1207. TBROWSEINFOA = BROWSEINFOA;
  1208. PPBROWSEINFOA = ^PBROWSEINFOA;
  1209. LPBROWSEINFOA = PbrowseinfoA;
  1210. PLPBROWSEINFOA = ^LPBROWSEINFOA;
  1211. _browseinfoW = record
  1212. hwndOwner : HWND;
  1213. pidlRoot : LPCITEMIDLIST;
  1214. pszDisplayName : LPWSTR; { Return display name of item selected. }
  1215. lpszTitle : LPCWSTR; { text to go in the banner over the tree. }
  1216. ulFlags : UINT; { Flags that control the return stuff }
  1217. lpfn : BFFCALLBACK;
  1218. lParam : LPARAM; { extra info that's passed back in callbacks }
  1219. iImage : longint; { output var: where to return the Image index. }
  1220. end;
  1221. BROWSEINFOW = _browseinfoW;
  1222. PBROWSEINFOW = ^BROWSEINFOW;
  1223. PPBROWSEINFOW = ^PBROWSEINFOW;
  1224. LPBROWSEINFOW = PbrowseinfoW;
  1225. PLPBROWSEINFOW = ^LPBROWSEINFOW;
  1226. TBROWSEINFOW = BROWSEINFOW;
  1227. {$IFDEF UNICODE}
  1228. BROWSEINFO = _browseinfoW;
  1229. PBROWSEINFO = PBROWSEINFOW;
  1230. PPBROWSEINFO = PPBROWSEINFOW;
  1231. LPBROWSEINFO = PbrowseinfoW;
  1232. PLPBROWSEINFO = PLPBROWSEINFOW;
  1233. TBROWSEINFO = BROWSEINFOW;
  1234. {$else}
  1235. BROWSEINFO = _browseinfoA;
  1236. PBROWSEINFO = PBROWSEINFOA;
  1237. TBROWSEINFO = BROWSEINFOA;
  1238. PPBROWSEINFO = PPBROWSEINFOA;
  1239. LPBROWSEINFO = PbrowseinfoA;
  1240. PLPBROWSEINFO = PLPBROWSEINFOA;
  1241. {$endif}
  1242. P_EnumImageStoreDATAtag = ^_EnumImageStoreDATAtag;
  1243. _EnumImageStoreDATAtag = record
  1244. szPath : array[0..(MAX_PATH)-1] of WCHAR;
  1245. ftTimeStamp : FILETIME;
  1246. end;
  1247. ENUMSHELLIMAGESTOREDATA = _EnumImageStoreDATAtag;
  1248. PENUMSHELLIMAGESTOREDATA = ^ENUMSHELLIMAGESTOREDATA;
  1249. PPENUMSHELLIMAGESTOREDATA = ^PENUMSHELLIMAGESTOREDATA;
  1250. TENUMSHELLIMAGESTOREDATA = _EnumImageStoreDATAtag;
  1251. PBANDINFOSFB = ^BANDINFOSFB;
  1252. BANDINFOSFB = record
  1253. dwMask : DWORD; { [in] ISFB_MASK mask of valid fields from crBkgnd on }
  1254. dwStateMask : DWORD; { [in] ISFB_STATE mask of dwState bits being set/queried }
  1255. dwState : DWORD; { [in/out] ISFB_STATE bits }
  1256. crBkgnd : COLORREF; { [in/out] }
  1257. crBtnLt : COLORREF; { [in/out] }
  1258. crBtnDk : COLORREF; { [in/out] }
  1259. wViewMode : WORD; { [in/out] }
  1260. wAlign : WORD; { not used (yet) }
  1261. psf : IShellFolder; { [out] }
  1262. pidl : LPITEMIDLIST; { [out] }
  1263. end;
  1264. PPBANDINFOSFB = ^PBANDINFOSFB;
  1265. _tagWALLPAPEROPT = record
  1266. dwSize : DWORD; { size of this Structure. }
  1267. dwStyle : DWORD; { WPSTYLE_* mentioned above }
  1268. end;
  1269. WALLPAPEROPT = _tagWALLPAPEROPT;
  1270. TWALLPAPEROPT = _tagWALLPAPEROPT;
  1271. PWALLPAPEROPT = ^WALLPAPEROPT;
  1272. PLPWALLPAPEROPT = ^LPWALLPAPEROPT;
  1273. LPWALLPAPEROPT = WALLPAPEROPT;
  1274. PLPCWALLPAPEROPT = ^LPCWALLPAPEROPT;
  1275. LPCWALLPAPEROPT = WALLPAPEROPT;
  1276. _tagCOMPONENTSOPT = record
  1277. dwSize : DWORD; {Size of this structure }
  1278. fEnableComponents : BOOL; {Enable components? }
  1279. fActiveDesktop : BOOL; { Active desktop enabled ? }
  1280. end;
  1281. COMPONENTSOPT = _tagCOMPONENTSOPT;
  1282. TCOMPONENTSOPT = _tagCOMPONENTSOPT;
  1283. PCOMPONENTSOPT = ^COMPONENTSOPT;
  1284. PLPCOMPONENTSOPT = ^LPCOMPONENTSOPT;
  1285. LPCOMPONENTSOPT = COMPONENTSOPT;
  1286. PLPCCOMPONENTSOPT = ^LPCCOMPONENTSOPT;
  1287. LPCCOMPONENTSOPT = COMPONENTSOPT;
  1288. _tagCOMPPOS = record
  1289. dwSize : DWORD; {Size of this structure }
  1290. iLeft : longint; {Left of top-left corner in screen co-ordinates. }
  1291. iTop : longint; {Top of top-left corner in screen co-ordinates. }
  1292. dwWidth : DWORD; { Width in pixels. }
  1293. dwHeight : DWORD; { Height in pixels. }
  1294. izIndex : longint; { Indicates the Z-order of the component. }
  1295. fCanResize : BOOL; { Is the component resizeable? }
  1296. fCanResizeX : BOOL; { Resizeable in X-direction? }
  1297. fCanResizeY : BOOL; { Resizeable in Y-direction? }
  1298. iPreferredLeftPercent : longint;{Left of top-left corner as percent of screen width }
  1299. iPreferredTopPercent : longint; {Top of top-left corner as percent of screen height }
  1300. end;
  1301. COMPPOS = _tagCOMPPOS;
  1302. TCOMPPOS = _tagCOMPPOS;
  1303. PCOMPPOS = ^COMPPOS;
  1304. PLPCOMPPOS = ^LPCOMPPOS;
  1305. LPCOMPPOS = COMPPOS;
  1306. PLPCCOMPPOS = ^LPCCOMPPOS;
  1307. LPCCOMPPOS = COMPPOS;
  1308. _tagCOMPSTATEINFO = record
  1309. dwSize : DWORD; { Size of this structure. }
  1310. iLeft : longint; { Left of the top-left corner in screen co-ordinates. }
  1311. iTop : longint; { Top of top-left corner in screen co-ordinates. }
  1312. dwWidth : DWORD; { Width in pixels. }
  1313. dwHeight : DWORD; { Height in pixels. }
  1314. dwItemState : DWORD; { State of the component (full-screen mode or split-screen or normal state. }
  1315. end;
  1316. COMPSTATEINFO = _tagCOMPSTATEINFO;
  1317. TCOMPSTATEINFO = _tagCOMPSTATEINFO;
  1318. PCOMPSTATEINFO = ^COMPSTATEINFO;
  1319. PLPCOMPSTATEINFO = ^LPCOMPSTATEINFO;
  1320. LPCOMPSTATEINFO = COMPSTATEINFO;
  1321. PLPCCOMPSTATEINFO = ^LPCCOMPSTATEINFO;
  1322. LPCCOMPSTATEINFO = COMPSTATEINFO;
  1323. _tagIE4COMPONENT = record
  1324. dwSize : DWORD; {Size of this structure }
  1325. dwID : DWORD; {Reserved: Set it always to zero. }
  1326. iComponentType : longint; {One of COMP_TYPE_* }
  1327. fChecked : BOOL; { Is this component enabled? }
  1328. fDirty : BOOL; { Had the component been modified and not yet saved to disk? }
  1329. fNoScroll : BOOL; { Is the component scrollable? }
  1330. cpPos : COMPPOS; { Width, height etc., } {}
  1331. wszFriendlyName : array[0..(MAX_PATH)-1] of WCHAR; { Friendly name of component. }
  1332. wszSource : array[0..(INTERNET_MAX_URL_LENGTH)-1] of WCHAR; {URL of the component. }
  1333. wszSubscribedURL : array[0..(INTERNET_MAX_URL_LENGTH)-1] of WCHAR; {Subscrined URL }
  1334. end;
  1335. IE4COMPONENT = _tagIE4COMPONENT;
  1336. TIE4COMPONENT = _tagIE4COMPONENT;
  1337. PIE4COMPONENT = ^IE4COMPONENT;
  1338. PLPIE4COMPONENT = ^LPIE4COMPONENT;
  1339. LPIE4COMPONENT = IE4COMPONENT;
  1340. PLPCIE4COMPONENT = ^LPCIE4COMPONENT;
  1341. LPCIE4COMPONENT = IE4COMPONENT;
  1342. _tagCOMPONENT = record
  1343. dwSize : DWORD; {Size of this structure }
  1344. dwID : DWORD; {} {Reserved: Set it always to zero. }
  1345. iComponentType : longint; {One of COMP_TYPE_* }
  1346. fChecked : BOOL; { Is this component enabled? }
  1347. fDirty : BOOL; { Had the component been modified and not yet saved to disk? }
  1348. fNoScroll : BOOL; { Is the component scrollable? }
  1349. cpPos : COMPPOS; { Width, height etc., }
  1350. wszFriendlyName : array[0..(MAX_PATH)-1] of WCHAR; { Friendly name of component. }
  1351. wszSource : array[0..(INTERNET_MAX_URL_LENGTH)-1] of WCHAR; {URL of the component. }
  1352. wszSubscribedURL : array[0..(INTERNET_MAX_URL_LENGTH)-1] of WCHAR; {Subscrined URL }
  1353. {New fields are added below. Everything above here must exactly match the IE4COMPONENT Structure. }
  1354. dwCurItemState : DWORD; { Current state of the Component. }
  1355. csiOriginal : COMPSTATEINFO; { Original state of the component when it was first added. }
  1356. csiRestored : COMPSTATEINFO; { Restored state of the component. }
  1357. end;
  1358. COMPONENT = _tagCOMPONENT;
  1359. PCOMPONENT = ^COMPONENT;
  1360. // no tcomponent because ambiguous.
  1361. PLPCOMPONENT = ^LPCOMPONENT;
  1362. LPCOMPONENT = COMPONENT;
  1363. PLPCCOMPONENT = ^LPCCOMPONENT;
  1364. LPCCOMPONENT = COMPONENT;
  1365. PSHCOLUMNINFO = ^SHCOLUMNINFO;
  1366. SHCOLUMNINFO = record
  1367. scid : SHCOLUMNID; { OUT the unique identifier of this column}
  1368. vt : TVarType; { OUT the native type of the data return}
  1369. fmt : DWORD; { OUT this listview format (LVCFMT_LEFT}
  1370. cChars : UINT; { OUT the default width of the column,}
  1371. csFlags : DWORD; { OUT SHCOLSTATE flags }
  1372. wszTitle : array[0..(MAX_COLUMN_NAME_LEN)-1] of WCHAR; { OUT the title of the column }
  1373. wszDescription : array[0..(MAX_COLUMN_DESC_LEN)-1] of WCHAR; { OUT full description of this column }
  1374. end;
  1375. TSHCOLUMNINFO = SHCOLUMNINFO;
  1376. LPSHCOLUMNINFO = PSHCOLUMNINFO;
  1377. PLPSHCOLUMNINFO = ^LPSHCOLUMNINFO;
  1378. PSHCOLUMNINIT = ^SHCOLUMNINIT;
  1379. SHCOLUMNINIT = record
  1380. dwFlags : ULONG; { initialization flags }
  1381. dwReserved : ULONG; { reserved for future use. }
  1382. wszFolder : array[0..(MAX_PATH)-1] of WCHAR; { fully qualified folder path (or empty if multiple folders) }
  1383. end;
  1384. TSHCOLUMNINIT = SHCOLUMNINIT;
  1385. LPSHCOLUMNINIT = PSHCOLUMNINIT;
  1386. PLPSHCOLUMNINIT = ^LPSHCOLUMNINIT;
  1387. PLPCSHCOLUMNINIT = ^LPCSHCOLUMNINIT;
  1388. LPCSHCOLUMNINIT = SHCOLUMNINIT;
  1389. PSHCOLUMNDATA = ^SHCOLUMNDATA;
  1390. SHCOLUMNDATA = record
  1391. dwFlags : ULONG; { combination of SHCDF_ flags. }
  1392. dwFileAttributes : DWORD; { file attributes. }
  1393. dwReserved : ULONG; { reserved for future use. }
  1394. pwszExt : PWCHAR; { address of file name extension }
  1395. wszFile : array[0..(MAX_PATH)-1] of WCHAR; { Absolute path of file. }
  1396. end;
  1397. TSHCOLUMNDAT=SHCOLUMNDATA;
  1398. LPSHCOLUMNDATA = PSHCOLUMNDATA;
  1399. PLPSHCOLUMNDATA = ^LPSHCOLUMNDATA;
  1400. PLPCSHCOLUMNDATA = ^LPCSHCOLUMNDATA;
  1401. LPCSHCOLUMNDATA = SHCOLUMNDATA;
  1402. PSHDRAGIMAGE = ^SHDRAGIMAGE;
  1403. SHDRAGIMAGE = record
  1404. sizeDragImage : SIZE; { OUT - The length and Width of the rendered image }
  1405. ptOffset : POINT; { OUT - The Offset from the mouse cursor to the upper left corner of the image }
  1406. hbmpDragImage : HBITMAP; { OUT - The Bitmap containing the rendered drag images }
  1407. crColorKey : COLORREF; { OUT - The COLORREF that has been blitted to the background of the images }
  1408. end;
  1409. LPSHDRAGIMAGE = PSHDRAGIMAGE;
  1410. PLPSHDRAGIMAGE = ^LPSHDRAGIMAGE;
  1411. TSHDRAGIMAGE = SHDRAGIMAGE;
  1412. _NRESARRAY = record
  1413. cItems : UINT;
  1414. nr : array[0..0] of NETRESOURCE;
  1415. end;
  1416. NRESARRAY = _NRESARRAY;
  1417. TNRESARRAY = _NRESARRAY;
  1418. PNRESARRAY = ^NRESARRAY;
  1419. LPNRESARRAY = PNRESARRAY;
  1420. PLPNRESARRAY = ^LPNRESARRAY;
  1421. _IDA = record
  1422. cidl : UINT; { number of relative IDList }
  1423. aoffset : array[0..0] of UINT; { [0]: folder IDList, [1]-[cidl]: item IDList }
  1424. end;
  1425. CIDA = _IDA;
  1426. TIDA = _IDA;
  1427. PIDA = ^TIDA;
  1428. PCIDA = ^CIDA;
  1429. LPIDA = PCIDA;
  1430. PLPIDA = ^LPIDA;
  1431. _FILEDESCRIPTORA = record
  1432. dwFlags : DWORD;
  1433. clsid : CLSID;
  1434. sizel : SIZEL;
  1435. pointl : POINTL;
  1436. dwFileAttributes : DWORD;
  1437. ftCreationTime : FILETIME;
  1438. ftLastAccessTime : FILETIME;
  1439. ftLastWriteTime : FILETIME;
  1440. nFileSizeHigh : DWORD;
  1441. nFileSizeLow : DWORD;
  1442. cFileName : array[0..(MAX_PATH)-1] of CHAR;
  1443. end;
  1444. FILEDESCRIPTORA = _FILEDESCRIPTORA;
  1445. TFILEDESCRIPTORA = _FILEDESCRIPTORA;
  1446. PFILEDESCRIPTORA = ^FILEDESCRIPTORA;
  1447. LPFILEDESCRIPTORA = PFILEDESCRIPTORA;
  1448. PLPFILEDESCRIPTORA = ^LPFILEDESCRIPTORA;
  1449. _FILEDESCRIPTORW = record
  1450. dwFlags : DWORD;
  1451. clsid : CLSID;
  1452. sizel : SIZEL;
  1453. pointl : POINTL;
  1454. dwFileAttributes : DWORD;
  1455. ftCreationTime : FILETIME;
  1456. ftLastAccessTime : FILETIME;
  1457. ftLastWriteTime : FILETIME;
  1458. nFileSizeHigh : DWORD;
  1459. nFileSizeLow : DWORD;
  1460. cFileName : array[0..(MAX_PATH)-1] of WCHAR;
  1461. end;
  1462. FILEDESCRIPTORW = _FILEDESCRIPTORW;
  1463. TFILEDESCRIPTORW = _FILEDESCRIPTORW;
  1464. PFILEDESCRIPTORW = ^FILEDESCRIPTORW;
  1465. LPFILEDESCRIPTORW = PFILEDESCRIPTORW;
  1466. PLPFILEDESCRIPTORW = ^LPFILEDESCRIPTORW;
  1467. {$Ifdef Unicode}
  1468. _FILEDESCRIPTOR = _FILEDESCRIPTORW;
  1469. FILEDESCRIPTOR = _FILEDESCRIPTORW;
  1470. TFILEDESCRIPTOR = _FILEDESCRIPTORW;
  1471. PFILEDESCRIPTOR = PFILEDESCRIPTORW;
  1472. LPFILEDESCRIPTOR = PFILEDESCRIPTORW;
  1473. PLPFILEDESCRIPTOR = PLPFILEDESCRIPTORW;
  1474. {$else}
  1475. _FILEDESCRIPTOR = _FILEDESCRIPTORA;
  1476. FILEDESCRIPTOR = _FILEDESCRIPTORA;
  1477. TFILEDESCRIPTOR = _FILEDESCRIPTORA;
  1478. PFILEDESCRIPTOR = PFILEDESCRIPTORA;
  1479. LPFILEDESCRIPTOR = PFILEDESCRIPTORA;
  1480. PLPFILEDESCRIPTOR = PLPFILEDESCRIPTORA;
  1481. {$endif}
  1482. _FILEGROUPDESCRIPTORA = record
  1483. cItems : UINT;
  1484. fgd : array[0..0] of FILEDESCRIPTORA;
  1485. end;
  1486. FILEGROUPDESCRIPTORA = _FILEGROUPDESCRIPTORA;
  1487. TFILEGROUPDESCRIPTORA = _FILEGROUPDESCRIPTORA;
  1488. PFILEGROUPDESCRIPTORA = ^FILEGROUPDESCRIPTORA;
  1489. LPFILEGROUPDESCRIPTORA = PFILEGROUPDESCRIPTORA;
  1490. PLPFILEGROUPDESCRIPTORA = ^LPFILEGROUPDESCRIPTORA;
  1491. _FILEGROUPDESCRIPTORW = record
  1492. cItems : UINT;
  1493. fgd : array[0..0] of FILEDESCRIPTORW;
  1494. end;
  1495. FILEGROUPDESCRIPTORW = _FILEGROUPDESCRIPTORW;
  1496. TFILEGROUPDESCRIPTORW = _FILEGROUPDESCRIPTORW;
  1497. PFILEGROUPDESCRIPTORW = ^FILEGROUPDESCRIPTORW;
  1498. LPFILEGROUPDESCRIPTORW = PFILEGROUPDESCRIPTORW;
  1499. PLPFILEGROUPDESCRIPTORW = ^LPFILEGROUPDESCRIPTORW;
  1500. {$ifdef Unicode}
  1501. _FILEGROUPDESCRIPTOR = _FILEGROUPDESCRIPTORW;
  1502. FILEGROUPDESCRIPTOR = _FILEGROUPDESCRIPTORW;
  1503. TFILEGROUPDESCRIPTOR = _FILEGROUPDESCRIPTORW;
  1504. PFILEGROUPDESCRIPTOR = PFILEGROUPDESCRIPTORW;
  1505. LPFILEGROUPDESCRIPTOR = PFILEGROUPDESCRIPTORW;
  1506. PLPFILEGROUPDESCRIPTOR = PLPFILEGROUPDESCRIPTORW;
  1507. {$else}
  1508. _FILEGROUPDESCRIPTOR = _FILEGROUPDESCRIPTORA;
  1509. FILEGROUPDESCRIPTOR = _FILEGROUPDESCRIPTORA;
  1510. TFILEGROUPDESCRIPTOR = _FILEGROUPDESCRIPTORA;
  1511. PFILEGROUPDESCRIPTOR = PFILEGROUPDESCRIPTORA;
  1512. LPFILEGROUPDESCRIPTOR = PFILEGROUPDESCRIPTORA;
  1513. PLPFILEGROUPDESCRIPTOR = PLPFILEGROUPDESCRIPTORA;
  1514. {$endif}
  1515. _DROPFILES = record
  1516. pFiles : DWORD; { offset of file list }
  1517. pt : POINT; { drop point (client coords) }
  1518. fNC : BOOL; { is it on NonClient area }
  1519. fWide : BOOL; { and pt is in screen coords }
  1520. end; { WIDE character switch }
  1521. DROPFILES = _DROPFILES;
  1522. TDROPFILES = _DROPFILES;
  1523. PDROPFILES = ^DROPFILES;
  1524. LPDROPFILES = PDROPFILES;
  1525. PLPDROPFILES = ^LPDROPFILES;
  1526. {====== File System Notification APIs =============================== }
  1527. _SHChangeNotifyEntry = record
  1528. pidl : LPCITEMIDLIST;
  1529. fRecursive : BOOL;
  1530. end;
  1531. SHChangeNotifyEntry = _SHChangeNotifyEntry;
  1532. TSHChangeNotifyEntry = _SHChangeNotifyEntry;
  1533. PSHChangeNotifyEntry = ^SHChangeNotifyEntry;
  1534. _SHChangeDWORDAsIDList = record
  1535. cb : USHORT;
  1536. dwItem1 : DWORD;
  1537. dwItem2 : DWORD;
  1538. cbZero : USHORT;
  1539. end;
  1540. SHChangeDWORDAsIDList = _SHChangeDWORDAsIDList;
  1541. TSHChangeDWORDAsIDList = _SHChangeDWORDAsIDList;
  1542. PSHChangeDWORDAsIDList = ^SHChangeDWORDAsIDList;
  1543. LPSHChangeDWORDAsIDList = PSHChangeDWORDAsIDList;
  1544. PLPSHChangeDWORDAsIDList = ^LPSHChangeDWORDAsIDList;
  1545. _SHChangeUpdateImageIDList = record
  1546. cb : USHORT;
  1547. iIconIndex : longint;
  1548. iCurIndex : longint;
  1549. uFlags : UINT;
  1550. dwProcessID : DWORD;
  1551. szName : array[0..(MAX_PATH)-1] of WCHAR;
  1552. cbZero : USHORT;
  1553. end;
  1554. SHChangeUpdateImageIDList = _SHChangeUpdateImageIDList;
  1555. TSHChangeUpdateImageIDList = _SHChangeUpdateImageIDList;
  1556. PSHChangeUpdateImageIDList = ^SHChangeUpdateImageIDList;
  1557. LPSHChangeUpdateImageIDList = PSHChangeUpdateImageIDList;
  1558. PLPSHChangeUpdateImageIDList = ^LPSHChangeUpdateImageIDList;
  1559. _SHChangeProductKeyAsIDList = record
  1560. cb : USHORT;
  1561. wszProductKey : array[0..38] of WCHAR;
  1562. cbZero : USHORT;
  1563. end;
  1564. SHChangeProductKeyAsIDList = _SHChangeProductKeyAsIDList;
  1565. TSHChangeProductKeyAsIDList = _SHChangeProductKeyAsIDList;
  1566. PSHChangeProductKeyAsIDList = ^SHChangeProductKeyAsIDList;
  1567. LPSHChangeProductKeyAsIDList = PSHChangeProductKeyAsIDList;
  1568. PLPSHChangeProductKeyAsIDList = ^LPSHChangeProductKeyAsIDList;
  1569. _SHDESCRIPTIONID = record
  1570. dwDescriptionId : DWORD;
  1571. clsid : CLSID;
  1572. end;
  1573. SHDESCRIPTIONID = _SHDESCRIPTIONID;
  1574. TSHDESCRIPTIONID = _SHDESCRIPTIONID;
  1575. PSHDESCRIPTIONID = ^SHDESCRIPTIONID;
  1576. LPSHDESCRIPTIONID = PSHDESCRIPTIONID;
  1577. PLPSHDESCRIPTIONID = ^LPSHDESCRIPTIONID;
  1578. const
  1579. NUM_POINTS = 3;
  1580. { asd }
  1581. type
  1582. PAUTO_SCROLL_DATA = ^AUTO_SCROLL_DATA;
  1583. AUTO_SCROLL_DATA= record
  1584. iNextSample : longint;
  1585. dwLastScroll : DWORD;
  1586. bFull : BOOL;
  1587. pts : array[0..(NUM_POINTS)-1] of POINT;
  1588. dwTimes : array[0..(NUM_POINTS)-1] of DWORD;
  1589. end;
  1590. TAUTO_SCROLL_DATA = AUTO_SCROLL_DATA;
  1591. PCABINETSTATE = ^CABINETSTATE;
  1592. CABINETSTATE = record
  1593. cLength : WORD; { NT: Show compressed volumes in a different colour }
  1594. nVersion : WORD; { NT: Do 8.3 name conversion, or not! }
  1595. flag0 : word; { NT: Administrators create comon groups }
  1596. fMenuEnumFilter : UINT;
  1597. end;
  1598. TCABINETSTATE = CABINETSTATE;
  1599. LPCABINETSTATE = PCABINETSTATE;
  1600. PLPCABINETSTATE = ^LPCABINETSTATE;
  1601. FOLDERSettings = Packed Record
  1602. ViewMode : UINT; // View mode (FOLDERVIEWMODE values)
  1603. fFlags : UINT; // View options (FOLDERFLAGS bits)
  1604. end;
  1605. TFOLDERSettings = FOLDERSettings;
  1606. PFOLDERSettings = ^FOLDERSettings;
  1607. LPFOLDERSettings= PFOLDERSettings;
  1608. LPCFOLDERSettings= LPFOLDERSettings;
  1609. PSV2CVW2_PARAMS = ^TSV2CVW2_PARAMS;
  1610. TSV2CVW2_PARAMS = packed record // actually <pshpack8.h>")
  1611. cbSize : DWORD;
  1612. psvPrev : IShellView;
  1613. pfs : LPCFOLDERSETTINGS;
  1614. psbOwner : IShellBrowser;
  1615. prcView : PRECT;
  1616. pvid : PSHELLVIEWID;
  1617. hwndView : HWND;
  1618. end;
  1619. LPSV2CVW2_PARAMS = PSV2CVW2_PARAMS;
  1620. _SHELLDETAILS = record
  1621. fmt,
  1622. cxChar : longint;
  1623. str : TSTRRET;
  1624. end;
  1625. TShellDetails = _SHELLDETAILS;
  1626. SHELLDETAILS = _SHELLDETAILS;
  1627. PShellDetails = ^TShellDetails;
  1628. LPSHELLDETAILS = PSHELLDETAILS;
  1629. TShellDetailsEx = record
  1630. Index: UINT;
  1631. Detail: TShellDetails;
  1632. end;
  1633. tagEXTRASEARCH = packed record
  1634. guidSearch : TGUID;
  1635. wszFriendlyName : array[0..80-1] of WideChar;
  1636. wszUrl : array[0..2084-1] of WideChar;
  1637. end;
  1638. EXTRASEARCH = TagEXTRASEARCH;
  1639. TEXTRASEARCH = TagEXTRASEARCH;
  1640. LPEXTRASEARCH = ^EXTRASEARCH;
  1641. PEXTRASEARCH = ^EXTRASEARCH;
  1642. SHCOLSTATEF = DWORD;
  1643. PSHCOLSTATEF = ^SHCOLSTATEF;
  1644. TSHCOLSTATEF = SHCOLSTATEF;
  1645. KNOWNFOLDERID = TGUID;
  1646. REFKNOWNFOLDERID = ^KNOWNFOLDERID;
  1647. PLPITEMIDLIST = ^LPITEMIDLIST;
  1648. PROPPRG = record
  1649. flPrg : WORD;
  1650. flPrgInit : WORD;
  1651. achTitle : array[0..(PIFNAMESIZE)-1] of CHAR;
  1652. achCmdLine : array[0..((PIFSTARTLOCSIZE+PIFPARAMSSIZE)+1)-1] of CHAR;
  1653. achWorkDir : array[0..(PIFDEFPATHSIZE)-1] of CHAR;
  1654. wHotKey : WORD;
  1655. achIconFile : array[0..(PIFDEFFILESIZE)-1] of CHAR;
  1656. wIconIndex : WORD;
  1657. dwEnhModeFlags : DWORD;
  1658. dwRealModeFlags : DWORD;
  1659. achOtherFile : array[0..(PIFDEFFILESIZE)-1] of CHAR;
  1660. achPIFFile : array[0..(PIFMAXFILEPATH)-1] of CHAR;
  1661. end;
  1662. TPROPPRG = PROPPRG;
  1663. PPPROPPRG = ^PPROPPRG;
  1664. PPROPPRG = PROPPRG;
  1665. PLPPROPPRG = ^LPPROPPRG;
  1666. LPPROPPRG = PROPPRG;
  1667. PLPCPROPPRG = ^LPCPROPPRG;
  1668. LPCPROPPRG = PROPPRG;
  1669. _QCMINFO_IDMAP_PLACEMENT = record
  1670. id : UINT;
  1671. fFlags : UINT;
  1672. end;
  1673. QCMINFO_IDMAP_PLACEMENT = _QCMINFO_IDMAP_PLACEMENT;
  1674. TQCMINFO_IDMAP_PLACEMENT = _QCMINFO_IDMAP_PLACEMENT;
  1675. PQCMINFO_IDMAP_PLACEMENT = ^QCMINFO_IDMAP_PLACEMENT;
  1676. PQCMINFO_IDMAP = ^_QCMINFO_IDMAP;
  1677. _QCMINFO_IDMAP = record
  1678. nMaxIds : UINT;
  1679. pIdList : array[0..0] of QCMINFO_IDMAP_PLACEMENT;
  1680. end;
  1681. QCMINFO_IDMAP = _QCMINFO_IDMAP;
  1682. TQCMINFO_IDMAP = _QCMINFO_IDMAP;
  1683. _QCMINFO = record
  1684. hmenu : HMENU;
  1685. indexMenu : UINT;
  1686. idCmdFirst : UINT;
  1687. idCmdLast : UINT;
  1688. pIdMap : PQCMINFO_IDMAP;
  1689. end;
  1690. QCMINFO = _QCMINFO;
  1691. TQCMINFO = _QCMINFO;
  1692. PQCMINFO = ^QCMINFO;
  1693. PLPQCMINFO = ^LPQCMINFO;
  1694. LPQCMINFO = QCMINFO;
  1695. _TBINFO = record
  1696. cbuttons : UINT;
  1697. uFlags : UINT;
  1698. end;
  1699. TBINFO = _TBINFO;
  1700. TTBINFO = _TBINFO;
  1701. PTBINFO = ^TBINFO;
  1702. _DETAILSINFO = record
  1703. pidl : LPCITEMIDLIST;
  1704. fmt : longint;
  1705. cxChar : longint;
  1706. str : STRRET;
  1707. iImage : longint;
  1708. end;
  1709. DETAILSINFO = _DETAILSINFO;
  1710. TDETAILSINFO = _DETAILSINFO;
  1711. PDETAILSINFO = ^DETAILSINFO;
  1712. _SFVM_PROPPAGE_DATA = record
  1713. dwReserved : DWORD;
  1714. pfn : LPFNADDPROPSHEETPAGE;
  1715. lParam : LPARAM;
  1716. end;
  1717. SFVM_PROPPAGE_DATA = _SFVM_PROPPAGE_DATA;
  1718. TSFVM_PROPPAGE_DATA = _SFVM_PROPPAGE_DATA;
  1719. PSFVM_PROPPAGE_DATA = ^SFVM_PROPPAGE_DATA;
  1720. _SFVM_HELPTOPIC_DATA = record
  1721. wszHelpFile : array[0..(MAX_PATH)-1] of WCHAR;
  1722. wszHelpTopic : array[0..(MAX_PATH)-1] of WCHAR;
  1723. end;
  1724. SFVM_HELPTOPIC_DATA = _SFVM_HELPTOPIC_DATA;
  1725. TSFVM_HELPTOPIC_DATA = _SFVM_HELPTOPIC_DATA;
  1726. PSFVM_HELPTOPIC_DATA = ^SFVM_HELPTOPIC_DATA;
  1727. _SFV_CREATE = record
  1728. cbSize : UINT;
  1729. pshf : IShellFolder;
  1730. psvOuter : IShellView;
  1731. psfvcb : IShellFolderViewCB;
  1732. end;
  1733. SFV_CREATE = _SFV_CREATE;
  1734. TSFV_CREATE = _SFV_CREATE;
  1735. PSFV_CREATE = ^SFV_CREATE;
  1736. _CSFV = record
  1737. cbSize : UINT;
  1738. pshf : IShellFolder;
  1739. psvOuter : IShellView;
  1740. pidl : LPCITEMIDLIST;
  1741. lEvents : LONG;
  1742. pfnCallback : LPFNVIEWCALLBACK;
  1743. fvm : FOLDERVIEWMODE;
  1744. end;
  1745. CSFV = _CSFV;
  1746. TCSFV = _CSFV;
  1747. PCSFV = ^CSFV;
  1748. LPCSFV = PCSFV;
  1749. PLPCSFV = ^LPCSFV;
  1750. _SFV_SETITEMPOS = record
  1751. pidl : LPCITEMIDLIST;
  1752. pt : POINT;
  1753. end;
  1754. SFV_SETITEMPOS = _SFV_SETITEMPOS;
  1755. TSFV_SETITEMPOS = _SFV_SETITEMPOS;
  1756. PSFV_SETITEMPOS = ^SFV_SETITEMPOS;
  1757. LPSFV_SETITEMPOS = PSFV_SETITEMPOS;
  1758. PLPSFV_SETITEMPOS = ^LPSFV_SETITEMPOS;
  1759. PSHELLSTATEA = ^SHELLSTATEA;
  1760. SHELLSTATEA = record
  1761. flag0 : longint; { No longer used, dead bit }
  1762. dwWin95Unused : DWORD; { Win95 only - no longer supported pszHiddenFileExts }
  1763. uWin95Unused : UINT; { Win95 only - no longer supported cbHiddenFileExts }
  1764. lParamSort : LONG; { Note: Not a typo! This is a persisted structure so we cannot use LPARAM }
  1765. iSortDirection : longint; { new for win2k. need notUsed var to calc the right size of ie4 struct }
  1766. version : UINT; { FIELD_OFFSET does not work on bit fields }
  1767. uNotUsed : UINT; { feel free to rename and use }
  1768. flag1 : word; { new for Whistler. }
  1769. end; {Indicates if the Whistler StartPanel mode is ON or OFF. }
  1770. LPSHELLSTATEA = PSHELLSTATEA; {Indicates if the Whistler StartPage on desktop is ON or OFF. }
  1771. PLPSHELLSTATEA = ^LPSHELLSTATEA;
  1772. TSHELLSTATEA = SHELLSTATEA;
  1773. PSHELLSTATEW = ^SHELLSTATEW;
  1774. SHELLSTATEW = record
  1775. flag0 : longint; { Win95 only - no longer supported pszHiddenFileExts }
  1776. dwWin95Unused : DWORD; { Win95 only - no longer supported cbHiddenFileExts }
  1777. uWin95Unused : UINT; { Note: Not a typo! This is a persisted structure so we cannot use LPARAM }
  1778. lParamSort : LONG; { new for win2k. need notUsed var to calc the right size of ie4 struct }
  1779. iSortDirection : longint; { FIELD_OFFSET does not work on bit fields }
  1780. version : UINT; { feel free to rename and use }
  1781. uNotUsed : UINT; { new for Whistler. }
  1782. flag1 : word; {Indicates if the Whistler StartPage mode is ON or OFF. }
  1783. end; {Indicates if the Whistler StartPage on desktop is ON or OFF. }
  1784. LPSHELLSTATEW = PSHELLSTATEW; { If you need a new flag, steal a bit from from fSpareFlags. }
  1785. PLPSHELLSTATEW = ^LPSHELLSTATEW;
  1786. {$ifdef Unicode}
  1787. SHELLSTATE = SHELLSTATEW;
  1788. LPSHELLSTATE = PSHELLSTATEW;
  1789. PLPSHELLSTATE = PLPSHELLSTATEW;
  1790. TSHELLSTATE = SHELLSTATEW;
  1791. {$else}
  1792. LPSHELLSTATE = PSHELLSTATEA;
  1793. PLPSHELLSTATE = PLPSHELLSTATEA;
  1794. TSHELLSTATE = SHELLSTATEA;
  1795. SHELLSTAT = SHELLSTATEA;
  1796. {$endif}
  1797. PSHELLFLAGSTATE = ^SHELLFLAGSTATE;
  1798. SHELLFLAGSTATE = record
  1799. flag0 : word;
  1800. end;
  1801. LPSHELLFLAGSTATE = PSHELLFLAGSTATE;
  1802. PLPSHELLFLAGSTATE = ^LPSHELLFLAGSTATE;
  1803. TSHELLFLAGSTATE = SHELLFLAGSTATE;
  1804. PtagAAMENUFILENAME = ^tagAAMENUFILENAME;
  1805. tagAAMENUFILENAME = record
  1806. cbTotal : SHORT;
  1807. rgbReserved : array[0..11] of BYTE;
  1808. szFileName : array[0..0] of WCHAR;
  1809. end;
  1810. AASHELLMENUFILENAME = tagAAMENUFILENAME;
  1811. TAASHELLMENUFILENAME = tagAAMENUFILENAME;
  1812. PAASHELLMENUFILENAME = ^AASHELLMENUFILENAME;
  1813. LPAASHELLMENUFILENAME = PtagAAMENUFILENAME;
  1814. PLPAASHELLMENUFILENAME = ^LPAASHELLMENUFILENAME;
  1815. PtagAASHELLMENUITEM = ^tagAASHELLMENUITEM;
  1816. tagAASHELLMENUITEM = record
  1817. lpReserved1 : pointer;
  1818. iReserved : longint;
  1819. uiReserved : UINT;
  1820. lpName : LPAASHELLMENUFILENAME; { name of file }
  1821. psz : LPWSTR; { text to use if no file }
  1822. end;
  1823. AASHELLMENUITEM = tagAASHELLMENUITEM;
  1824. TAASHELLMENUITEM = tagAASHELLMENUITEM;
  1825. PAASHELLMENUITEM = ^AASHELLMENUITEM;
  1826. LPAASHELLMENUITEM = PtagAASHELLMENUITEM;
  1827. PLPAASHELLMENUITEM = ^LPAASHELLMENUITEM;
  1828. FDE_OVERWRITE_RESPONSE = longint;
  1829. TFDE_OVERWRITE_RESPONSE = FDE_OVERWRITE_RESPONSE;
  1830. PFDE_OVERWRITE_RESPONSE = ^longint;
  1831. FDE_SHAREVIOLATION_RESPONSE = longint;
  1832. TFDE_SHAREVIOLATION_RESPONSE = FDE_SHAREVIOLATION_RESPONSE;
  1833. PFDE_SHAREVIOLATION_RESPONSE = ^FDE_SHAREVIOLATION_RESPONSE;
  1834. FILEOPENDIALOGOPTIONS = longint;
  1835. TFILEOPENDIALOGOPTIONS = FILEOPENDIALOGOPTIONS;
  1836. PFILEOPENDIALOGOPTIONS = ^TFILEOPENDIALOGOPTIONS;
  1837. FDAP = longint;
  1838. TFDAP= FDAP;
  1839. PFDAP= ^FDAP;
  1840. _COMDLG_FILTERSPEC = packed record
  1841. pszName : LPCWSTR;
  1842. pszSpec : LPCWSTR;
  1843. end;
  1844. COMDLG_FILTERSPEC = _COMDLG_FILTERSPEC;
  1845. TCOMDLG_FILTERSPEC = _COMDLG_FILTERSPEC;
  1846. PCOMDLG_FILTERSPEC = ^_COMDLG_FILTERSPEC;
  1847. IPersistFolder = Interface(IPersist)
  1848. ['{000214EA-0000-0000-C000-000000000046}']
  1849. function Initialize (pild : LPCITEMIDLIST): HResult; StdCall;
  1850. end;
  1851. IPersistFolder2 = Interface(IPersistFolder)
  1852. ['{1AC3D9F0-175C-11d1-95BE-00609797EA4F}']
  1853. function GetCurFolder(Out ppidl : LPITEMIDLIST):HResult; StdCall;
  1854. end;
  1855. IPersistIDList = Interface(IPersist)
  1856. ['{1079acfc-29bd-11d3-8e0d-00c04f6837d5}']
  1857. function SetIdList(pid:LPCITEMIDLIST):HResult;StdCall;
  1858. function GetIdList(out pid:LPCITEMIDLIST):HResult;StdCall;
  1859. end;
  1860. IEnumIDList = interface(IUnknown)
  1861. ['{000214F2-0000-0000-C000-000000000046}']
  1862. function Next(celt: ULONG; out rgelt: PItemIDList; var pceltFetched: ULONG): HRESULT; stdcall;
  1863. function Skip(celt: ULONG): HRESULT; stdcall; function Reset: HRESULT; stdcall;
  1864. function Clone(out ppenum: IEnumIDList): HRESULT; stdcall;
  1865. end;
  1866. IEnumExtraSearch = Interface(IUnknown)
  1867. ['{0E700BE1-9DB6-11d1-A1CE-00C04FD75D13}']
  1868. function Next(celt: ULONG; out rgelt: EXTRASEARCH; var pceltFetched: ULONG): HRESULT; stdcall;
  1869. function Skip(celt: ULONG): HRESULT; stdcall; function Reset: HRESULT; stdcall;
  1870. function Clone(out ppenum: IEnumExtraSearch): HRESULT; stdcall;
  1871. end;
  1872. IShellDetails = interface(IUnknown)
  1873. ['{000214EC-0000-0000-C000-000000000046}']
  1874. function GetDetailsOf(pidl:LPCITEMIDLIST;iColumn:UINT;pDetails:PSHELLDETAILS):HResult;StdCall;
  1875. function ColumnClick(iColumn:UINT):HResult;StdCall;
  1876. end;
  1877. IShellFolder = interface(IUnknown)
  1878. ['{000214E6-0000-0000-C000-000000000046}']
  1879. function ParseDisplayName(hwndOwner: HWND; pbcReserved: Pointer; lpszDisplayName: POLESTR; out pchEaten: ULONG; out ppidl: PItemIDList; var dwAttributes: ULONG): HRESULT; stdcall;
  1880. function EnumObjects(hwndOwner: HWND; grfFlags: DWORD; out EnumIDList: IEnumIDList): HRESULT; stdcall;
  1881. function BindToObject(pidl: PItemIDList; pbcReserved: Pointer; const riid: TIID; out ppvOut): HRESULT; stdcall;
  1882. function BindToStorage(pidl: PItemIDList; pbcReserved: Pointer; const riid: TIID; out ppvObj): HRESULT; stdcall;
  1883. function CompareIDs(lParam: LPARAM; pidl1, pidl2: PItemIDList): HRESULT; stdcall;
  1884. function CreateViewObject(hwndOwner: HWND; const riid: TIID; out ppvOut): HRESULT; stdcall;
  1885. function GetAttributesOf(cidl: UINT; var apidl: PItemIDList; var rgfInOut: UINT): HRESULT; stdcall;
  1886. function GetUIObjectOf(hwndOwner: HWND; cidl: UINT; var apidl: PItemIDList; const riid: TIID; prgfInOut: Pointer; out ppvOut): HRESULT; stdcall;
  1887. function GetDisplayNameOf(pidl: PItemIDList; uFlags: DWORD; var lpName: TStrRet): HRESULT; stdcall;
  1888. function SetNameOf(hwndOwner: HWND; pidl: PItemIDList; lpszName: POLEStr; uFlags: DWORD; var ppidlOut: PItemIDList): HRESULT; stdcall;
  1889. end;
  1890. IShellFolder2 = interface(IShellFolder)
  1891. ['{93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}']
  1892. function GetDefaultSearchGUID(out guid:TGUID):HResult;StdCall;
  1893. function EnumSearches(out ppenum:IEnumExtraSearch):HResult;StdCall;
  1894. function GetDefaultColumn(dwres:DWORD;psort :pulong; pdisplay:pulong):HResult;StdCall;
  1895. function GetDefaultColumnState(icolumn:UINT;pscflag:PSHCOLSTATEF):HResult;StdCall;
  1896. function GetDetailsEx(pidl:LPCITEMIDLIST;pscid:PSHCOLUMNID; pv : pOLEvariant):HResult;StdCall;
  1897. function GetDetailsOf(pidl:LPCITEMIDLIST;iColumn:UINT;psd:PSHELLDETAILS):HResult;StdCall;
  1898. function MapColumnToSCID(iColumn:UINT;pscid:PSHCOLUMNID):HResult;StdCall;
  1899. end;
  1900. IAutoComplete = interface(IUnknown)
  1901. ['{00bb2762-6a77-11d0-a535-00c04fd7d062}']
  1902. function Init(hwndEdit: HWND; punkACL: IUnknown; pwszRegKeyPath: LPCWSTR; pwszQuickComplete: LPCWSTR): HRESULT; stdcall;
  1903. function Enable(fEnable: BOOL): HRESULT; stdcall;
  1904. end;
  1905. IShellView = Interface(IOleWindow)
  1906. ['{000214E3-0000-0000-C000-000000000046}']
  1907. function TranslateAccelerator( pm :PMSG):HResult; StdCall;
  1908. function EnableModeless(fEnable : BOOL):HResult; StdCall;
  1909. function UIActivate(uState:UINT):HResult; StdCall;
  1910. function Refresh:HResult; StdCall;
  1911. function CreateViewWindow(psvPrevious:IShellView;pfs:LPCFOLDERSETTINGS;psb:IShellBrowser;prcview:prect;var ph:HWND):HResult;StdCall;
  1912. function DestroyViewWindow:HResult; StdCall;
  1913. function GetCurrentInfo(pfs: LPFOLDERSETTINGS):HResult; StdCall;
  1914. function AddPropertySheetPages(dwreserved : DWORD;pfn:pointer{LPFNSVADDPROPSHEETPAGE};lp:lparam):HResult; StdCall;
  1915. function SaveViewState:HResult; StdCall;
  1916. function SelectItem( pidlItem: LPCITEMIDLIST;uflags:TSVSIF):HResult; StdCall;
  1917. function GetItemObject(uitem:UINT;const riid:TGUID;out ppv :PPOinter):HResult;StdCall;
  1918. end;
  1919. IShellView2 = Interface(IShellView)
  1920. ['{88E39E80-3578-11CF-AE69-08002B2E1262}']
  1921. function GetView(var pvid:TSHELLVIEWID ;uview:ULONG):HResult;StdCall;
  1922. function CreateViewWindow2(lpParams:LPSV2CVW2_PARAMS):HResult;StdCall;
  1923. function HandleRename(pidlNew: LPCITEMIDLIST ):HResult;StdCall;
  1924. function SelectAndPositionItem(pidlItem:LPCITEMIDLIST ;uflags:UINT;ppt:PPOINT):HRESULT;STDCALL;
  1925. end;
  1926. IFolderView = Interface(IUnknown)
  1927. ['{cde725b0-ccc9-4519-917e-325d72fab4ce}']
  1928. function GetCurrentViewMode(pViewMode:PUINT):HResult; StdCall;
  1929. function SetCurrentViewMode(ViewMode:UINT):HResult; StdCall;
  1930. function GetFolder(const riid:TGUID;ppv:pointer):HResult; StdCall;
  1931. function Item(iItemIndex:longint;ppidl:LPITEMIDLIST):HResult; StdCall;
  1932. function ItemCount(uflags:uint;pcitems:plongint):HResult; StdCall;
  1933. function Items (uflags:uint;const id :TGUID;out ppv: pointer):HResult; StdCall;
  1934. function GetSelectionMarkedItem(piItem:pint):HResult; StdCall;
  1935. function GetFocussedItem(piItem:pint):HResult; StdCall;
  1936. function GetItemPosition(pidl:LPCITEMIDLIST;ppt:PPOINT):HResult; StdCall;
  1937. function GetSpacing(ppt:ppoint):HResult; StdCall;
  1938. function GetDefaultSpacing(ppt:ppoint):HResult; StdCall;
  1939. function GetAutoArrange:HResult; StdCall;
  1940. function SelectItem(iItem : longint;dwflags:Dword) :HResult; StdCall;
  1941. function SelectAndPositionItems(cild:uint;var apid: LPCITEMIDLIST ;apt:PPOINT;dwflags:DWord):HResult; StdCall;
  1942. end;
  1943. IFolderFilterSite = Interface(IUnknown)
  1944. ['{C0A651F5-B48B-11d2-B5ED-006097C686F6}']
  1945. function SetFilter(punk:IUnknown):HResult; StdCall;
  1946. end;
  1947. IFolderFilter = Interface(IUnknown)
  1948. ['{9CC22886-DC8E-11d2-B1D0-00C04F8EEB3E}']
  1949. function ShouldShow(Psf:IShellFolder;pidlfolder:LPCITEMIDLIST;pidlItem:LPCITEMIDLIST):HResult; StdCall;
  1950. function GetEnumFlags(Psf:IShellFolder;pidlfolder:LPCITEMIDLIST;var hwnd: hwnd;out pgrfflags:DWORD):HResult; StdCall;
  1951. end;
  1952. //cpp_quote("#include <commctrl.h>")
  1953. //cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;")
  1954. IShellBrowser = interface(IOleWindow)
  1955. ['{000214E2-0000-0000-C000-000000000046}']
  1956. function InsertMenusSB(hmenuShared: HMenu; var menuWidths: TOleMenuGroupWidths): HResult;StdCall;
  1957. function SetMenuSB(hmenuShared: HMenu; holemenu: HOLEMenu; hwndActiveObject: HWnd): HResult;StdCall;
  1958. function RemoveMenusSB(hmenuShared: HMenu): HResult;StdCall;
  1959. function SetStatusTextSB(pszStatusText: POleStr): HResult;StdCall;
  1960. function EnableModelessSB(fEnable: BOOL): HResult;StdCall;
  1961. function TranslateAcceleratorSB(var msg: TMsg; wID: Word): HResult;StdCall;
  1962. function BrowseObject(pidl:LPCITEMIDLIST;wFlags:UINT): HResult;StdCall;
  1963. function GetViewStateStream(grfMode :DWORD; out ppstrm :IStream): HResult;StdCall;
  1964. function GetControlWindow(id:UINT;var h:HWND): HResult;StdCall;
  1965. function SendCOntrolMsg(id:uint;umsg:UINT;wparam:wparam;lparam:lparam;pret:PLRESULT): HResult;StdCall;
  1966. function QueryActiveShellView(out ppsh :IShellView): HResult;StdCall;
  1967. function OnViewWindowActive(psh :IShellView): HResult;StdCall;
  1968. function SetToolBarItems(lpButtons:LPTBBUTTONSB;nButtons:UINT;uFlags:uint): HResult;StdCall;
  1969. end;
  1970. const
  1971. CLSID_AutoComplete: TGUID = '{00BB2763-6A77-11D0-A535-00C04FD7D062}';
  1972. const
  1973. { IAutoComplete2 options }
  1974. ACO_NONE = 0;
  1975. ACO_AUTOSUGGEST = $1;
  1976. ACO_AUTOAPPEND = $2;
  1977. ACO_SEARCH = $4;
  1978. ACO_FILTERPREFIXES = $8;
  1979. ACO_USETAB = $10;
  1980. ACO_UPDOWNKEYDROPSLIST = $20;
  1981. ACO_RTLREADING = $40;
  1982. type
  1983. IAutoComplete2 = interface(IAutoComplete)
  1984. ['{EAC04BC0-3791-11d2-BB95-0060977B464C}']
  1985. function SetOptions(dwFlag: DWORD): HRESULT; stdcall;
  1986. function GetOptions(var dwFlag: DWORD): HRESULT; stdcall;
  1987. end;
  1988. PCMINVOKECOMMANDINFO = ^TCMINVOKECOMMANDINFO;
  1989. TCMINVOKECOMMANDINFO = packed record
  1990. cbSize : DWORD;
  1991. fMask : DWORD;
  1992. hwnd : HWND;
  1993. lpVerb : LPCSTR;
  1994. lpParameters : LPCSTR;
  1995. lpDirectory : LPCSTR;
  1996. nShow : longint;
  1997. dwHotKey: DWORD;
  1998. hIcon : THANDLE;
  1999. end;
  2000. LPCMINVOKECOMMANDINFO = PCMINVOKECOMMANDINFO;
  2001. IContextMenu = interface(IUnknown)
  2002. ['{000214E4-0000-0000-c000-000000000046}']
  2003. function QueryContextMenu(hmenu:HMENU;indexMenu:UINT;idCmdFirst:UINT;idCmdLast:UINT;UFlags:uint):HRESULT;StdCall;
  2004. function InvokeCommand(var lpici : TCMINVOKECOMMANDINFO):HResult; StdCall;
  2005. function GetCommandString(idcmd:UINT_Ptr;uType:UINT;pwreserved:puint;pszName:LPStr;cchMax:uint):HResult;StdCall;
  2006. end;
  2007. IContextMenu2 = interface(IContextMenu)
  2008. ['{000214f4-0000-0000-c000-000000000046}']
  2009. function HandleMenuMsg(uMsg:UINT;wParam:WPARAM;lParam:WPARAM):HResult;StdCall;
  2010. end;
  2011. IContextMenu3 = interface(IContextMenu2)
  2012. ['{bcfce0a0-ec17-11d0-8d10-00a0c90f2719}']
  2013. function HandleMenuMsg2(uMsg:UINT;wParam:WPARAM;lParam:WPARAM;presult:PLRESULT):HResult;StdCall;
  2014. end;
  2015. IEXtractIconA = interface(IUNknown)
  2016. ['{000214eb-0000-0000-c000-000000000046}']
  2017. function GetIconLocation(uFlags:UINT;szIconFIle:LPSTR;cchMax:UINT;var piIndex : longint; var pwflags:uint):HResult;StdCall;
  2018. function Extract(pszFile:LPCStr;nIconIndex:UINT;var phiconLarge:HICON;var phiconSmall:HICON;nIconSize:UINT):HResult;StdCall;
  2019. end;
  2020. IEXtractIconW = interface(IUNknown)
  2021. ['{000214fa-0000-0000-c000-000000000046}']
  2022. function GetIconLocation(uFlags:UINT;szIconFIle:LPWSTR;cchMax:UINT;var piIndex : longint; var pwflags:uint):HResult;StdCall;
  2023. function Extract(pszFile:LPCWStr;nIconIndex:UINT;var phiconLarge:HICON;var hiconSmall:HICON;nIconSize:UINT):HResult;StdCall;
  2024. end;
  2025. IEXtractIcon=IExtractIconA;
  2026. SPINITF = DWORD;
  2027. EXPPS = UINT;
  2028. IProfferService = interface (IUnknown)
  2029. ['{cb728b20-f786-11ce-92ad-00aa00a74cd0}']
  2030. function ProfferService(const guid:TGUID;psp:IServiceProvider;var pdwcookie:DWORD):HRESULT;StdCall;
  2031. function RevokeService(dwCookie:DWORD):HRESULT;StdCall;
  2032. end;
  2033. {
  2034. IPropertyUI = interface(IUnknown)
  2035. ['{757a7d9f-919a-4118-99d7-dbb208c8cc66}']
  2036. function ParsePropertyName(pszName:LPCWSTR; pfmtid:pFMTID; ppid:pPROPID; pchEaten:pULONG):HRESULT;StdCall;
  2037. function GetCannonicalName(const fmtid:FMTID; pid:PROPID; pwszText:LPWSTR; cchText:DWORD):HRESULT;StdCall;
  2038. function GetDisplayName(const fmtid:FMTID; pid:PROPID; flags:PROPERTYUI_NAME_FLAGS; pwszText:LPWSTR; cchText:DWORD):HRESULT;StdCall;
  2039. function GetPropertyDescription(const fmtid:FMTID; pid:PROPID; pwszText:LPWSTR; cchText:DWORD):HRESULT;StdCall;
  2040. function GetDefaultWidth(const fmtid:FMTID; pid:PROPID; pcxChars:pULONG):HRESULT;StdCall;
  2041. function GetFlags(const fmtid:FMTID; pid:PROPID; pFlags:pPROPERTYUI_FLAGS):HRESULT;StdCall;
  2042. function FormatForDisplay(const fmtid:FMTID; pid:PROPID; pvar:pPROPVARIANT; flags:PROPERTYUI_FORMAT_FLAGS;wszText:LPWSTR;cchText:DWORD):HRESULT;StdCall;
  2043. function GetHelpInfo(const fmtid:FMTID; pid:PROPID; pwszHelpFile:LPWSTR; cch:DWORD; puHelpID:pUINT):HRESULT;StdCall;
  2044. end;
  2045. }
  2046. ICategoryProvider =interface(IUnknown)
  2047. ['{9af64809-5864-4c26-a720-c1f78c086ee3}']
  2048. function CanCategorizeOnSCID(pscid:pSHCOLUMNID):HRESULT;StdCall;
  2049. function GetDefaultCategory(pguid:pGUID; pscid:pSHCOLUMNID):HRESULT;StdCall;
  2050. function GetCategoryForSCID(pscid:pSHCOLUMNID; pguid:pGUID):HRESULT;StdCall;
  2051. function EnumCategories(out penum:IEnumGUID):HRESULT;StdCall;
  2052. function GetCategoryName(pguid:pGUID; pszName:LPWSTR; cch:UINT):HRESULT;StdCall;
  2053. function CreateCategory(pguid:pGUID; riid:REFIID; ppv:Ppointer):HRESULT;StdCall;
  2054. end;
  2055. ICategorizer =Interface(IUnknown)
  2056. ['{a3b14589-9174-49a8-89a3-06a1ae2b9ba7}']
  2057. function GetDescription(pszDesc:LPWSTR; cch:UINT):HRESULT;StdCall;
  2058. function GetCategory(cidl:UINT; var apidl:LPCITEMIDLIST; rgCategoryIds:pDWORD):HRESULT;StdCall;
  2059. function GetCategoryInfo(dwCategoryId:DWORD; pci:pCATEGORY_INFO):HRESULT;StdCall;
  2060. function CompareCategory(csfFlags:CATSORT_FLAGS; dwCategoryId1:DWORD; dwCategoryId2:DWORD):HRESULT;StdCall;
  2061. end;
  2062. IQueryInfo = Interface(IUnknown)
  2063. ['{00021500-0000-0000-c000-000000000046}']
  2064. function GetInfoTip (dwFlags:DWord;var pwsztip:pwchar):HResult;StdCall;
  2065. function GetInfoFlags (var dwflags:dword):HResult;Stdcall;
  2066. end;
  2067. ITaskbarList = interface(IUnknown)
  2068. ['{56FDF342-FD6D-11d0-958A-006097C9A090}']
  2069. function HrInit: HResult; stdcall;
  2070. function AddTab(hwnd: HWND): HResult; stdcall;
  2071. function DeleteTab(hwnd: HWND): HResult; stdcall;
  2072. function ActivateTab(hwnd: HWND): HResult; stdcall;
  2073. function SetActiveAlt(hwnd: HWND): HResult; stdcall;
  2074. end;
  2075. ITaskbarList2 = interface(ITaskbarList)
  2076. ['{602D4995-B13A-429b-A66E-1935E44F4317}']
  2077. function MarkFullscreenWindow(hwnd: HWND; fFullscreen: BOOL): HResult; stdcall;
  2078. end;
  2079. const
  2080. // enum THUMBBUTTONFLAGS
  2081. THBF_ENABLED = 0;
  2082. THBF_DISABLED = $1;
  2083. THBF_DISMISSONCLICK = $2;
  2084. THBF_NOBACKGROUND = $4;
  2085. THBF_HIDDEN = $8;
  2086. THBF_NONINTERACTIVE = $10;
  2087. type
  2088. THUMBBUTTONFLAGS = DWord;
  2089. const
  2090. // enum THUMBBUTTONMASK
  2091. THB_BITMAP = $1;
  2092. THB_ICON = $2;
  2093. THB_TOOLTIP = $4;
  2094. THB_FLAGS = $8;
  2095. type
  2096. THUMBBUTTONMASK = DWord;
  2097. THUMBBUTTON = packed record
  2098. dwMask: THUMBBUTTONMASK;
  2099. iId: UINT;
  2100. iBitmap: UINT;
  2101. hIcon: HICON;
  2102. szTip: array[0..259] of WCHAR;
  2103. dwFlags: THUMBBUTTONFLAGS;
  2104. end;
  2105. LPTHUMBBUTTON = ^THUMBBUTTON;
  2106. const
  2107. THBN_CLICKED = $1800;
  2108. // enum TBPFLAG
  2109. TBPF_NOPROGRESS = 0;
  2110. TBPF_INDETERMINATE = $1;
  2111. TBPF_NORMAL = $2;
  2112. TBPF_ERROR = $4;
  2113. TBPF_PAUSED = $8;
  2114. type
  2115. TBPFLAG = DWord;
  2116. ITaskBarList3 = interface(ITaskbarList2)
  2117. ['{ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf}']
  2118. function SetProgressValue(hwnd: HWND; ullCompleted: ULONGLONG; ullTotal: ULONGLONG): HResult; stdcall;
  2119. function SetProgressState(hwnd: HWND; tbpFlags: TBPFLAG): HResult; stdcall;
  2120. function RegisterTab(hwndTab: HWND; hwndMDI: HWND): HResult; stdcall;
  2121. function UnregisterTab(hwndTab: HWND): HResult; stdcall;
  2122. function SetTabOrder(hwndTab: HWND; hwndInsertBefore: HWND): HResult; stdcall;
  2123. function SetTabActive(hwndTab: HWND; hwndMDI: HWND; dwReserved: DWORD): HResult; stdcall;
  2124. function ThumbBarAddButtons(hwnd: HWND; cButtons: UINT; pButton: LPTHUMBBUTTON): HResult; stdcall;
  2125. function ThumbBarUpdateButtons(hwnd: HWND; cButtons: UINT; pButton: LPTHUMBBUTTON): HResult; stdcall;
  2126. function ThumbBarSetImageList(hwnd: HWND; himl: HIMAGELIST): HResult; stdcall;
  2127. function SetOverlayIcon(hwnd: HWND; hIcon: HICON; pszDescription: LPCWSTR): HResult; stdcall;
  2128. function SetThumbnailTooltip(hwnd: HWND; pszTip: LPCWSTR): HResult; stdcall;
  2129. function SetThumbnailClip(hwnd: HWND; prcClip: PRECT): HResult; stdcall;
  2130. end;
  2131. const
  2132. // enum STPFLAG
  2133. STPF_NONE = 0;
  2134. STPF_USEAPPTHUMBNAILALWAYS = $1;
  2135. STPF_USEAPPTHUMBNAILWHENACTIVE = $2;
  2136. STPF_USEAPPPEEKALWAYS = $4;
  2137. STPF_USEAPPPEEKWHENACTIVE = $8;
  2138. type
  2139. STPFLAG = DWord;
  2140. ITaskbarList4 = interface(ITaskbarList3)
  2141. ['{c43dc798-95d1-4bea-9030-bb99e2983a1a}']
  2142. function SetTabProperties(hwndTab: HWND; stpFlags: STPFLAG): HResult; stdcall;
  2143. end;
  2144. const
  2145. // GETPROPERTYSTOREFLAGS enum
  2146. GPS_DEFAULT = 0;
  2147. GPS_HANDLERPROPERTIESONLY = $1;
  2148. GPS_READWRITE = $2;
  2149. GPS_TEMPORARY = $4;
  2150. GPS_FASTPROPERTIESONLY = $8;
  2151. GPS_OPENSLOWITEM = $10;
  2152. GPS_DELAYCREATION = $20;
  2153. GPS_BESTEFFORT = $40;
  2154. GPS_NO_OPLOCK = $80;
  2155. GPS_MASK_VALID = $ff;
  2156. type
  2157. GETPROPERTYSTOREFLAGS = DWord;
  2158. _tagpropertykey = packed record
  2159. fmtid: TGUID;
  2160. pid: DWORD;
  2161. end;
  2162. PROPERTYKEY = _tagpropertykey;
  2163. REFPROPERTYKEY = ^PROPERTYKEY;
  2164. REFPROPVARIANT = ^TPROPVARIANT;
  2165. IPropertyStore = interface(IUnknown)
  2166. ['{886d8eeb-8cf2-4446-8d02-cdba1dbdcf99}']
  2167. function GetCount(out cProps: DWORD): HResult; stdcall;
  2168. function GetAt(iProp: DWORD; out pkey: PROPERTYKEY): HResult; stdcall;
  2169. function GetValue(key: REFPROPERTYKEY; out pv: PROPVARIANT): HResult; stdcall;
  2170. function SetValue(key: REFPROPERTYKEY; propvar: REFPROPVARIANT): HResult; stdcall;
  2171. function Commit: HResult; stdcall;
  2172. end;
  2173. IPropertyDescriptionList = interface(IUnknown)
  2174. ['{1f9fc1d0-c39b-4b26-817f-011967d3440e}']
  2175. function GetCount(out pcElem: UINT): HResult; stdcall;
  2176. function GetAt(iElem: UINT; const riid: REFIID; out ppv): HResult; stdcall;
  2177. end;
  2178. IShellLinkA = Interface(IUnknown)
  2179. ['{000214EE-0000-0000-C000-000000000046}']
  2180. function GetPath(pszFile:LPSTR; cch:longint;var pfd:WIN32_FIND_DATA; fFlags:DWORD):HRESULT;StdCall;
  2181. function GetIDList(var ppidl:LPITEMIDLIST):HRESULT;StdCall;
  2182. function SetIDList(pidl:LPCITEMIDLIST):HRESULT;StdCall;
  2183. function GetDescription(pszName:LPSTR; cch:longint):HRESULT;StdCall;
  2184. function SetDescription(pszName:LPCSTR):HRESULT;StdCall;
  2185. function GetWorkingDirectory(pszDir:LPSTR; cch:longint):HRESULT;StdCall;
  2186. function SetWorkingDirectory(pszDir:LPCSTR):HRESULT;StdCall;
  2187. function GetArguments(pszArgs:LPSTR; cch:longint):HRESULT;StdCall;
  2188. function SetArguments(pszArgs:LPCSTR):HRESULT;StdCall;
  2189. function GetHotkey(var pwHotkey:WORD):HRESULT;StdCall;
  2190. function SetHotkey(wHotkey:WORD):HRESULT;StdCall;
  2191. function GetShowCmd(var piShowCmd:longint):HRESULT;StdCall;
  2192. function SetShowCmd(iShowCmd:longint):HRESULT;StdCall;
  2193. function GetIconLocation(pszIconPath:LPSTR; cch:longint;var iIcon:longint):HRESULT;StdCall;
  2194. function SetIconLocation(pszIconPath:LPCSTR; iIcon:longint):HRESULT;StdCall;
  2195. function SetRelativePath(pszPathRel:LPCSTR; dwReserved:DWORD):HRESULT;StdCall;
  2196. function Resolve(hwnd:HWND; fFlags:DWORD):HRESULT;StdCall;
  2197. function SetPath(pszFile:LPCSTR):HRESULT;StdCall;
  2198. end;
  2199. IShellLinkW = interface (IUnknown)
  2200. ['{000214F9-0000-0000-C000-000000000046}']
  2201. function GetPath(pszFile:LPWSTR; cch:longint; pfd:pWIN32_FIND_DATAW; fFlags:DWORD):HRESULT;StdCall;
  2202. function GetIDList(ppidl:pLPITEMIDLIST):HRESULT;StdCall;
  2203. function SetIDList(pidl:LPCITEMIDLIST):HRESULT;StdCall;
  2204. function GetDescription(pszName:LPWSTR; cch:longint):HRESULT;StdCall;
  2205. function SetDescription(pszName:LPCWSTR):HRESULT;StdCall;
  2206. function GetWorkingDirectory(pszDir:LPWSTR; cch:longint):HRESULT;StdCall;
  2207. function SetWorkingDirectory(pszDir:LPCWSTR):HRESULT;StdCall;
  2208. function GetArguments(pszArgs:LPWSTR; cch:longint):HRESULT;StdCall;
  2209. function SetArguments(pszArgs:LPCWSTR):HRESULT;StdCall;
  2210. function GetHotkey(pwHotkey:pWORD):HRESULT;StdCall;
  2211. function SetHotkey(wHotkey:WORD):HRESULT;StdCall;
  2212. function GetShowCmd(piShowCmd:plongint):HRESULT;StdCall;
  2213. function SetShowCmd(iShowCmd:longint):HRESULT;StdCall;
  2214. function GetIconLocation(pszIconPath:LPWSTR; cch:longint; piIcon:plongint):HRESULT;StdCall;
  2215. function SetIconLocation(pszIconPath:LPCWSTR; iIcon:longint):HRESULT;StdCall;
  2216. function SetRelativePath(pszPathRel:LPCWSTR; dwReserved:DWORD):HRESULT;StdCall;
  2217. function Resolve(hwnd:HWND; fFlags:DWORD):HRESULT;StdCall;
  2218. function SetPath(pszFile:LPCWSTR):HRESULT;StdCall;
  2219. end;
  2220. IShellLink = IShellLinkA;
  2221. PIShellItem= ^IShellItem;
  2222. IShellItem = interface(IUnknown)
  2223. ['{43826d1e-e718-42ee-bc55-a1e261c37bfe}']
  2224. function BindToHandler(pbc:IBindCTX;bhid:PGUID;RIID:PIID;ppv:ppointer):HResult;Stdcall;
  2225. function GetParent(ppsi:PISHellItem):HResult;Stdcall;
  2226. function GetDisplayName(sigdnname:SIGDN;ppszName:LPWSTR):HResult; Stdcall;
  2227. function GetAttributes(sfgaomask:SFGAOF;psfgaoAttribs:PSFGAOF):HResult;Stdcall;
  2228. function Compare(psi:IShellItem;hint:SICHINTF;piorder:PINT):HResult; Stdcall;
  2229. end;
  2230. IEnumShellItems = interface(IUnknown)
  2231. ['{70629033-e363-4a28-a567-0db78006e6d7}']
  2232. function Next(celt: ULONG; out rgelt: IShellItem; var pceltFetched: ULONG): HResult; stdcall;
  2233. function Skip(celt: ULONG): HResult; stdcall;
  2234. function Reset: HResult; stdcall;
  2235. function Clone(out ppenum: IEnumShellItems): HResult; stdcall;
  2236. end;
  2237. const
  2238. // SIATTRIBFLAGS enum
  2239. SIATTRIBFLAGS_AND = $1;
  2240. SIATTRIBFLAGS_OR = $2;
  2241. SIATTRIBFLAGS_APPCOMPAT = $3;
  2242. SIATTRIBFLAGS_MASK = $3;
  2243. SIATTRIBFLAGS_ALLITEMS = $4000;
  2244. type
  2245. SIATTRIBFLAGS = DWord;
  2246. IShellItemArray = interface(IUnknown)
  2247. ['{b63ea76d-1f85-456f-a19c-48159efa858b}']
  2248. function BindToHandler(pbc: IBindCtx; const bhid: TGUID; const riid: REFIID; out ppvOut): HResult; stdcall;
  2249. function GetPropertyStore(flags: GETPROPERTYSTOREFLAGS; const riid: REFIID; out ppv): HResult; stdcall;
  2250. function GetPropertyDescriptionList(keyType: REFPROPERTYKEY; const riid: REFIID; out ppv): HResult; stdcall;
  2251. function GetAttributes(AttribFlags: SIATTRIBFLAGS; sfgaoMask: SFGAOF; var psfgaoAttribs: SFGAOF): HResult; stdcall;
  2252. function GetCount(var pdwNumItems: DWORD): HResult; stdcall;
  2253. function GetItemAt(dwIndex: DWORD; var ppsi: IShellItem): HResult; stdcall;
  2254. function EnumItems(var ppenumShellItems: IEnumShellItems): HResult; stdcall;
  2255. end;
  2256. IModalWindow = Interface(IUnknown)
  2257. ['{b4db1657-70d7-485e-8e3e-6fcb5a5c1802}']
  2258. function Show(hwndparent:HWND):HResult;StdCall;
  2259. end;
  2260. IShellItemFilter = Interface(IUnknown)
  2261. ['{2659B475-EEB8-48b7-8F07-B378810F48CF}']
  2262. function IncludeItem(psi:IShellItem):HResult;StdCall;
  2263. function GetEnumFlagsForItem(psi:IShellItem;pgrfflags :PSHCONTF):HRESULT;Stdcall;
  2264. end;
  2265. IFileDialog = Interface;
  2266. IFileDialogEvents = Interface(IUnknown)
  2267. ['{973510db-7d7f-452b-8975-74a85828d354}']
  2268. function OnFileOk (pfd:IFileDialog):HResult; Stdcall;
  2269. function OnFolderChanging (pfd:IFileDialog;psifolder:IShellItem):HResult; Stdcall;
  2270. function OnFolderChange (pfd:IFileDialog):HResult; Stdcall;
  2271. function OnSelectionChange(pfd:IFileDialog):HResult; Stdcall;
  2272. function OnShareViolation (pfd:IFileDialog;psi:IShellItem;pResponse :pFDE_SHAREVIOLATION_RESPONSE):HResult; Stdcall;
  2273. function OnTypeChange (pfd:IFileDialog):HResult; Stdcall;
  2274. function OnOverwrite (pfd:IFileDialog;psi:IShellItem;pResponse :pFDE_OVERWRITE_RESPONSE):HResult; Stdcall;
  2275. end;
  2276. IFileDialog = Interface(IModalWindow)
  2277. ['{42f85136-db7e-439c-85f1-e4075d135fc8}']
  2278. function SetFileTypes(cFileTypes:UINT;rgFilterSpec:pCOMDLG_FILTERSPEC):HRESULT;Stdcall;
  2279. function SetFileTypeIndex(iFileType:UINT):HRESULT;Stdcall;
  2280. function GetFileTypeIndex(piFileType:pUINT):HRESULT;Stdcall;
  2281. function Advise(pdfde:IFileDialogEvents;pdwcookie:PDWORD):HRESULT;Stdcall;
  2282. function unadvise(dwCookie:DWORD):HRESULT;Stdcall;
  2283. function SetOptions(fos:FILEOPENDIALOGOPTIONS):HRESULT;Stdcall;
  2284. function GetOptions(pfos:pFILEOPENDIALOGOPTIONS):HRESULT;Stdcall;
  2285. function SetDefaultFolder(psi:IShellItem):HRESULT;Stdcall;
  2286. function SetFolder(psi:IShellItem):HRESULT;Stdcall;
  2287. function Getfolder(ppsi:pIShellItem):HRESULT;Stdcall;
  2288. function GetCurrentSelection(ppsi:pIShellItem):HRESULT;Stdcall;
  2289. function SetFileName(pszName:LPCWSTR):HRESULT;Stdcall;
  2290. function GetFileName(pszName:pLPWSTR):HRESULT;Stdcall;
  2291. function SetTitle(pszTitle:LPCWSTR):HRESULT;Stdcall;
  2292. function SetOkButtonLabel(pszText:LPCWSTR):HRESULT;Stdcall;
  2293. function SetFileNameLabel(pszLabel:LPCWSTR):HRESULT;Stdcall;
  2294. function GetResult(ppsi:pIShellItem):HRESULT;Stdcall;
  2295. function AddPlace(psi:IShellItem;fdap:FDAP):HRESULT;Stdcall;
  2296. function SetDefaultExtension(pszDefaultExtension:LPCWSTR):HRESULT;Stdcall;
  2297. function Close(hr:HRESULT):HRESULT;Stdcall;
  2298. function SetClientGuid(GUID:PGUID):HRESULT;Stdcall;
  2299. function ClearClientData:HRESULT;Stdcall;
  2300. function SetFilter(pfilter:IShellItemFilter):HRESULT;Stdcall;
  2301. end;
  2302. IFileOperationProgressSink = interface(IUnknown)
  2303. ['{04b0f1a7-9490-44bc-96e1-4296a31252e2}']
  2304. function StartOperations: HResult; stdcall;
  2305. function FinishOperations(hrResult: HResult): HResult; stdcall;
  2306. function PreRenameItem(dwFlags: DWORD; psiItem: IShellItem; pszNewName: LPCWSTR): HResult; stdcall;
  2307. function PostRenameItem(dwFlags: DWORD; psiItem: IShellItem; pszNewName: LPCWSTR; hrRename: HRESULT; psiNewlyCreated: IShellItem): HResult; stdcall;
  2308. function PreMoveItem(dwFlags: DWORD; psiItem: IShellItem; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR): HResult; stdcall;
  2309. function PostMoveItem(dwFlags: DWORD; psiItem: IShellItem; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR; hrMove: HRESULT; psiNewlyCreated: IShellItem): HResult; stdcall;
  2310. function PreCopyItem(dwFlags: DWORD; psiItem: IShellItem; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR): HResult; stdcall;
  2311. function PostCopyItem(dwFlags: DWORD; psiItem: IShellItem; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR; hrCopy: HRESULT; psiNewlyCreated: IShellItem): HResult; stdcall;
  2312. function PreDeleteItem(dwFlags: DWORD; psiItem: IShellItem): HResult; stdcall;
  2313. function PostDeleteItem(dwFlags: DWORD; psiItem: IShellItem; hrDelete: HRESULT; psiNewlyCreated: IShellItem): HResult; stdcall;
  2314. function PreNewItem(dwFlags: DWORD; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR): HResult; stdcall;
  2315. function PostNewItem(dwFlags: DWORD; psiDestinationFolder: IShellItem; pszNewName: LPCWSTR; pszTemplateName: LPCWSTR; dwFileAttributes: DWORD; hrNew: HRESULT; psiNewItem: IShellItem): HResult; stdcall;
  2316. function UpdateProgress(iWorkTotal: UINT; iWorkSoFar: UINT): HResult; stdcall;
  2317. function ResetTimer: HResult; stdcall;
  2318. function PauseTimer: HResult; stdcall;
  2319. function ResumeTimer: HResult; stdcall;
  2320. end;
  2321. IFileSaveDialog = interface(IFileDialog)
  2322. ['{84bccd23-5fde-4cdb-aea4-af64b83d78ab}']
  2323. function SetSaveAsItem(psi: IShellItem): HResult; stdcall;
  2324. function SetProperties(pStore: IPropertyStore): HResult; stdcall;
  2325. function SetCollectedProperties(pList: IPropertyDescriptionList; fAppendDefault: BOOL): HResult; stdcall;
  2326. function GetProperties(var ppStore: IPropertyStore): HResult; stdcall;
  2327. function ApplyProperties(psi: IShellItem; pStore: IPropertyStore; hwnd: HWND; pSink: IFileOperationProgressSink): HResult; stdcall;
  2328. end;
  2329. IFileOpenDialog = interface(IFileDialog)
  2330. ['{d57c7288-d4ad-4768-be02-9d969532d960}']
  2331. function GetResults(var ppenum: IShellItemArray): HResult; stdcall;
  2332. function GetSelectedItems(var ppsai: IShellItemArray): HResult; stdcall;
  2333. end;
  2334. const
  2335. // CDCONTROLSTATEF enum
  2336. CDCS_INACTIVE = 0;
  2337. CDCS_ENABLED = $1;
  2338. CDCS_VISIBLE = $2;
  2339. CDCS_ENABLEDVISIBLE = $3;
  2340. type
  2341. CDCONTROLSTATEF = DWord;
  2342. IFileDialogCustomize = interface(IUnknown)
  2343. ['{e6fdd21a-163f-4975-9c8c-a69f1ba37034}']
  2344. function EnableOpenDropDown(dwIDCtl: DWORD): HResult; stdcall;
  2345. function AddMenu(dwIDCtl: DWORD; pszLabel: LPCWSTR): HResult; stdcall;
  2346. function AddPushButton(dwIDCtl: DWORD; pszLabel: LPCWSTR): HResult; stdcall;
  2347. function AddComboBox(dwIDCtl: DWORD): HResult; stdcall;
  2348. function AddRadioButtonList(dwIDCtl: DWORD): HResult; stdcall;
  2349. function AddCheckButton(dwIDCtl: DWORD; pszLabel: LPCWSTR; bChecked: BOOL): HResult; stdcall;
  2350. function AddEditBox(dwIDCtl: DWORD; pszText: LPCWSTR): HResult; stdcall;
  2351. function AddSeparator(dwIDCtl: DWORD): HResult; stdcall;
  2352. function AddText(dwIDCtl: DWORD; pszText: LPCWSTR): HResult; stdcall;
  2353. function SetControlLabel(dwIDCtl: DWORD; pszLabel: LPCWSTR): HResult; stdcall;
  2354. function GetControlState(dwIDCtl: DWORD; out pdwState: CDCONTROLSTATEF): HResult; stdcall;
  2355. function SetControlState(dwIDCtl: DWORD; dwState: CDCONTROLSTATEF): HResult; stdcall;
  2356. function GetEditBoxText(dwIDCtl: DWORD; out ppszText: WCHAR): HResult; stdcall;
  2357. function SetEditBoxText(dwIDCtl: DWORD; pszText: LPCWSTR): HResult; stdcall;
  2358. function GetCheckButtonState(dwIDCtl: DWORD; out pbChecked: BOOL): HResult; stdcall;
  2359. function SetCheckButtonState(dwIDCtl: DWORD; bChecked: BOOL): HResult; stdcall;
  2360. function AddControlItem(dwIDCtl: DWORD; dwIDItem: DWORD; pszLabel: LPCWSTR): HResult; stdcall;
  2361. function RemoveControlItem(dwIDCtl: DWORD; dwIDItem: DWORD): HResult; stdcall;
  2362. function RemoveAllControlItems(dwIDCtl: DWORD): HResult; stdcall;
  2363. function GetControlItemState(dwIDCtl: DWORD; dwIDItem: DWORD; out pdwState: CDCONTROLSTATEF): HResult; stdcall;
  2364. function SetControlItemState(dwIDCtl: DWORD; dwIDItem: DWORD; dwState: CDCONTROLSTATEF): HResult; stdcall;
  2365. function GetSelectedControlItem(dwIDCtl: DWORD; out pdwIDItem: DWORD): HResult; stdcall;
  2366. function SetSelectedControlItem(dwIDCtl: DWORD; dwIDItem: DWORD): HResult; stdcall;
  2367. function StartVisualGroup(dwIDCtl: DWORD; pszLabel: LPCWSTR): HResult; stdcall;
  2368. function EndVisualGroup: HResult; stdcall;
  2369. function MakeProminent(dwIDCtl: DWORD): HResult; stdcall;
  2370. function SetControlItemText(dwIDCtl: DWORD; dwIDItem: DWORD; pszLabel: LPCWSTR): HResult; stdcall;
  2371. end;
  2372. IFileDialogControlEvents = interface(IUnknown)
  2373. ['{36116642-D713-4b97-9B83-7484A9D00433}']
  2374. function OnItemSelected(pfdc: IFileDialogCustomize; dwIDCtl: DWORD; dwIDItem: DWORD): HResult; stdcall;
  2375. function OnButtonClicked(pfdc: IFileDialogCustomize; dwIDCtl: DWORD): HResult; stdcall;
  2376. function OnCheckButtonToggled(pfdc: IFileDialogCustomize; dwIDCtl: DWORD; bChecked: BOOL): HResult; stdcall;
  2377. function OnControlActivating(pfdc: IFileDialogCustomize; dwIDCtl: DWORD): HResult; stdcall;
  2378. end;
  2379. IShellExtInit = Interface(IUnknown)
  2380. ['{000214E8-0000-0000-C000-000000000046}']
  2381. function Initialize(pidlfolder: LPCITEMIDLIST; pdtobj : IDataObject;hkeyProgID : HKEY):HResult; stdcall;
  2382. end;
  2383. IShellIcon = interface(IUnknown)
  2384. ['{000214E5-0000-0000-C000-000000000046}']
  2385. function GetIconOf(pidl: LPCITEMIDLIST; flags: UINT; out lpIconIndex: longint):HResult; stdcall;
  2386. end;
  2387. function SHGetMalloc(out ppmalloc: IMalloc):HResult;StdCall; external 'shell32' name 'SHGetMalloc';
  2388. function SHGetDesktopFolder(out ppshf:IShellFolder):HResult;StdCall; external 'shell32' name 'SHGetDesktopFolder';
  2389. type LPPCITEMIDLIST = ^LPCITEMIDLIST;
  2390. function SHOpenFolderAndSelectItems(pidlFolder:LPCITEMIDLIST;cidl:UINT;var apidl: LPCITEMIDLIST; dwflags: DWORD):HResult;StdCall; external 'shell32' name 'SHOpenFolderAndSelectItems';
  2391. function SHOpenFolderAndSelectItems(pidlFolder:LPCITEMIDLIST;cidl:UINT; apidl: LPPCITEMIDLIST; dwflags: DWORD):HResult;StdCall; external 'shell32' name 'SHOpenFolderAndSelectItems';
  2392. //function SHCreateShellItem( pidlParent:LPCITEMIDLIST; psfparent:IShellFolder; pidl: LPCITEMIDLIST pidl; out ppsi: IShellItem):HResult;StdCall; external 'shell32' name 'SHCreateShellItem';
  2393. function SHGetSpecialFolderLocation( hwnd:HWND; csidl:longint;out ppidl: LPITEMIDLIST):HResult;StdCall; external 'shell32' name 'SHGetSpecialFolderLocation';
  2394. procedure SHFlushSFCache;StdCall; external 'shell32' name 'SHFlushSFCache';
  2395. function SHCloneSpecialIDList(HWND:hwnd; csidl:longint;fcreate:BOOL):LPITEMIDLIST; StdCall; external 'shell32' name 'SHCloneSpecialIDList';
  2396. function SHGetSpecialFolderPathA(HWND:hwnd;pszpath: LPSTR; csidl:Longint;fcreate:bool):bool;StdCall; external 'shell32' name 'SHGetSpecialFolderPathA';
  2397. function SHGetSpecialFolderPathW(HWND:hwnd;pszpath: LPWSTR; csidl:Longint;fcreate:bool):bool;StdCall; external 'shell32' name 'SHGetSpecialFolderPathW';
  2398. {$ifdef unicode}
  2399. function SHGetSpecialFolderPath(HWND:hwnd;pszpath: LPWSTR; csidl:Longint;fcreate:bool):bool;StdCall; external 'shell32' name 'SHGetSpecialFolderPathW';
  2400. {$else}
  2401. function SHGetSpecialFolderPath(HWND:hwnd;pszpath: LPSTR; csidl:Longint;fcreate:bool):bool;StdCall; external 'shell32' name 'SHGetSpecialFolderPathA';
  2402. {$endif}
  2403. function SHGetFolderPathA(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszpath:lpstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathA';
  2404. function SHGetFolderPathW(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszpath:lpWstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathW';
  2405. {$ifdef unicode}
  2406. function SHGetFolderPath(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszpath:lpWstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathW';
  2407. {$else}
  2408. function SHGetFolderPath(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszpath:lpstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathA';
  2409. {$endif}
  2410. function SHGetFolderPathAndSubDirA(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszsubdir:LPCStr;pszpath:lpstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathAndSubDirA';
  2411. function SHGetFolderPathAndSubDirW(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszsubdir:LPCWStr;pszpath:lpWstr):HResult; external 'shell32' name 'SHGetFolderPathAndSubDirW';
  2412. {$ifdef unicode}
  2413. function SHGetFolderPathAndSubDir (HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszsubdir:LPCWStr;pszpath:lpWstr):HResult; external 'shell32' name 'SHGetFolderPathAndSubDirW';
  2414. {$else}
  2415. function SHGetFolderPathAndSubDir (HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;pszsubdir:LPCStr;pszpath:lpstr):HResult;StdCall; external 'shell32' name 'SHGetFolderPathAndSubDirA';
  2416. {$endif}
  2417. function SHFolderLocation(HWND:hwnd;csidl:longint;htoken:THandle;dwflags:dword;var ppidl:LPITEMIDLIST):HRESULT;StdCall; external 'shell32' name 'SHFolderLocation';
  2418. function SHGetKnownFolderPath(const rfid:KNOWNFOLDERID;dwFlags:DWORD;hToken:THandle;Out ppszPath:PWSTR):HRESULT;StdCall; external 'shell32' name 'SHGetKnownFolderPath';
  2419. Const External_Library = 'shell32';
  2420. function SHAlloc(cb:SIZE_T):pointer;StdCall;external External_library name 'SHAlloc';
  2421. procedure SHFree(pv:pointer);StdCall;external External_library name 'SHFree';
  2422. function SHGetIconOverlayIndexA(pszIconPath:lpcstr; iIconIndex:Longint):Longint;StdCall;external External_library name 'SHGetIconOverlayIndexA';
  2423. function SHGetIconOverlayIndexW(pszIconPath:lpcwstr; iIconIndex:Longint):Longint;StdCall;external External_library name 'SHGetIconOverlayIndexW';
  2424. {$ifdef Unicode}
  2425. function SHGetIconOverlayIndex (pszIconPath:lpcwstr; iIconIndex:Longint):Longint;StdCall;external External_library name 'SHGetIconOverlayIndexW';
  2426. {$else}
  2427. function SHGetIconOverlayIndex (pszIconPath:lpcstr; iIconIndex:Longint):Longint;StdCall;external External_library name 'SHGetIconOverlayIndexA';
  2428. {$endif}
  2429. function SHGetPathFromIDListA(pidl:LPCITEMIDLIST; pszPath:LPStr):BOOL;StdCall;external External_library name 'SHGetPathFromIDListA';
  2430. function SHGetPathFromIDListW(pidl:LPCITEMIDLIST; pszPath:LPWStr):BOOL;StdCall;external External_library name 'SHGetPathFromIDListW';
  2431. {$ifdef unicode}
  2432. function SHGetPathFromIDList (pidl:LPCITEMIDLIST; pszPath:LPWStr):BOOL;StdCall;external External_library name 'SHGetPathFromIDListW';
  2433. {$else}
  2434. function SHGetPathFromIDList (pidl:LPCITEMIDLIST; pszPath:LPStr):BOOL;StdCall;external External_library name 'SHGetPathFromIDListA';
  2435. {$endif}
  2436. function SHCreateDirectory(hwnd:HWND; pszPath:lpcwstr):Longint;StdCall;external External_library name 'SHCreateDirectory';
  2437. function SHCreateDirectoryExA(hwnd:HWND; pszPath:lpcstr; psa:LPSECURITY_ATTRIBUTES):Longint;StdCall;external External_library name 'SHCreateDirectoryExA';
  2438. function SHCreateDirectoryExW(hwnd:HWND; pszPath:lpcwstr; psa:LPSECURITY_ATTRIBUTES):Longint;StdCall;external External_library name 'SHCreateDirectoryExW';
  2439. {$ifdef unicode}
  2440. function SHCreateDirectoryEx (hwnd:HWND; pszPath:lpcwstr; psa:LPSECURITY_ATTRIBUTES):Longint;StdCall;external External_library name 'SHCreateDirectoryExW';
  2441. {$else}
  2442. function SHCreateDirectoryEx (hwnd:HWND; pszPath:lpcstr; psa:LPSECURITY_ATTRIBUTES):Longint;StdCall;external External_library name 'SHCreateDirectoryExA';
  2443. {$endif}
  2444. {
  2445. function SHOpenFolderAndSelectItems(pidlFolder:LPCITEMIDLIST; cidl:UINT; var apidl:LPCITEMIDLIST; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHOpenFolderAndSelectItems';
  2446. function SHCreateShellItem(pidlParent:LPCITEMIDLIST; psfParent:IShellFolder; pidl:LPCITEMIDLIST;out ppsi:IShellItem):HRESULT;StdCall;external External_library name 'SHCreateShellItem';
  2447. function SHGetSpecialFolderLocation(hwnd:HWND; csidl:Longint; var ppidl:LPITEMIDLIST):HRESULT;StdCall;external External_library name 'SHGetSpecialFolderLocation';
  2448. procedure SHFlushSFCache;StdCall;external External_library name 'SHFlushSFCache';
  2449. function SHCloneSpecialIDList(hwnd:HWND; csidl:Longint; fCreate:BOOL):LPITEMIDLIST;StdCall;external External_library name 'SHCloneSpecialIDList';
  2450. function SHGetSpecialFolderPathA(hwnd:HWND; pszPath:LPStr; csidl:Longint; fCreate:BOOL):BOOL;StdCall;external External_library name 'SHGetSpecialFolderPathA';
  2451. function SHGetSpecialFolderPathW(hwnd:HWND; pszPath:LPWStr; csidl:Longint; fCreate:BOOL):BOOL;StdCall;external External_library name 'SHGetSpecialFolderPathW';
  2452. function SHGetFolderLocation(hwnd:HWND; csidl:Longint; hToken:THANDLE; dwFlags:DWord;var ppidl:LPITEMIDLIST):HRESULT;StdCall;external External_library name 'SHGetFolderLocation';
  2453. }
  2454. function SHGetSetFolderCustomSettingsA(pfcs:LPSHFOLDERCUSTOMSETTINGSA; pszPath:lpcstr; dwReadWrite:DWord):HRESULT;StdCall;external External_library name 'SHGetSetFolderCustomSettingsA';
  2455. function SHGetSetFolderCustomSettingsW(pfcs:LPSHFOLDERCUSTOMSETTINGSW; pszPath:lpcwstr; dwReadWrite:DWord):HRESULT;StdCall;external External_library name 'SHGetSetFolderCustomSettingsW';
  2456. {$ifdef unicode}
  2457. function SHGetSetFolderCustomSettings (pfcs:LPSHFOLDERCUSTOMSETTINGSW; pszPath:lpcwstr; dwReadWrite:DWord):HRESULT;StdCall;external External_library name 'SHGetSetFolderCustomSettingsW';
  2458. {$else}
  2459. function SHGetSetFolderCustomSettings (pfcs:LPSHFOLDERCUSTOMSETTINGSA; pszPath:lpcstr; dwReadWrite:DWord):HRESULT;StdCall;external External_library name 'SHGetSetFolderCustomSettingsA';
  2460. {$endif}
  2461. function SHBrowseForFolderA(lpbi:LPBROWSEINFOA):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderA';
  2462. function SHBrowseForFolderW(lpbi:LPBROWSEINFOW):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderW';
  2463. function SHBrowseForFolderA(var lpbi:BROWSEINFOA):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderA';
  2464. function SHBrowseForFolderW(var lpbi:BROWSEINFOW):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderW';
  2465. {$ifdef unicode}
  2466. function SHBrowseForFolder (lpbi:LPBROWSEINFOW):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderW';
  2467. function SHBrowseForFolder (var lpbi:BROWSEINFOW):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderW';
  2468. {$else}
  2469. function SHBrowseForFolder (lpbi:LPBROWSEINFOA):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderA';
  2470. function SHBrowseForFolder (var lpbi:BROWSEINFOA):LPITEMIDLIST;StdCall;external External_library name 'SHBrowseForFolderA';
  2471. {$endif}
  2472. function SHLoadInProc(const rclsid:Tguid):HRESULT;StdCall;external External_library name 'SHLoadInProc';
  2473. function SHEnableServiceObject(const rclsid:Tguid; fEnable:BOOL):HRESULT;StdCall;external External_library name 'SHEnableServiceObject';
  2474. // function SHGetDesktopFolder(out ppshf:IShellFolder):HRESULT;StdCall;external External_library name 'SHGetDesktopFolder';
  2475. procedure SHChangeNotify(wEventId:LONG; uFlags:UINT; dwItem1:POINTER; dwItem2:POINTER);StdCall;external External_library name 'SHChangeNotify';
  2476. procedure SHAddToRecentDocs(uFlags:UINT; pv:POINTER);StdCall;external External_library name 'SHAddToRecentDocs';
  2477. function SHHandleUpdateImage(pidlExtra:LPCITEMIDLIST):Longint;StdCall;external External_library name 'SHHandleUpdateImage';
  2478. procedure SHUpdateImageA(pszHashItem:lpcstr; iIndex:Longint; uFlags:UINT; iImageIndex:Longint);StdCall;external External_library name 'SHUpdateImageA';
  2479. procedure SHUpdateImageW(pszHashItem:lpcwstr; iIndex:Longint; uFlags:UINT; iImageIndex:Longint);StdCall;external External_library name 'SHUpdateImageW';
  2480. {$ifdef Unicode}
  2481. procedure SHUpdateImage (pszHashItem:lpcwstr; iIndex:Longint; uFlags:UINT; iImageIndex:Longint);StdCall;external External_library name 'SHUpdateImageW';
  2482. {$else}
  2483. procedure SHUpdateImage (pszHashItem:lpcstr; iIndex:Longint; uFlags:UINT; iImageIndex:Longint);StdCall;external External_library name 'SHUpdateImageA';
  2484. {$endif}
  2485. function SHChangeNotifyRegister(hwnd:HWND; fSources:Longint; fEvents:LONG; wMsg:UINT; cEntries:Longint;
  2486. pshcne:PSHChangeNotifyEntry):ULONG;StdCall;external External_library name 'SHChangeNotifyRegister';
  2487. function SHChangeNotifyDeregister(ulID:ulong):BOOL;StdCall;external External_library name 'SHChangeNotifyDeregister';
  2488. function SHChangeNotification_Lock(hChangeNotification:THANDLE; dwProcessId:DWord; var pppidl:PLPITEMIDLIST; plEvent:PLONG):THANDLE;StdCall;external External_library name 'SHChangeNotification_Lock';
  2489. function SHChangeNotification_Unlock(hLock:THANDLE):BOOL;StdCall;external External_library name 'SHChangeNotification_Unlock';
  2490. function SHGetRealIDL(psf:IShellFolder; pidlSimple:LPCITEMIDLIST; var ppidlReal:LPITEMIDLIST):HRESULT;StdCall;external External_library name 'SHGetRealIDL';
  2491. function SHGetInstanceExplorer(out ppunk:IUnknown):HRESULT;StdCall;external External_library name 'SHGetInstanceExplorer';
  2492. function SHGetDataFromIDListA(psf:IShellFolder; pidl:LPCITEMIDLIST; nFormat:Longint; pv:pointer; cb:Longint):HRESULT;StdCall;external External_library name 'SHGetDataFromIDListA';
  2493. function SHGetDataFromIDListW(psf:IShellFolder; pidl:LPCITEMIDLIST; nFormat:Longint; pv:pointer; cb:Longint):HRESULT;StdCall;external External_library name 'SHGetDataFromIDListW';
  2494. {$ifdef Unicode}
  2495. function SHGetDataFromIDList (psf:IShellFolder; pidl:LPCITEMIDLIST; nFormat:Longint; pv:pointer; cb:Longint):HRESULT;StdCall;external External_library name 'SHGetDataFromIDListW';
  2496. {$else}
  2497. function SHGetDataFromIDList (psf:IShellFolder; pidl:LPCITEMIDLIST; nFormat:Longint; pv:pointer; cb:Longint):HRESULT;StdCall;external External_library name 'SHGetDataFromIDListA';
  2498. {$endif}
  2499. function RestartDialog(hwnd:HWND; lpPrompt:lpcwstr; dwReturn:DWord):Longint;StdCall;external External_library name 'RestartDialog';
  2500. function RestartDialogEx(hwnd:HWND; lpPrompt:lpcwstr; dwReturn:DWord; dwReasonCode:DWord):Longint;StdCall;external External_library name 'RestartDialogEx';
  2501. function SHCoCreateInstance(pszCLSID:lpcwstr; pclsid:PCLSID; pUnkOuter:IUnknown; constref riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCoCreateInstance';
  2502. // function CallCPLEntry16(hinst:HINSTANCE; lpfnEntry:TFARPROC16; hwndCPL:HWND; msg:UINT; lParam1:lparam; lParam2:lparam):LRESULT;StdCall;external External_library name 'CallCPLEntry16';
  2503. function SHCreateStdEnumFmtEtc(cfmt:UINT; afmt:array of TFORMATETC; var ppenumFormatEtc:IEnumFORMATETC):HRESULT;StdCall;external External_library name 'SHCreateStdEnumFmtEtc';
  2504. function SHDoDragDrop(hwnd:HWND; pdata:IDataObject; pdsrc:IDropSource; dwEffect:DWord; pdwEffect:PDWORD):HRESULT;StdCall;external External_library name 'SHDoDragDrop';
  2505. function DAD_SetDragImage(him:HIMAGELIST; pptOffset:PPOINT):BOOL;StdCall;external External_library name 'DAD_SetDragImage';
  2506. function DAD_DragEnterEx(hwndTarget:HWND; ptStart:TPOINT):BOOL;StdCall;external External_library name 'DAD_DragEnterEx';
  2507. function DAD_DragEnterEx2(hwndTarget:HWND; ptStart:TPOINT; pdtObject:IDataObject):BOOL;StdCall;external External_library name 'DAD_DragEnterEx2';
  2508. function DAD_ShowDragImage(fShow:BOOL):BOOL;StdCall;external External_library name 'DAD_ShowDragImage';
  2509. function DAD_DragMove(pt:TPOINT):BOOL;StdCall;external External_library name 'DAD_DragMove';
  2510. function DAD_DragLeave:BOOL;StdCall;external External_library name 'DAD_DragLeave';
  2511. function DAD_AutoScroll(hwnd:HWND; pad:PAUTO_SCROLL_DATA; pptNow:PPOINT):BOOL;StdCall;external External_library name 'DAD_AutoScroll';
  2512. function ReadCabinetState(lpState:LPCABINETSTATE; iSize:Longint):BOOL;StdCall;external External_library name 'ReadCabinetState';
  2513. function WriteCabinetState(lpState:LPCABINETSTATE):BOOL;StdCall;external External_library name 'WriteCabinetState';
  2514. function PathMakeUniqueName(pszUniqueName:LPWStr; cchMax:UINT; pszTemplate:lpcwstr; pszLongPlate:lpcwstr; pszDir:lpcwstr):BOOL;StdCall;external External_library name 'PathMakeUniqueName';
  2515. procedure PathQualify(psz:LPWStr);StdCall;external External_library name 'PathQualify';
  2516. function PathIsExe(pszPath:lpcwstr):BOOL;StdCall;external External_library name 'PathIsExe';
  2517. function PathIsSlowA(pszFile:lpcstr; dwAttr:DWord):BOOL;StdCall;external External_library name 'PathIsSlowA';
  2518. function PathIsSlowW(pszFile:lpcwstr; dwAttr:DWord):BOOL;StdCall;external External_library name 'PathIsSlowW';
  2519. {$ifdef Unicode}
  2520. function PathIsSlow (pszFile:lpcwstr; dwAttr:DWord):BOOL;StdCall;external External_library name 'PathIsSlowW';
  2521. {$else}
  2522. function PathIsSlow (pszFile:lpcstr; dwAttr:DWord):BOOL;StdCall;external External_library name 'PathIsSlowA';
  2523. {$endif}
  2524. function PathCleanupSpec(pszDir:lpcwstr; pszSpec:LPWStr):Longint;StdCall;external External_library name 'PathCleanupSpec';
  2525. function PathResolve(pszPath:LPWStr; dirs:array of lpcwstr; fFlags:UINT):Longint;StdCall;external External_library name 'PathResolve';
  2526. function GetFileNameFromBrowse(hwnd:HWND; pszFilePath:LPWStr; cbFilePath:UINT; pszWorkingDir:lpcwstr; pszDefExt:lpcwstr;
  2527. pszFilters:lpcwstr; pszTitle:lpcwstr):BOOL;StdCall;external External_library name 'GetFileNameFromBrowse';
  2528. function DriveType(iDrive:Longint):Longint;StdCall;external External_library name 'DriveType';
  2529. function RealDriveType(iDrive:Longint; fOKToHitNet:BOOL):Longint;StdCall;external External_library name 'RealDriveType';
  2530. function IsNetDrive(iDrive:Longint):Longint;StdCall;external External_library name 'IsNetDrive';
  2531. function Shell_MergeMenus(hmDst:HMENU; hmSrc:HMENU; uInsert:UINT; uIDAdjust:UINT; uIDAdjustMax:UINT;
  2532. uFlags:ULONG):UINT;StdCall;external External_library name 'Shell_MergeMenus';
  2533. function SHObjectProperties(hwnd:HWND; dwType:DWord; lpObject:lpcwstr; lpPage:lpcwstr):BOOL;StdCall;external External_library name 'SHObjectProperties';
  2534. function SHFormatDrive(hwnd:HWND; drive:UINT; fmtID:UINT; options:UINT):DWord;StdCall;external External_library name 'SHFormatDrive';
  2535. function ILClone(pidl:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILClone';
  2536. function ILGetNext(pidl:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILGetNext';
  2537. function ILGetSize(pidl:LPCITEMIDLIST):UINT;StdCall;external External_library name 'ILGetSize';
  2538. function ILFindLastID(pidl:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILFindLastID';
  2539. function ILRemoveLastID(pidl:LPITEMIDLIST):BOOL;StdCall;external External_library name 'ILRemoveLastID';
  2540. function ILAppendID(pidl:LPITEMIDLIST; pmkid:LPCSHITEMID; fAppend:BOOL):LPITEMIDLIST;StdCall;external External_library name 'ILAppendID';
  2541. procedure ILFree(pidl:LPITEMIDLIST);StdCall;external External_library name 'ILFree';
  2542. function ILCloneFirst(pidl:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILCloneFirst';
  2543. function ILIsEqual(pidl1:LPCITEMIDLIST; pidl2:LPCITEMIDLIST):BOOL;StdCall;external External_library name 'ILIsEqual';
  2544. function ILIsParent(pidl1:LPCITEMIDLIST; pidl2:LPCITEMIDLIST; fImmediate:BOOL):BOOL;StdCall;external External_library name 'ILIsParent';
  2545. function ILFindChild(pidlParent:LPCITEMIDLIST; pidlChild:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILFindChild';
  2546. function ILCombine(pidl1:LPCITEMIDLIST; pidl2:LPCITEMIDLIST):LPITEMIDLIST;StdCall;external External_library name 'ILCombine';
  2547. function ILLoadFromStream(pstm:IStream; var pidl:LPITEMIDLIST):HRESULT;StdCall;external External_library name 'ILLoadFromStream';
  2548. function ILSaveToStream(pstm:IStream; pidl:LPCITEMIDLIST):HRESULT;StdCall;external External_library name 'ILSaveToStream';
  2549. function ILCreateFromPathA(pszPath:lpcstr):LPITEMIDLIST;StdCall;external External_library name 'ILCreateFromPathA';
  2550. function ILCreateFromPathW(pszPath:lpcwstr):LPITEMIDLIST;StdCall;external External_library name 'ILCreateFromPathW';
  2551. {$ifdef Unicode}
  2552. function ILCreateFromPath(pszPath:lpcwstr):LPITEMIDLIST;StdCall;external External_library name 'ILCreateFromPathW';
  2553. {$else}
  2554. function ILCreateFromPath(pszPath:lpcstr):LPITEMIDLIST;StdCall;external External_library name 'ILCreateFromPathA';
  2555. {$endif}
  2556. function SHILCreateFromPath(szPath:lpcwstr;var ppidl:LPITEMIDLIST; rgfInOut:PDWORD):HRESULT;StdCall;external External_library name 'SHILCreateFromPath';
  2557. function OpenRegStream(hkey:HKEY; pszSubkey:lpcwstr; pszValue:lpcwstr; grfMode:DWord):IStream;StdCall;external External_library name 'OpenRegStream';
  2558. function SHFindFiles(pidlFolder:LPCITEMIDLIST; pidlSaveFile:LPCITEMIDLIST):BOOL;StdCall;external External_library name 'SHFindFiles';
  2559. procedure PathGetShortPath(pszLongPath:LPWStr);StdCall;external External_library name 'PathGetShortPath';
  2560. function PathYetAnotherMakeUniqueName(pszUniqueName:LPWStr; pszPath:lpcwstr; pszShort:lpcwstr; pszFileSpec:lpcwstr):BOOL;StdCall;external External_library name 'PathYetAnotherMakeUniqueName';
  2561. function Win32DeleteFile(pszPath:lpcwstr):BOOL;StdCall;external External_library name 'Win32DeleteFile';
  2562. function PathProcessCommand(lpSrc:lpcwstr; lpDest:LPWStr; iMax:Longint; dwFlags:DWord):LONG;StdCall;external External_library name 'PathProcessCommand';
  2563. function SHRestricted(rest:TRESTRICTIONS):DWord;StdCall;external External_library name 'SHRestricted';
  2564. function SignalFileOpen(pidl:LPCITEMIDLIST):BOOL;StdCall;external External_library name 'SignalFileOpen';
  2565. function SHSimpleIDListFromPath(pszPath:lpcwstr):LPITEMIDLIST;StdCall;external External_library name 'SHSimpleIDListFromPath';
  2566. function SHLoadOLE(lParam:lparam):HRESULT;StdCall;external External_library name 'SHLoadOLE';
  2567. function SHStartNetConnectionDialogA(hwnd:HWND; pszRemoteName:lpcstr; dwType:DWord):HRESULT;StdCall;external External_library name 'SHStartNetConnectionDialogA';
  2568. function SHStartNetConnectionDialogW(hwnd:HWND; pszRemoteName:lpcwstr; dwType:DWord):HRESULT;StdCall;external External_library name 'SHStartNetConnectionDialogW';
  2569. {$ifdef Unicode}
  2570. function SHStartNetConnectionDialog (hwnd:HWND; pszRemoteName:lpcwstr; dwType:DWord):HRESULT;StdCall;external External_library name 'SHStartNetConnectionDialogW';
  2571. {$else}
  2572. function SHStartNetConnectionDialog (hwnd:HWND; pszRemoteName:lpcstr; dwType:DWord):HRESULT;StdCall;external External_library name 'SHStartNetConnectionDialogA';
  2573. {$endif}
  2574. function SHDefExtractIconA(pszIconFile:lpcstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON;
  2575. nIconSize:UINT):HRESULT;StdCall;external External_library name 'SHDefExtractIconA';
  2576. function SHDefExtractIconW(pszIconFile:lpcwstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON;
  2577. nIconSize:UINT):HRESULT;StdCall;external External_library name 'SHDefExtractIconW';
  2578. {$ifdef Unicode}
  2579. function SHDefExtractIcon (pszIconFile:lpcwstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON;
  2580. nIconSize:UINT):HRESULT;StdCall;external External_library name 'SHDefExtractIconW';
  2581. {$else}
  2582. function SHDefExtractIcon (pszIconFile:lpcstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON;
  2583. nIconSize:UINT):HRESULT;StdCall;external External_library name 'SHDefExtractIconA';
  2584. {$endif}
  2585. function Shell_GetImageLists(var phiml:HIMAGELIST; var phimlSmall:HIMAGELIST):BOOL;StdCall;external External_library name 'Shell_GetImageLists';
  2586. function Shell_GetCachedImageIndex(pszIconPath:lpcwstr; iIconIndex:Longint; uIconFlags:UINT):Longint;StdCall;external External_library name 'Shell_GetCachedImageIndex';
  2587. function SHValidateUNC(hwndOwner:HWND; pszFile:LPWStr; fConnect:UINT):BOOL;StdCall;external External_library name 'SHValidateUNC';
  2588. function PifMgr_OpenProperties(pszApp:lpcwstr; pszPIF:lpcwstr; hInf:UINT; flOpt:UINT):THANDLE;StdCall;external External_library name 'PifMgr_OpenProperties';
  2589. function PifMgr_GetProperties(hProps:THANDLE; pszGroup:lpcstr; lpProps:pointer; cbProps:Longint; flOpt:UINT):Longint;StdCall;external External_library name 'PifMgr_GetProperties';
  2590. function PifMgr_SetProperties(hProps:THANDLE; pszGroup:lpcstr; lpProps:pointer; cbProps:Longint; flOpt:UINT):Longint;StdCall;external External_library name 'PifMgr_SetProperties';
  2591. function PifMgr_CloseProperties(hProps:THANDLE; flOpt:UINT):THANDLE;StdCall;external External_library name 'PifMgr_CloseProperties';
  2592. procedure SHSetInstanceExplorer(punk:IUnknown);StdCall;external External_library name 'SHSetInstanceExplorer';
  2593. function IsUserAnAdmin:BOOL;StdCall;external External_library name 'IsUserAnAdmin';
  2594. function SHShellFolderView_Message(hwndMain:HWND; uMsg:UINT; lParam:lparam):lresult;StdCall;external External_library name 'SHShellFolderView_Message';
  2595. function SHCreateShellFolderView(pcsfv:PSFV_CREATE; out ppsv:IShellView):HRESULT;StdCall;external External_library name 'SHCreateShellFolderView';
  2596. function CDefFolderMenu_Create2(pidlFolder:LPCITEMIDLIST; hwnd:HWND; cidl:UINT;var apidl:LPCITEMIDLIST; psf:IShellFolder;
  2597. lpfn:LPFNDFMCALLBACK; nKeys:UINT; ahkeyClsKeys:PHKEY; out ppcm:IContextMenu):HRESULT;StdCall;external External_library name 'CDefFolderMenu_Create2';
  2598. function SHOpenPropSheetA(pszCaption:lpcstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject;
  2599. psb:IShellBrowser; pStartPage:lpcstr):BOOL;StdCall;external External_library name 'SHOpenPropSheetA';
  2600. function SHOpenPropSheetW(pszCaption:lpcwstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject;
  2601. psb:IShellBrowser; pStartPage:lpcwstr):BOOL;StdCall;external External_library name 'SHOpenPropSheetW';
  2602. {$ifdef Unicode}
  2603. function SHOpenPropSheet (pszCaption:lpcwstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject;
  2604. psb:IShellBrowser; pStartPage:lpcwstr):BOOL;StdCall;external External_library name 'SHOpenPropSheetW';
  2605. {$else}
  2606. function SHOpenPropSheet (pszCaption:lpcstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject;
  2607. psb:IShellBrowser; pStartPage:lpcstr):BOOL;StdCall;external External_library name 'SHOpenPropSheetA';
  2608. {$endif}
  2609. function SHFind_InitMenuPopup(hmenu:HMENU; hwndOwner:HWND; idCmdFirst:UINT; idCmdLast:UINT):IContextMenu;StdCall;external External_library name 'SHFind_InitMenuPopup';
  2610. function SHCreateShellFolderViewEx(pcsfv:LPCSFV; out ppsv:IShellView):HRESULT;StdCall;external External_library name 'SHCreateShellFolderViewEx';
  2611. procedure SHGetSetSettings(lpss:LPSHELLSTATE; dwMask:DWord; bSet:BOOL);StdCall;external External_library name 'SHGetSetSettings';
  2612. procedure SHGetSettings(lpsfs:LPSHELLFLAGSTATE; dwMask:DWord);StdCall;external External_library name 'SHGetSettings';
  2613. function SHBindToParent(pidl:LPCITEMIDLIST; constref riid:TREFIID; ppv:Ppointer; var ppidlLast:LPCITEMIDLIST):HRESULT;StdCall;external External_library name 'SHBindToParent';
  2614. function SHParseDisplayName(pszName:PCWSTR; pbc:IBindCtx; var ppidl:LPITEMIDLIST; sfgaoIn:TSFGAOF; psfgaoOut:PSFGAOF):HRESULT;StdCall;external External_library name 'SHParseDisplayName';
  2615. function SHPathPrepareForWriteA(hwnd:HWND; punkEnableModless:IUnknown; pszPath:lpcstr; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHPathPrepareForWriteA';
  2616. function SHPathPrepareForWriteW(hwnd:HWND; punkEnableModless:IUnknown; pszPath:lpcwstr; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHPathPrepareForWriteW';
  2617. {$ifdef Unicode}
  2618. function SHPathPrepareForWrite (hwnd:HWND; punkEnableModless:IUnknown; pszPath:lpcwstr; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHPathPrepareForWriteW';
  2619. {$else}
  2620. function SHPathPrepareForWrite (hwnd:HWND; punkEnableModless:IUnknown; pszPath:lpcstr; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHPathPrepareForWriteA';
  2621. {$endif}
  2622. { function SHPropStgCreate(psstg:IPropertySetStorage; fmtid:TREFFMTID; pclsid:PCLSID; grfFlags:DWord; grfMode:DWord;
  2623. dwDisposition:DWord; out ppstg:IPropertyStorage; puCodePage:PUINT):HRESULT;StdCall;external External_library name 'SHPropStgCreate';
  2624. function SHPropStgReadMultiple(pps:IPropertyStorage; uCodePage:UINT; cpspec:ULONG; rgpspec:array of TPROPSPEC; rgvar:array of TPROPVARIANT):HRESULT;StdCall;external External_library name 'SHPropStgReadMultiple';
  2625. function SHPropStgWriteMultiple(pps:IPropertyStorage; puCodePage:PUINT; cpspec:ULONG; rgpspec:array of TPROPSPEC; rgvar:array of TPROPVARIANT;
  2626. propidNameFirst:TPROPID):HRESULT;StdCall;external External_library name 'SHPropStgWriteMultiple';
  2627. }
  2628. function SHCreateFileExtractIconA(pszFile:lpcstr; dwFileAttributes:DWord; constref riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCreateFileExtractIconA';
  2629. function SHCreateFileExtractIconW(pszFile:lpcwstr; dwFileAttributes:DWord; constref riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCreateFileExtractIconW';
  2630. {$ifdef Unicode}
  2631. function SHCreateFileExtractIcon (pszFile:lpcwstr; dwFileAttributes:DWord; constref riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCreateFileExtractIconW';
  2632. {$else}
  2633. function SHCreateFileExtractIcon (pszFile:lpcstr; dwFileAttributes:DWord; constref riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCreateFileExtractIconA';
  2634. {$endif}
  2635. function SHLimitInputEdit(hwndEdit:HWND; psf:IShellFolder):HRESULT;StdCall;external External_library name 'SHLimitInputEdit';
  2636. function SHMultiFileProperties(pdtobj:IDataObject; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHMultiFileProperties';
  2637. // function SHMapIDListToImageListIndexAsync(pts:IShellTaskScheduler; psf:IShellFolder; pidl:LPCITEMIDLIST; flags:UINT; pfn:TPFNASYNCICONTASKBALLBACK;
  2638. // pvData:pointer; pvHint:pointer; piIndex:plongint; piIndexSel:plongint):HRESULT;StdCall;external External_library name 'SHMapIDListToImageListIndexAsync';
  2639. function SHMapPIDLToSystemImageListIndex(pshf:IShellFolder; pidl:LPCITEMIDLIST; piIndexSel:plongint):Longint;StdCall;external External_library name 'SHMapPIDLToSystemImageListIndex';
  2640. implementation
  2641. end.