Something went wrong. Try again.
Reactos
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960/* * COM interfaces for shell objects * * Copyright (C) 1999 Juergen Schmied * Copyright (C) 2003 Alexandre Julliard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */import "objidl.idl";import "oleidl.idl";import "oaidl.idl";import "docobj.idl";import "shtypes.idl";import "servprov.idl";import "comcat.idl";import "propidl.idl";/* FIXME: import "prsht.idl";*/import "msxml.idl";import "wtypes.idl";import "propsys.idl";import "objectarray.idl";/* FIXME: import "structuredquery.idl"; */cpp_quote("/* FIXME: #include <sherrors.h> */")cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")cpp_quote("#undef PlaySound")cpp_quote("#endif")/***************************************************************************** * IPersistFolder interface */[ object, uuid(000214ea-0000-0000-c000-000000000046), pointer_default(unique)]interface IPersistFolder : IPersist{ typedef IPersistFolder *LPPERSISTFOLDER; HRESULT Initialize( [in] PCIDLIST_ABSOLUTE pidl );}/***************************************************************************** * IPersistFolder2 interface */[ object, uuid(1ac3d9f0-175c-11d1-95be-00609797ea4f), pointer_default(unique)]interface IPersistFolder2 : IPersistFolder{ typedef IPersistFolder2 *LPPERSISTFOLDER2; HRESULT GetCurFolder( [out] PIDLIST_ABSOLUTE *ppidl );}/***************************************************************************** * IPersistIDList interface */[ object, uuid(1079acfc-29bd-11d3-8e0d-00c04f6837d5), pointer_default(unique)]interface IPersistIDList : IPersist{ HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE pidl ); HRESULT GetIDList( [out] PIDLIST_ABSOLUTE *ppidl );}/***************************************************************************** * IEnumIDList interface */[ object, uuid(000214f2-0000-0000-c000-000000000046), pointer_default(unique)]interface IEnumIDList : IUnknown{ typedef IEnumIDList *LPENUMIDLIST; HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] PITEMID_CHILD *rgelt, [out] ULONG *pceltFetched); HRESULT Skip( [in] ULONG celt ); HRESULT Reset(); HRESULT Clone( [out] IEnumIDList **ppenum );}/***************************************************************************** * IShellPropSheetExt interface */cpp_quote("#if 0") typedef LPARAM LPFNSVADDPROPSHEETPAGE;cpp_quote("#else")cpp_quote("#include <prsht.h>")cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;")cpp_quote("#endif")[ object, uuid(000214E9-0000-0000-C000-000000000046), pointer_default(unique), local]interface IShellPropSheetExt : IUnknown{ enum tagSHELLPROPSHEETEXTPAGEID { EXPPS_FILETYPES = 0x1 }; typedef UINT EXPPS; HRESULT AddPages( [in] LPFNSVADDPROPSHEETPAGE pfnAddPage, [in] LPARAM lParam); HRESULT ReplacePage( [in] EXPPS uPageID, [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith, [in] LPARAM lParam);}typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;/***************************************************************************** * IShellFolder interface */[ object, uuid(000214e6-0000-0000-c000-000000000046), pointer_default(unique)]interface IShellFolder : IUnknown{ typedef IShellFolder * LPSHELLFOLDER; typedef enum tagSHGDN { SHGDN_NORMAL = 0, SHGDN_INFOLDER = 1, SHGDN_FOREDITING = 0x1000, SHGDN_INCLUDE_NONFILESYS = 0x2000, SHGDN_FORADDRESSBAR = 0x4000, SHGDN_FORPARSING = 0x8000 } SHGNO; typedef DWORD SHGDNF; enum tagSHCONTF { SHCONTF_FOLDERS = 32, SHCONTF_NONFOLDERS = 64, SHCONTF_INCLUDEHIDDEN = 128, SHCONTF_INIT_ON_FIRST_NEXT = 256, SHCONTF_NETPRINTERSRCH = 512, SHCONTF_SHAREABLE = 1024, SHCONTF_STORAGE = 2048, SHCONTF_NAVIGATION_ENUM = 0x01000, SHCONTF_FASTITEMS = 0x02000, SHCONTF_FLATLIST = 0x04000, SHCONTF_ENABLE_ASYNC = 0x08000, SHCONTF_INCLUDESUPERHIDDEN = 0x10000 }; typedef DWORD SHCONTF; cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY") cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE") cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK") cpp_quote("#define SFGAO_STORAGE 0x00000008L") cpp_quote("#define SFGAO_CANRENAME 0x00000010L") cpp_quote("#define SFGAO_CANDELETE 0x00000020L") cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L") cpp_quote("#define SFGAO_DROPTARGET 0x00000100L") cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L") cpp_quote("#define SFGAO_SYSTEM 0x00001000L") cpp_quote("#define SFGAO_ENCRYPTED 0x00002000L") cpp_quote("#define SFGAO_ISSLOW 0x00004000L") cpp_quote("#define SFGAO_GHOSTED 0x00008000L") cpp_quote("#define SFGAO_LINK 0x00010000L") cpp_quote("#define SFGAO_SHARE 0x00020000L") cpp_quote("#define SFGAO_READONLY 0x00040000L") cpp_quote("#define SFGAO_HIDDEN 0x00080000L") cpp_quote("#define SFGAO_DISPLAYATTRMASK 0x000FC000L") cpp_quote("#define SFGAO_FILESYSANCESTOR 0x10000000L") cpp_quote("#define SFGAO_FOLDER 0x20000000L") cpp_quote("#define SFGAO_FILESYSTEM 0x40000000L") cpp_quote("#define SFGAO_HASSUBFOLDER 0x80000000L") cpp_quote("#define SFGAO_CONTENTSMASK 0x80000000L") cpp_quote("#define SFGAO_VALIDATE 0x01000000L") cpp_quote("#define SFGAO_REMOVABLE 0x02000000L") cpp_quote("#define SFGAO_COMPRESSED 0x04000000L") cpp_quote("#define SFGAO_BROWSABLE 0x08000000L") cpp_quote("#define SFGAO_NONENUMERATED 0x00100000L") cpp_quote("#define SFGAO_NEWCONTENT 0x00200000L") cpp_quote("#define SFGAO_STREAM 0x00400000L") cpp_quote("#define SFGAO_STORAGEANCESTOR 0x00800000L") cpp_quote("#define SFGAO_STORAGECAPMASK 0x70C50008L") cpp_quote("#define SFGAO_PKEYSFGAOMASK 0x81044000L") typedef ULONG SFGAOF; cpp_quote("#define SHCIDS_COLUMNMASK 0x0000FFFFL") cpp_quote("#define SHCIDS_BITMASK 0xFFFF0000L") cpp_quote("#define SHCIDS_CANONICALONLY 0x10000000L") cpp_quote("#define SHCIDS_ALLFIELDS 0x80000000L") cpp_quote("#define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L\"Parse Shell Protocol To File Objects\"") cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind Data\"") cpp_quote("#define STR_PARSE_PREFER_FOLDER_BROWSING L\"Parse Prefer Folder Browsing\"") cpp_quote("#define STR_PARSE_TRANSLATE_ALIASES L\"Parse Translate Aliases\"") cpp_quote("#define STR_DONT_PARSE_RELATIVE L\"Don't Parse Relative\"") HRESULT ParseDisplayName( [in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] PIDLIST_RELATIVE *ppidl, [in, out, unique] ULONG *pdwAttributes); HRESULT EnumObjects( [in] HWND hwndOwner, [in] SHCONTF grfFlags, [out] IEnumIDList **ppenumIDList); HRESULT BindToObject( [in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut); HRESULT BindToStorage( [in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvObj); HRESULT CompareIDs( [in] LPARAM lParam, [in] PCUIDLIST_RELATIVE pidl1, [in] PCUIDLIST_RELATIVE pidl2); HRESULT CreateViewObject( [in] HWND hwndOwner, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut); HRESULT GetAttributesOf( [in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, out] SFGAOF *rgfInOut); HRESULT GetUIObjectOf( [in] HWND hwndOwner, [in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in] REFIID riid, [in, out, unique] UINT *prgfInOut, [out, iid_is(riid)] void **ppvOut); HRESULT GetDisplayNameOf( [in] PCUITEMID_CHILD pidl, [in] SHGDNF uFlags, [out] STRRET *lpName); HRESULT SetNameOf( [in] HWND hwnd, [in] PCUITEMID_CHILD pidl, [in, string] LPCOLESTR lpszName, [in] SHGDNF uFlags, [out] PITEMID_CHILD *ppidlOut);}/***************************************************************************** * IEnumExtraSearch interface */[ object, uuid(0e700be1-9db6-11d1-a1ce-00c04fd75d13), pointer_default(unique)]interface IEnumExtraSearch : IUnknown{ typedef IEnumExtraSearch *LPENUMEXTRASEARCH; typedef struct { GUID guidSearch; WCHAR wszFriendlyName[80]; /* *WCHAR wszMenuText[80]; *WCHAR wszHelpText[MAX_PATH]; */ WCHAR wszUrl[2084]; /* *WCHAR wszIcon[MAX_PATH+10]; *WCHAR wszGreyIcon[MAX_PATH+10]; *WCHAR wszClrIcon[MAX_PATH+10]; */ } EXTRASEARCH, *LPEXTRASEARCH; HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] EXTRASEARCH *rgelt, [out] ULONG *pceltFetched); HRESULT Skip( [in] ULONG celt ); HRESULT Reset(); HRESULT Clone( [out] IEnumExtraSearch **ppenum );}/***************************************************************************** * IShellFolder2 interface */[ object, uuid(93f2f68c-1d1b-11d3-a30e-00c04f79abd1), pointer_default(unique)]interface IShellFolder2 : IShellFolder{ typedef struct { GUID fmtid; DWORD pid; } SHCOLUMNID, *LPSHCOLUMNID; typedef const SHCOLUMNID *LPCSHCOLUMNID; HRESULT GetDefaultSearchGUID( [out] GUID *lpguid ); HRESULT EnumSearches( [out] IEnumExtraSearch **ppenum ); HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay ); HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags ); HRESULT GetDetailsEx( [in] PCUITEMID_CHILD pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv); HRESULT GetDetailsOf( [in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd); HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid );}/***************************************************************************** * IShellItem interface */[ object, uuid(43826d1e-e718-42ee-bc55-a1e261c37bfe), pointer_default(unique)]interface IShellItem : IUnknown{ typedef [v1_enum] enum { SIGDN_NORMALDISPLAY = 0, SIGDN_PARENTRELATIVEPARSING = 0x80018001, SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000, SIGDN_PARENTRELATIVEEDITING = 0x80031001, SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000, SIGDN_FILESYSPATH = 0x80058000, SIGDN_URL = 0x80068000, SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001, SIGDN_PARENTRELATIVE = 0x80080001 } SIGDN; /* & 0xFFFF => SHGDN */ [v1_enum] enum _SICHINTF { SICHINT_DISPLAY = 0x00000000, SICHINT_CANONICAL = 0x10000000, SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000, SICHINT_ALLFIELDS = 0x80000000 }; typedef DWORD SICHINTF; HRESULT BindToHandler( [in] IBindCtx *pbc, [in] REFGUID rbhid, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut); HRESULT GetParent( [out] IShellItem **ppsi ); HRESULT GetDisplayName( [in] SIGDN sigdnName, [out] LPWSTR *ppszName); HRESULT GetAttributes( [in] SFGAOF sfgaoMask, [out] SFGAOF *psfgaoAttribs); HRESULT Compare( [in] IShellItem *psi, [in] SICHINTF hint, [out] int *piOrder);}/***************************************************************************** * IShellItem2 interface */[ object, uuid(7E9FB0D3-919F-4307-AB2E-9B1860310C93), pointer_default(unique)]interface IShellItem2 : IShellItem{ HRESULT GetPropertyStore( [in] GETPROPERTYSTOREFLAGS flags, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT GetPropertyStoreWithCreateObject( [in] GETPROPERTYSTOREFLAGS flags, [in] IUnknown *punkCreateObject, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT GetPropertyStoreForKeys( [in, size_is(cKeys)] const PROPERTYKEY *rgKeys, [in] UINT cKeys, [in] GETPROPERTYSTOREFLAGS flags, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT GetPropertyDescriptionList( [in] REFPROPERTYKEY keyType, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT Update( [in, unique] IBindCtx *pbc); HRESULT GetProperty( [in] REFPROPERTYKEY key, [out] PROPVARIANT *ppropvar); HRESULT GetCLSID( [in] REFPROPERTYKEY key, [out] CLSID *pclsid); HRESULT GetFileTime ( [in] REFPROPERTYKEY key, [out] FILETIME *pft); HRESULT GetInt32( [in] REFPROPERTYKEY key, [out] int *pi); HRESULT GetString( [in] REFPROPERTYKEY key, [out, string] LPWSTR *ppsz); HRESULT GetUInt32( [in] REFPROPERTYKEY key, [out] ULONG *pui); HRESULT GetUInt64( [in] REFPROPERTYKEY key, [out] ULONGLONG *pull); HRESULT GetBool( [in] REFPROPERTYKEY key, [out] BOOL *pf);}typedef enum tagNWMF { NWMF_UNLOADING = 0x0001, NWMF_USERINITED = 0x0002, NWMF_FIRST = 0x0004, NWMF_OVERRIDEKEY = 0x0008, NWMF_SHOWHELP = 0x0010, NWMF_HTMLDIALOG = 0x0020, NWMF_FROMDIALOGCHILD = 0x0040, NWMF_USERREQUESTED = 0x0080, NWMF_USERALLOWED = 0x0100} NWMF;[ uuid(d2bc4c84-3f72-4a52-a604-7bcbf3982cbb), object, pointer_default(unique)]interface INewWindowManager : IUnknown{ HRESULT EvaluateNewWindow( [in, string] LPCWSTR pszUrl, [in, string] LPCWSTR pszName, [in, string] LPCWSTR pszUrlContext, [in, string] LPCWSTR pszFeatures, [in] BOOL fReplace, [in] DWORD dwFlags, [in] DWORD dwUserActionTime);}cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager")/***************************************************************************** * IEnumShellItems interface */[ object, uuid(70629033-E363-4A28-A567-0DB78006E6D7), pointer_default(unique)]interface IEnumShellItems : IUnknown{ [local] HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt, [out] ULONG *pceltFetched); [call_as(Next)] HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt, [out] ULONG *pceltFetched); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IEnumShellItems **ppenum);}/***************************************************************************** * IShellItemArray interface */[ object, uuid(B63EA76D-1F85-456F-A19C-48159EFA858B), pointer_default(unique)]interface IShellItemArray : IUnknown{ typedef [v1_enum] enum SIATTRIBFLAGS { SIATTRIBFLAGS_AND = 0x0001, SIATTRIBFLAGS_OR = 0x0002, SIATTRIBFLAGS_APPCOMPAT = 0x0003, SIATTRIBFLAGS_MASK = 0x0003, SIATTRIBFLAGS_ALLITEMS = 0x4000 } SIATTRIBFLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)") HRESULT BindToHandler( [in, unique] IBindCtx *pbc, [in] REFGUID bhid, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut); HRESULT GetPropertyStore( [in] GETPROPERTYSTOREFLAGS flags, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT GetPropertyDescriptionList( [in] REFPROPERTYKEY keyType, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT GetAttributes( [in] SIATTRIBFLAGS AttribFlags, [in] SFGAOF sfgaoMask, [out] SFGAOF *psfgaoAttribs); HRESULT GetCount( [out] DWORD *pdwNumItems); HRESULT GetItemAt( [in] DWORD dwIndex, [out] IShellItem **ppsi); HRESULT EnumItems( [out] IEnumShellItems **ppenumShellItems);}typedef [v1_enum] enum DATAOBJ_GET_ITEM_FLAGS{ DOGIF_DEFAULT = 0x0, DOGIF_TRAVERSE_LINK = 0x1, DOGIF_NO_HDROP = 0x2, DOGIF_NO_URL = 0x4, DOGIF_ONLY_IF_ONE = 0x8} DATAOBJ_GET_ITEM_FLAGS;cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)")cpp_quote("HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);")cpp_quote("HRESULT WINAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);")cpp_quote("HRESULT WINAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);")cpp_quote("HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);")cpp_quote("HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);")cpp_quote("HRESULT WINAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);")cpp_quote("HRESULT WINAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder* psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);")cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);")cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY pidl_array, IShellItemArray **psia);")cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);")/***************************************************************************** * IShellItemFilter interface */[ object, uuid(2659B475-EEB8-48B7-8F07-B378810F48CF), pointer_default(unique)]interface IShellItemFilter : IUnknown{ HRESULT IncludeItem( [in] IShellItem *psi); HRESULT GetEnumFlagsForItem( [in] IShellItem *psi, [out] SHCONTF *pgrfFlags);}/***************************************************************************** * FOLDERSETTINGS */typedef char *LPVIEWSETTINGS;typedef enum{ FWF_AUTOARRANGE = 0x00000001, FWF_ABBREVIATEDNAMES = 0x00000002, FWF_SNAPTOGRID = 0x00000004, FWF_OWNERDATA = 0x00000008, FWF_BESTFITWINDOW = 0x00000010, FWF_DESKTOP = 0x00000020, FWF_SINGLESEL = 0x00000040, FWF_NOSUBFOLDERS = 0x00000080, FWF_TRANSPARENT = 0x00000100, FWF_NOCLIENTEDGE = 0x00000200, FWF_NOSCROLL = 0x00000400, FWF_ALIGNLEFT = 0x00000800, FWF_NOICONS = 0x00001000, FWF_SHOWSELALWAYS = 0x00002000, FWF_NOVISIBLE = 0x00004000, FWF_SINGLECLICKACTIVATE = 0x00008000, FWF_NOWEBVIEW = 0x00010000, FWF_HIDEFILENAMES = 0x00020000, FWF_CHECKSELECT = 0x00040000, FWF_NOENUMREFRESH = 0x00080000, FWF_NOGROUPING = 0x00100000, FWF_FULLROWSELECT = 0x00200000, FWF_NOFILTERS = 0x00400000, FWF_NOCOLUMNHEADER = 0x00800000, FWF_NOHEADERINALLVIEWS = 0x01000000, FWF_EXTENDEDTILES = 0x02000000, FWF_TRICHECKSELECT = 0x04000000, FWF_AUTOCHECKSELECT = 0x08000000, FWF_NOBROWSERVIEWSTATE = 0x10000000, FWF_SUBSETGROUPS = 0x20000000, FWF_USESEARCHFOLDER = 0x40000000, FWF_ALLOWRTLREADING = 0x80000000} FOLDERFLAGS;typedef enum{ FVM_AUTO =-1, FVM_ICON = 1, FVM_FIRST = FVM_ICON, FVM_SMALLICON = 2, FVM_LIST = 3, FVM_DETAILS = 4, FVM_THUMBNAIL = 5, FVM_TILE = 6, FVM_THUMBSTRIP = 7, FVM_CONTENT = 8, FVM_LAST = FVM_CONTENT} FOLDERVIEWMODE;typedef struct{ UINT ViewMode; UINT fFlags;} FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;/***************************************************************************** * IShellIcon interface */[ uuid(000214e5-0000-0000-c000-000000000046), object, pointer_default(unique)]interface IShellIcon : IUnknown{ HRESULT GetIconOf( [in] PCUITEMID_CHILD pidl, [in] UINT flags, [out] int *pIconIndex);}/***************************************************************************** * IShellView interface */interface IShellBrowser; /* forward declaration */[ object, uuid(000214e3-0000-0000-c000-000000000046), pointer_default(unique)]interface IShellView : IOleWindow{ typedef IShellView *LPSHELLVIEW; cpp_quote("#define SVSI_DESELECT 0x00000000") cpp_quote("#define SVSI_SELECT 0x00000001") cpp_quote("#define SVSI_EDIT 0x00000003") cpp_quote("#define SVSI_DESELECTOTHERS 0x00000004") cpp_quote("#define SVSI_ENSUREVISIBLE 0x00000008") cpp_quote("#define SVSI_FOCUSED 0x00000010") cpp_quote("#define SVSI_TRANSLATEPT 0x00000020") cpp_quote("#define SVSI_SELECTIONMARK 0x00000040") cpp_quote("#define SVSI_POSITIONITEM 0x00000080") cpp_quote("#define SVSI_CHECK 0x00000100") cpp_quote("#define SVSI_NOSTATECHANGE 0x80000000") typedef UINT SVSIF; typedef enum { SVGIO_BACKGROUND = 0x00000000, SVGIO_SELECTION = 0x00000001, SVGIO_ALLVIEW = 0x00000002, SVGIO_CHECKED = 0x00000003, SVGIO_TYPE_MASK = 0x0000000f, SVGIO_FLAG_VIEWORDER = 0x80000000, } SVGIO; typedef enum { SVUIA_DEACTIVATE = 0, SVUIA_ACTIVATE_NOFOCUS = 1, SVUIA_ACTIVATE_FOCUS = 2, SVUIA_INPLACEACTIVATE = 3 } SVUIA_STATUS; HRESULT TranslateAccelerator( [in] MSG *pmsg ); HRESULT EnableModeless( [in] BOOL fEnable ); HRESULT UIActivate( [in] UINT uState ); HRESULT Refresh(); HRESULT CreateViewWindow( [in] IShellView *psvPrevious, [in] LPCFOLDERSETTINGS lpfs, [in] IShellBrowser *psb, [out] RECT *prcView, [out] HWND *phWnd); HRESULT DestroyViewWindow(); HRESULT GetCurrentInfo( [out] LPFOLDERSETTINGS lpfs ); [local] HRESULT AddPropertySheetPages( [in] DWORD dwReserved, [in] LPFNSVADDPROPSHEETPAGE pfn, [in] LPARAM lparam); HRESULT SaveViewState(); HRESULT SelectItem( [in] PCUITEMID_CHILD pidlItem, [in] SVSIF uFlags); HRESULT GetItemObject( [in] UINT uItem, [in] REFIID riid, [out, iid_is(riid)] void **ppv);}[ object, uuid(88e39e80-3578-11cf-ae69-08002b2e1262), pointer_default(unique)]interface IShellView2 : IShellView{ typedef GUID SHELLVIEWID;cpp_quote("#define SV2GV_CURRENTVIEW ((UINT)-1)")cpp_quote("#define SV2GV_DEFAULTVIEW ((UINT)-2)")cpp_quote("#include <pshpack8.h>") typedef struct _SV2CVW2_PARAMS { DWORD cbSize; IShellView *psvPrev; LPCFOLDERSETTINGS pfs; IShellBrowser *psbOwner; RECT *prcView; SHELLVIEWID const *pvid; HWND hwndView; } SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS;cpp_quote("#include <poppack.h>") HRESULT GetView( [in, out] SHELLVIEWID *view_guid, [in] ULONG view_type ); HRESULT CreateViewWindow2( [in] LPSV2CVW2_PARAMS view_params ); HRESULT HandleRename( [in] PCUITEMID_CHILD new_pidl ); HRESULT SelectAndPositionItem( [in] PCUITEMID_CHILD item, [in] UINT flags, [in] POINT *point );}[ object, uuid(ec39fa88-f8af-41c5-8421-38bed28f4673), pointer_default(unique)]interface IShellView3 : IShellView2{ [v1_enum] enum _SV3CVW3_FLAGS { SV3CVW3_DEFAULT = 0x00000000, SV3CVW3_NONINTERACTIVE = 0x00000001, SV3CVW3_FORCEVIEWMODE = 0x00000002, SV3CVW3_FORCEFOLDERFLAGS = 0x00000004 }; typedef DWORD SV3CVW3_FLAGS; HRESULT CreateViewWindow3( [in] IShellBrowser *owner, [in, unique] IShellView *prev_view, [in] SV3CVW3_FLAGS view_flags, [in] FOLDERFLAGS mask, [in] FOLDERFLAGS flags, [in] FOLDERVIEWMODE mode, [in, unique] const SHELLVIEWID *view_id, [in] const RECT *rect, [out] HWND *hwnd);}/***************************************************************************** * IFolderView interface */[ uuid(cde725b0-ccc9-4519-917e-325d72fab4ce), object, pointer_default(unique)]interface IFolderView : IUnknown{ HRESULT GetCurrentViewMode( [out] UINT *mode ); HRESULT SetCurrentViewMode( [in] UINT mode ); HRESULT GetFolder( [in] REFIID riid, [out, iid_is(riid)] void **ppv ); HRESULT Item( [in] int index, [out] PITEMID_CHILD *ppidl ); HRESULT ItemCount( [in] UINT flags, [out] int *items ); HRESULT Items( [in] UINT flags, [in] REFIID riid, [out, iid_is(riid)] void **ppv ); HRESULT GetSelectionMarkedItem( [out] int *item ); HRESULT GetFocusedItem( [out] int *item ); HRESULT GetItemPosition( [in] PCUITEMID_CHILD pidl, [out] POINT* ppt ); HRESULT GetSpacing( [in, out, unique] POINT* pt ); HRESULT GetDefaultSpacing( [out] POINT* pt ); HRESULT GetAutoArrange(); HRESULT SelectItem( [in] int item, [in] DWORD flags ); HRESULT SelectAndPositionItems( [in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, unique, size_is(cidl)] POINT* apt, [in] DWORD flags );}cpp_quote("#define SID_SFolderView IID_IFolderView")[v1_enum] enum tagSORTDIRECTION{ SORT_DESCENDING = -1, SORT_ASCENDING = 1};typedef int SORTDIRECTION;typedef struct SORTCOLUMN{ PROPERTYKEY propkey; SORTDIRECTION direction;} SORTCOLUMN;typedef [v1_enum] enum FVTEXTTYPE{ FVST_EMPTYTEXT = 0} FVTEXTTYPE;[ uuid(1af3a467-214f-4298-908e-06b03e0b39f9), object, pointer_default(unique)]interface IFolderView2 : IFolderView{ HRESULT SetGroupBy( [in] REFPROPERTYKEY key, [in] BOOL ascending); [local] HRESULT GetGroupBy( [out] PROPERTYKEY *pkey, [out] BOOL *ascending); [call_as(GetGroupBy)] HRESULT RemoteGetGroupBy( [out] PROPERTYKEY *pkey, [out] BOOL *ascending); HRESULT SetViewProperty( [in] PCUITEMID_CHILD pidl, [in] REFPROPERTYKEY propkey, [in] REFPROPVARIANT propvar); HRESULT GetViewProperty( [in] PCUITEMID_CHILD pidl, [in] REFPROPERTYKEY propkey, [out] PROPVARIANT *propvar); HRESULT SetTileViewProperties( [in] PCUITEMID_CHILD pidl, [in, string] LPCWSTR prop_list); HRESULT SetExtendedTileViewProperties( [in] PCUITEMID_CHILD pidl, [in, string] LPCWSTR prop_list); HRESULT SetText( [in] FVTEXTTYPE type, [in] LPCWSTR text); HRESULT SetCurrentFolderFlags( [in] DWORD mask, [in] DWORD flags); HRESULT GetCurrentFolderFlags([out] DWORD *flags); HRESULT GetSortColumnCount([out] int *columns); HRESULT SetSortColumns( [in, size_is(count)] const SORTCOLUMN *columns, [in] int count); HRESULT GetSortColumns( [out, size_is(count)] SORTCOLUMN *columns, [in] int count); HRESULT GetItem( [in] int ittem, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT GetVisibleItem( [in] int start, [in] BOOL previous, [out] int *item); HRESULT GetSelectedItem( [in] int start, [out] int *item); HRESULT GetSelection( [in] BOOL none_implies_folder, [out] IShellItemArray **array); HRESULT GetSelectionState( [in] PCUITEMID_CHILD pidl, [out] DWORD *flags); HRESULT InvokeVerbOnSelection([in, unique, string] LPCSTR verb); HRESULT SetViewModeAndIconSize( [in] FOLDERVIEWMODE mode, [in] int size); HRESULT GetViewModeAndIconSize( [out] FOLDERVIEWMODE *mode, [out] int *size); HRESULT SetGroupSubsetCount([in] UINT visible_rows); HRESULT GetGroupSubsetCount([out] UINT *visible_rows); HRESULT SetRedraw([in] BOOL redraw); HRESULT IsMoveInSameFolder(); HRESULT DoRename();}/***************************************************************************** * IShellBrowser interface */[ object, uuid(000214e2-0000-0000-c000-000000000046), pointer_default(unique)]interface IShellBrowser : IOleWindow{ typedef IShellBrowser *LPSHELLBROWSER;cpp_quote("#define SBSP_DEFBROWSER 0x00000000")cpp_quote("#define SBSP_SAMEBROWSER 0x00000001")cpp_quote("#define SBSP_NEWBROWSER 0x00000002")cpp_quote("#define SBSP_DEFMODE 0x00000000")cpp_quote("#define SBSP_OPENMODE 0x00000010")cpp_quote("#define SBSP_EXPLOREMODE 0x00000020")cpp_quote("#define SBSP_HELPMODE 0x00000040")cpp_quote("#define SBSP_NOTRANSFERHIST 0x00000080")cpp_quote("#define SBSP_ABSOLUTE 0x00000000")cpp_quote("#define SBSP_RELATIVE 0x00001000")cpp_quote("#define SBSP_PARENT 0x00002000")cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000")cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000")cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000")cpp_quote("#define SBSP_KEEPSAMETEMPLATE 0x00020000")cpp_quote("#define SBSP_KEEPWORDWHEELTEXT 0x00040000")cpp_quote("#define SBSP_ACTIVATE_NOFOCUS 0x00080000")cpp_quote("#define SBSP_CREATENOHISTORY 0x00100000")cpp_quote("#define SBSP_PLAYNOSOUND 0x00200000")cpp_quote("#define SBSP_CALLERUNTURUSTED 0x00800000")cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000")cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000")cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000")cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000")cpp_quote("#define SBSP_TRUSTEDFORACTIVEX 0x10000000")cpp_quote("#define SBSP_FEEDNAVIGATION 0x20000000")cpp_quote("#define SBSP_REDIRECT 0x40000000")cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000")cpp_quote("#define FCW_STATUS 0x0001")cpp_quote("#define FCW_TOOLBAR 0x0002")cpp_quote("#define FCW_TREE 0x0003")cpp_quote("#define FCW_INTERNETBAR 0x0006")cpp_quote("#define FCW_PROGRESS 0x0008")cpp_quote("#define FCT_MERGE 0x0001")cpp_quote("#define FCT_CONFIGABLE 0x0002")cpp_quote("#define FCT_ADDTOEND 0x0004")cpp_quote("#if 0") typedef LPARAM LPTBBUTTONSB;cpp_quote("#else")cpp_quote("#include <commctrl.h>")cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;")cpp_quote("#endif") HRESULT InsertMenusSB( [in] HMENU hmenuShared, [in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths); HRESULT SetMenuSB( [in] HMENU hmenuShared, [in] HOLEMENU holemenuReserved, [in] HWND hwndActiveObject); HRESULT RemoveMenusSB( [in] HMENU hmenuShared ); HRESULT SetStatusTextSB( [in, unique] LPCOLESTR pszStatusText ); HRESULT EnableModelessSB( [in] BOOL fEnable ); HRESULT TranslateAcceleratorSB( [in] MSG *pmsg, [in] WORD wID ); HRESULT BrowseObject( [in] PCUIDLIST_RELATIVE pidl, [in] UINT wFlags); HRESULT GetViewStateStream( [in] DWORD grfMode, [out] IStream **ppStrm); HRESULT GetControlWindow( [in] UINT id, [out] HWND *phwnd); [local] HRESULT SendControlMsg( [in] UINT id, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [in] LRESULT *pret); HRESULT QueryActiveShellView( [out] IShellView **ppshv ); HRESULT OnViewWindowActive( [in] IShellView *pshv ); [local] HRESULT SetToolbarItems( [in] LPTBBUTTONSB lpButtons, [in] UINT nButtons, [in] UINT uFlags);}/***************************************************************************** * IShellLinkA interface */[ object, uuid(000214ee-0000-0000-c000-000000000046), pointer_default(unique)]interface IShellLinkA : IUnknown{ typedef enum { SLR_NO_UI = 0x0001, SLR_ANY_MATCH = 0x0002, SLR_UPDATE = 0x0004, SLR_NOUPDATE = 0x0008, SLR_NOSEARCH = 0x0010, SLR_NOTRACK = 0x0020, SLR_NOLINKINFO = 0x0040, SLR_INVOKE_MSI = 0x0080, SLR_NO_UI_WITH_MSG_PUMP = 0x0101, } SLR_FLAGS; typedef enum { SLGP_SHORTPATH = 0x0001, SLGP_UNCPRIORITY = 0x0002, SLGP_RAWPATH = 0x0004, } SLGP_FLAGS; HRESULT GetPath( [out, size_is(cch)] LPSTR pszFile, [in] int cch, [in, out, unique] WIN32_FIND_DATAA *pfd, [in] DWORD fFlags); HRESULT GetIDList( [out] PIDLIST_ABSOLUTE * ppidl ); HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE pidl ); HRESULT GetDescription( [out, size_is(cch)] LPSTR pszName, [in] int cch); HRESULT SetDescription( [in] LPCSTR pszName ); HRESULT GetWorkingDirectory( [out, size_is(cch)] LPSTR pszDir, [in] int cch); HRESULT SetWorkingDirectory( [in] LPCSTR pszDir ); HRESULT GetArguments( [out, size_is(cch)] LPSTR pszArgs, [in] int cch); HRESULT SetArguments( [in] LPCSTR pszArgs ); HRESULT GetHotkey( [out] WORD *pwHotkey ); HRESULT SetHotkey( [in] WORD wHotkey ); HRESULT GetShowCmd( [out] int *piShowCmd ); HRESULT SetShowCmd( [in] int iShowCmd ); HRESULT GetIconLocation( [out, size_is(cch)] LPSTR pszIconPath, [in] int cch, [out] int *piIcon); HRESULT SetIconLocation( [in] LPCSTR pszIconPath, [in] int iIcon); HRESULT SetRelativePath( [in] LPCSTR pszPathRel, [in] DWORD dwReserved); HRESULT Resolve( [in] HWND hwnd, [in] DWORD fFlags); HRESULT SetPath( [in] LPCSTR pszFile );}/***************************************************************************** * IShellLinkW interface */[ object, uuid(000214f9-0000-0000-c000-000000000046), pointer_default(unique)]interface IShellLinkW : IUnknown{ HRESULT GetPath( [out, size_is(cch)] LPWSTR pszFile, [in] int cch, [in, out] WIN32_FIND_DATAW *pfd, [in] DWORD fFlags); HRESULT GetIDList( [out] PIDLIST_ABSOLUTE * ppidl ); HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE pidl ); HRESULT GetDescription( [out, size_is(cch)] LPWSTR pszName, [in] int cch); HRESULT SetDescription( [in] LPCWSTR pszName ); HRESULT GetWorkingDirectory( [out, size_is(cch)] LPWSTR pszDir, [in] int cch); HRESULT SetWorkingDirectory( [in] LPCWSTR pszDir ); HRESULT GetArguments( [out, size_is(cch)] LPWSTR pszArgs, [in] int cch); HRESULT SetArguments( [in] LPCWSTR pszArgs ); HRESULT GetHotkey( [out] WORD *pwHotkey ); HRESULT SetHotkey( [in] WORD wHotkey ); HRESULT GetShowCmd( [out] int *piShowCmd ); HRESULT SetShowCmd( [in] int iShowCmd ); HRESULT GetIconLocation( [out, size_is(cch)] LPWSTR pszIconPath, [in] int cch, [out] int *piIcon); HRESULT SetIconLocation( [in] LPCWSTR pszIconPath, [in] int iIcon); HRESULT SetRelativePath( [in] LPCWSTR pszPathRel, [in] DWORD dwReserved); HRESULT Resolve( [in] HWND hwnd, [in] DWORD fFlags); HRESULT SetPath( [in] LPCWSTR pszFile );}cpp_quote("#define IShellLink WINELIB_NAME_AW(IShellLink)")/***************************************************************************** * IShellExtInit interface */[ object, uuid(000214e8-0000-0000-c000-000000000046), pointer_default(unique), local]interface IShellExtInit : IUnknown{ typedef IShellExtInit *LPSHELLEXTINIT; HRESULT Initialize( [in] PCIDLIST_ABSOLUTE pidlFolder, [in] IDataObject *pdtobj, [in] HKEY hkeyProgID);}/*******************************************************************************//* Note: the following interfaces are not in shobjidl.idl under Windows, they *//* are declared directly in shlobj.h. It hopefully won't break anything to put *//* them here anyway. *//*******************************************************************************/#ifndef MAX_PATH#define MAX_PATH 260#endif/***************************************************************************** * IPersistFolder3 interface */[ object, uuid(cef04fdf-fe72-11d2-87a5-00c04f6837cf), pointer_default(unique)]interface IPersistFolder3 : IPersistFolder2{ typedef struct { PIDLIST_ABSOLUTE pidlTargetFolder; WCHAR szTargetParsingName[MAX_PATH]; WCHAR szNetworkProvider[MAX_PATH]; DWORD dwAttributes; int csidl; } PERSIST_FOLDER_TARGET_INFO; HRESULT InitializeEx( [in] IBindCtx *pbc, [in] PCIDLIST_ABSOLUTE pidlRoot, [in] const PERSIST_FOLDER_TARGET_INFO *ppfti); HRESULT GetFolderTargetInfo( [out] PERSIST_FOLDER_TARGET_INFO *ppfti );}/***************************************************************************** * IExtractIconA interface */[ object, uuid(000214eb-0000-0000-c000-000000000046), pointer_default(unique), local]interface IExtractIconA : IUnknown{cpp_quote("#define GIL_OPENICON 0x0001")cpp_quote("#define GIL_FORSHELL 0x0002")cpp_quote("#define GIL_ASYNC 0x0020")cpp_quote("#define GIL_DEFAULTICON 0x0040")cpp_quote("#define GIL_FORSHORTCUT 0x0080")cpp_quote("#define GIL_SIMULATEDOC 0x0001")cpp_quote("#define GIL_PERINSTANCE 0x0002")cpp_quote("#define GIL_PERCLASS 0x0004")cpp_quote("#define GIL_NOTFILENAME 0x0008")cpp_quote("#define GIL_DONTCACHE 0x0010") typedef IExtractIconA *LPEXTRACTICONA; HRESULT GetIconLocation( [in] UINT uFlags, [out, size_is(cchMax)] LPSTR szIconFile, [in] UINT cchMax, [out] INT *piIndex, [out] UINT *pwFlags); HRESULT Extract( [in] LPCSTR pszFile, [in] UINT nIconIndex, [out] HICON *phiconLarge, [out] HICON *phiconSmall, [in] UINT nIconSize );}/***************************************************************************** * IExtractIconW interface */[ object, uuid(000214fa-0000-0000-c000-000000000046), pointer_default(unique), local]interface IExtractIconW : IUnknown{ typedef IExtractIconW *LPEXTRACTICONW; HRESULT GetIconLocation( [in] UINT uFlags, [out, size_is(cchMax)] LPWSTR szIconFile, [in] UINT cchMax, [out] INT *piIndex, [out] UINT *pwFlags); HRESULT Extract( [in] LPCWSTR pszFile, [in] UINT nIconIndex, [out] HICON *phiconLarge, [out] HICON *phiconSmall, [in] UINT nIconSize );}cpp_quote("#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)")cpp_quote("#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)")/***************************************************************************** * ICommDlgBrowser interface */[ object, uuid(000214f1-0000-0000-c000-000000000046), pointer_default(unique)]interface ICommDlgBrowser : IUnknown{cpp_quote("#define CDBOSC_SETFOCUS 0x00000000")cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001")cpp_quote("#define CDBOSC_SELCHANGE 0x00000002")cpp_quote("#define CDBOSC_RENAME 0x00000003")cpp_quote("#define CDBOSC_STATECHANGE 0x00000004") typedef ICommDlgBrowser *LPCOMMDLGBROWSER; HRESULT OnDefaultCommand( [in] IShellView *shv ); HRESULT OnStateChange( [in] IShellView *shv, [in] ULONG uChange ); HRESULT IncludeObject( [in] IShellView *shv, [in] PCUITEMID_CHILD pidl );}/***************************************************************************** * ICommDlgBrowser2 interface */[ object, uuid(10339516-2894-11D2-9039-00C04F8EEB3E), pointer_default(unique)]interface ICommDlgBrowser2 : ICommDlgBrowser{cpp_quote("#define CDB2N_CONTEXTMENU_DONE 1")cpp_quote("#define CDB2N_CONTEXTMENU_START 2")cpp_quote("#define CDB2GVF_SHOWALLFILES 0x00000001")cpp_quote("#define CDB2GVF_NOSELECTVERB 0x00000008")cpp_quote("#define CDB2GVF_NOINCLUDEITEM 0x00000010 /* IncludeObject should not be called */") HRESULT Notify( [in] IShellView *ppshv, [in] DWORD dwNotifyType); HRESULT GetDefaultMenuText( [in] IShellView *ppshv, [out, string, size_is(cchMax)] LPWSTR pszText, [in] int cchMax); HRESULT GetViewFlags( [out] DWORD *pdwFlags);}/***************************************************************************** * ICommDlgBrowser3 interface */[ object, uuid(C8AD25A1-3294-41EE-8165-71174BD01C57), pointer_default(unique)]interface ICommDlgBrowser3 : ICommDlgBrowser2{ HRESULT OnColumnClicked( [in] IShellView *ppshv, [in] int iColumn); HRESULT GetCurrentFilter( [out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec, [in] int cchFileSpec); HRESULT OnPreviewCreated( [in] IShellView *ppshv);}/***************************************************************************** * IFolderFilterSite & IFolderFilter interfaces */[ object, uuid(C0A651F5-B48B-11d2-B5ED-006097C686F6), pointer_default(unique)]interface IFolderFilterSite : IUnknown{ HRESULT SetFilter([in] IUnknown* punk);}[ object, uuid(9CC22886-DC8E-11d2-B1D0-00C04F8EEB3E), pointer_default(unique)]interface IFolderFilter : IUnknown{ HRESULT ShouldShow( [in] IShellFolder* psf, [in, unique] PCIDLIST_ABSOLUTE pidlFolder, [in] PCUITEMID_CHILD pidlItem); HRESULT GetEnumFlags( [in] IShellFolder* psf, [in] PCIDLIST_ABSOLUTE pidlFolder, [out] HWND *phwnd, [in, out] DWORD *pgrfFlags);}/***************************************************************************** * IDockingWindow interface */[ object, uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8)]interface IDockingWindow : IOleWindow{ HRESULT ShowDW( [in] BOOL fShow); HRESULT CloseDW( [in] DWORD dwReserved); HRESULT ResizeBorderDW( [in] LPCRECT prcBorder, [in] IUnknown *punkToolbarSite, [in] BOOL fReserved);};/***************************************************************************** * IDockingWindowFrame interface */[ object, uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8), pointer_default(unique), local]interface IDockingWindowFrame : IOleWindow{cpp_quote("#define DWFRF_NORMAL 0x0000")cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001")cpp_quote("#define DWFAF_HIDDEN 0x0001") HRESULT AddToolbar( [in] IUnknown *punkSrc, [in] LPCWSTR pwszItem, [in] DWORD dwAddFlags); HRESULT RemoveToolbar( [in] IUnknown *punkSrc, [in] DWORD dwRemoveFlags); HRESULT FindToolbar( [in] LPCWSTR pwszItem, [in] REFIID riid, [out] LPVOID *ppvObj);}/***************************************************************************** * IDragSourceHelper interface */[ object, uuid(de5bf786-477a-11d2-839d-00c04fd918d0), pointer_default(unique), local]interface IDragSourceHelper : IUnknown{ typedef struct { SIZE sizeDragImage; POINT ptOffset; HBITMAP hbmpDragImage; COLORREF crColorKey; } SHDRAGIMAGE, *LPSHDRAGIMAGE; HRESULT InitializeFromBitmap( [in] LPSHDRAGIMAGE pshdi, [in] IDataObject *pDataObject); HRESULT InitializeFromWindow( [in] HWND hwnd, [in] POINT *ppt, [in] IDataObject *pDataObject);}/***************************************************************************** * IDropTargetHelper interface */[ object, uuid(4657278b-411b-11d2-839a-00c04fd918d0), pointer_default(unique), local]interface IDropTargetHelper : IUnknown{ HRESULT DragEnter( [in] HWND hwndTarget, [in] IDataObject *pDataObject, [in] POINT *ppt, [in] DWORD dwEffect); HRESULT DragLeave(); HRESULT DragOver( [in] POINT *ppt, [in] DWORD dwEffect); HRESULT Drop( [in] IDataObject *pDataObject, [in] POINT *ppt, [in] DWORD dwEffect); HRESULT Show( [in] BOOL fShow );}/***************************************************************************** * IContextMenu interface */[ object, uuid(000214e4-0000-0000-c000-000000000046), pointer_default(unique), local]interface IContextMenu : IUnknown{cpp_quote("#define CMF_NORMAL 0x00000000")cpp_quote("#define CMF_DEFAULTONLY 0x00000001")cpp_quote("#define CMF_VERBSONLY 0x00000002")cpp_quote("#define CMF_EXPLORE 0x00000004")cpp_quote("#define CMF_NOVERBS 0x00000008")cpp_quote("#define CMF_CANRENAME 0x00000010")cpp_quote("#define CMF_NODEFAULT 0x00000020")cpp_quote("#define CMF_INCLUDESTATIC 0x00000040")cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100")cpp_quote("#define CMF_DISABLEDVERBS 0x00000200")cpp_quote("#define CMF_ASYNCVERBSTATE 0x00000400")cpp_quote("#define CMF_OPTIMIZEFORINVOKE 0x00000800")cpp_quote("#define CMF_SYNCCASCADEMENU 0x00001000")cpp_quote("#define CMF_DONOTPICKDEFAULT 0x00002000")cpp_quote("#define CMF_RESERVED 0xffff0000 // View specific")cpp_quote("#define GCS_VERBA 0x00000000")cpp_quote("#define GCS_HELPTEXTA 0x00000001")cpp_quote("#define GCS_VALIDATEA 0x00000002")cpp_quote("#define GCS_VERBW 0x00000004")cpp_quote("#define GCS_HELPTEXTW 0x00000005")cpp_quote("#define GCS_VALIDATEW 0x00000006")cpp_quote("#define GCS_UNICODE 0x00000004")cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)")cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)")cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)")cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"")cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"")cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"")cpp_quote("#if defined(__GNUC__)")cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }")cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }")cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }")cpp_quote("#elif defined(_MSC_VER)")cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"")cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"")cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"")cpp_quote("#else")cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};")cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};")cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};")cpp_quote("#endif")cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)")cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)")cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)")cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY")cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON") // (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__)cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI")cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE")cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE")cpp_quote("#if (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__)")cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME") // NOTE: Depends on undocumented definecpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE") // NOTE: Depends on undocumented definecpp_quote("#endif")cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM") // NOTE: Depends on undocumented definecpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC")cpp_quote("#endif")cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000")cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000")cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000")cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE")cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS") typedef IContextMenu *LPCONTEXTMENU; typedef struct tagCMINVOKECOMMANDINFO { DWORD cbSize; DWORD fMask; HWND hwnd; LPCSTR lpVerb; LPCSTR lpParameters; LPCSTR lpDirectory; INT nShow; DWORD dwHotKey; HANDLE hIcon; } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO; typedef struct tagCMInvokeCommandInfoEx { DWORD cbSize; DWORD fMask; HWND hwnd; LPCSTR lpVerb; LPCSTR lpParameters; LPCSTR lpDirectory; INT nShow; DWORD dwHotKey; HANDLE hIcon; LPCSTR lpTitle; LPCWSTR lpVerbW; LPCWSTR lpParametersW; LPCWSTR lpDirectoryW; LPCWSTR lpTitleW; POINT ptInvoke; } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX; HRESULT QueryContextMenu( [in] HMENU hmenu, [in] UINT indexMenu, [in] UINT idCmdFirst, [in] UINT idCmdLast, [in] UINT uFlags); HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici ); HRESULT GetCommandString( [in] UINT_PTR idCmd, [in] UINT uType, [out] UINT *pwReserved, [out, size_is(cchMax)] LPSTR pszName, [in] UINT cchMax);}/***************************************************************************** * IContextMenu2 interface */[ object, uuid(000214f4-0000-0000-c000-000000000046), pointer_default(unique), local]interface IContextMenu2 : IContextMenu{ typedef IContextMenu2 *LPCONTEXTMENU2; HRESULT HandleMenuMsg( [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam);}/***************************************************************************** * IContextMenu3 interface */[ object, uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719), pointer_default(unique), local]interface IContextMenu3 : IContextMenu2{ typedef IContextMenu3 *LPCONTEXTMENU3; HRESULT HandleMenuMsg2( [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult);}/***************************************************************************** * IContextMenuCB interface */[ object, uuid(3409e930-5a39-11d1-83fa-00a0c90dc849), pointer_default(unique), local]interface IContextMenuCB : IUnknown{ HRESULT CallBack( [in] IShellFolder *psf, [in] HWND hwndOwner, [in] IDataObject *pdtobj, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam);}/***************************************************************************** * IShellExecuteHookA interface */[ object, uuid(000214f5-0000-0000-c000-000000000046), pointer_default(unique), local]interface IShellExecuteHookA : IUnknown{ cpp_quote("struct _SHELLEXECUTEINFOA;") HRESULT Execute( [in, out] struct _SHELLEXECUTEINFOA* pei);}/***************************************************************************** * IShellExecuteHookW interface */[ object, uuid(000214fb-0000-0000-c000-000000000046), pointer_default(unique), local]interface IShellExecuteHookW : IUnknown{ cpp_quote("struct _SHELLEXECUTEINFOW;") HRESULT Execute( [in, out] struct _SHELLEXECUTEINFOW* pei);}/***************************************************************************** * IShellLinkDataList interface */[ object, uuid(45e2b4ae-b1c3-11d0-b92f-00a0c90312e1), pointer_default(unique)]interface IShellLinkDataList : IUnknown{ [local] HRESULT AddDataBlock( [in] void *pDataBlock); [local] HRESULT CopyDataBlock( [in] DWORD dwSig, [out] void **ppDataBlock); HRESULT RemoveDataBlock( [in] DWORD dwSig); HRESULT GetFlags( [out] DWORD *pdwFlags); HRESULT SetFlags( [in] DWORD dwFlags);}/***************************************************************************** * IResolveShellLink interface */[ object, uuid(5cd52983-9449-11d2-963a-00c04f79adf0), pointer_default(unique)]interface IResolveShellLink : IUnknown{ HRESULT ResolveShellLink( [in] IUnknown *punk, [in] HWND hwnd, [in] DWORD fFlags);}/***************************************************************************** * IURLSearchHook interface */[ object, uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497), pointer_default(unique), local]interface IURLSearchHook : IUnknown{ HRESULT Translate( [in, out] LPWSTR lpwszSearchURL, [in] DWORD cchBufferSize);}/***************************************************************************** * ISearchContext interface */[ object, uuid(09f656a2-41af-480c-88f7-16cc0d164615), pointer_default(unique), local]interface ISearchContext : IUnknown{ HRESULT GetSearchUrl( [in] BSTR *pbstrSearchUrl); HRESULT GetSearchText( [in] BSTR *pbstrSearchText); HRESULT GetSearchStyle( [in] BSTR *pdwSearchStyle);}/***************************************************************************** * IURLSearchHook2 interface */[ object, uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0), pointer_default(unique), local]interface IURLSearchHook2 : IURLSearchHook{ HRESULT TranslateWithSearchContext( [in, out] LPWSTR lpwszSearchURL, [in] DWORD cchBufferSize, [in] ISearchContext *pSearchContext);}cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)")/***************************************************************************** * INewShortcutHookA interface */[ object, uuid(000214e1-0000-0000-c000-000000000046), pointer_default(unique), local]interface INewShortcutHookA : IUnknown{ HRESULT SetReferent( [in] LPCSTR pcszReferent, [in] HWND hwnd); HRESULT GetReferent( [out] LPSTR pcszReferent, [in] int cchReferent); HRESULT SetFolder( [in] LPCSTR pcszReferent); HRESULT GetFolder( [out] LPSTR pcszReferent, [in] int cchFolder); HRESULT GetName( [out] LPSTR pszName, [in] int cchName); HRESULT GetExtension( [out] LPSTR pszExtension, [in] int cchExtension);}/***************************************************************************** * INewShortcutHookW interface */[ object, uuid(000214f7-0000-0000-c000-000000000046), pointer_default(unique), local]interface INewShortcutHookW : IUnknown{ HRESULT SetReferent( [in] LPCWSTR pcszReferent, [in] HWND hwnd); HRESULT GetReferent( [out] LPWSTR pcszReferent, [in] int cchReferent); HRESULT SetFolder( [in] LPCWSTR pcszReferent); HRESULT GetFolder( [out] LPWSTR pcszReferent, [in] int cchFolder); HRESULT GetName( [out] LPWSTR pszName, [in] int cchName); HRESULT GetExtension( [out] LPWSTR pszExtension, [in] int cchExtension);}/***************************************************************************** * IRunnableTask interface */[ object, uuid(85788d00-6807-11d0-b810-00c04fd706ec), pointer_default(unique), local]interface IRunnableTask : IUnknown{ HRESULT Run(); HRESULT Kill([in] BOOL fWait); HRESULT Suspend(); HRESULT Resume(); ULONG IsRunning();}/***************************************************************************** * IShellChangeNotify interface */[ object, uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2), pointer_default(unique), local]interface IShellChangeNotify : IUnknown{ HRESULT OnChange( [in] LONG lEvent, [in] PCIDLIST_ABSOLUTE pidl1, [in] PCIDLIST_ABSOLUTE pidl2);}cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind Data\"")/***************************************************************************** * IFileSystemBindData interface */[ object, uuid(01e18d10-4d8b-11d2-855d-006008059367), pointer_default(unique), local]interface IFileSystemBindData : IUnknown{ HRESULT SetFindData( [in] const WIN32_FIND_DATAW *pfd); HRESULT GetFindData( [out] WIN32_FIND_DATAW *pfd);}/***************************************************************************** * ITaskbarList interface */[ object, uuid(56FDF342-FD6D-11d0-958A-006097C9A090), pointer_default(unique)]interface ITaskbarList : IUnknown{ HRESULT HrInit(); HRESULT AddTab( [in] HWND hwnd); HRESULT DeleteTab( [in] HWND hwnd); HRESULT ActivateTab( [in] HWND hwnd); HRESULT SetActiveAlt( [in] HWND hwnd);}/***************************************************************************** * ITaskbarList2 interface */[ object, uuid(602D4995-B13A-429B-A66E-1935E44F4317), pointer_default(unique)]interface ITaskbarList2 : ITaskbarList{ HRESULT MarkFullscreenWindow( [in] HWND hwnd, [in] BOOL fullscreen);}cpp_quote("#ifdef MIDL_PASS")typedef IUnknown* HIMAGELIST;cpp_quote("#endif")typedef [v1_enum] enum THUMBBUTTONFLAGS { THBF_ENABLED = 0x0000, THBF_DISABLED = 0x0001, THBF_DISMISSONCLICK = 0x0002, THBF_NOBACKGROUND = 0x0004, THBF_HIDDEN = 0x0008, THBF_NONINTERACTIVE = 0x0010} THUMBBUTTONFLAGS;cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)")typedef [v1_enum] enum THUMBBUTTONMASK { THB_BITMAP = 0x0001, THB_ICON = 0x0002, THB_TOOLTIP = 0x0004, THB_FLAGS = 0x0008} THUMBBUTTONMASK;cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)")cpp_quote("#include <pshpack8.h>")typedef struct THUMBBUTTON { THUMBBUTTONMASK dwMask; UINT iId; UINT iBitmap; HICON hIcon; WCHAR szTip[260]; THUMBBUTTONFLAGS dwFlags;} THUMBBUTTON, *LPTHUMBBUTTON;cpp_quote("#include <poppack.h>")[ uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf), object]interface ITaskbarList3 : ITaskbarList2{ typedef [v1_enum] enum TBPFLAG { TBPF_NOPROGRESS = 0x0000, TBPF_INDETERMINATE = 0x0001, TBPF_NORMAL = 0x0002, TBPF_ERROR = 0x0004, TBPF_PAUSED = 0x0008 } TBPFLAG; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)") HRESULT SetProgressValue( [in] HWND hwnd, [in] ULONGLONG ullCompleted, [in] ULONGLONG ullTotal); HRESULT SetProgressState( [in] HWND hwnd, [in] TBPFLAG tbpFlags); HRESULT RegisterTab( [in] HWND hwndTab, [in] HWND hwndMDI); HRESULT UnregisterTab([in] HWND hwndTab); HRESULT SetTabOrder( [in] HWND hwndTab, [in] HWND hwndInsertBefore); HRESULT SetTabActive( [in] HWND hwndTab, [in] HWND hwndMDI, [in] DWORD dwReserved); HRESULT ThumbBarAddButtons( [in] HWND hwnd, [in] UINT cButtons, [in, size_is(cButtons)] LPTHUMBBUTTON pButton); HRESULT ThumbBarUpdateButtons( [in] HWND hwnd, [in] UINT cButtons, [in, size_is(cButtons)] LPTHUMBBUTTON pButton); HRESULT ThumbBarSetImageList( [in] HWND hwnd, [in] HIMAGELIST himl); HRESULT SetOverlayIcon( [in] HWND hwnd, [in] HICON hIcon, [in, unique, string] LPCWSTR pszDescription); HRESULT SetThumbnailTooltip( [in] HWND hwnd, [in, unique, string] LPCWSTR pszTip); HRESULT SetThumbnailClip( [in] HWND hwnd, [in] RECT *prcClip);}[ uuid(c43dc798-95d1-4bea-9030-bb99e2983a1a), object]interface ITaskbarList4 : ITaskbarList3{ typedef [v1_enum] enum STPFLAG { STPF_NONE = 0x0000, STPF_USEAPPTHUMBNAILALWAYS = 0x0001, STPF_USEAPPTHUMBNAILWHENACTIVE = 0x0002, STPF_USEAPPPEEKALWAYS = 0x0004, STPF_USEAPPPEEKWHENACTIVE = 0x0008 } STPFLAG; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)") HRESULT SetTabProperties( [in] HWND hwndTab, [in] STPFLAG stpFlags);}/***************************************************************************** * IDefaultExtractIconInit interface */[ object, uuid(800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9), /* FIXME: wrong value! */ pointer_default(unique), local]interface IDefaultExtractIconInit : IUnknown{ HRESULT SetDefaultIcon( [in] LPCWSTR pszFile, [in] int iIcon); HRESULT SetFlags( [in] UINT uFlags); HRESULT SetKey( [in] HKEY hkey); HRESULT SetNormalIcon( [in] LPCWSTR pszFile, [in] int iIcon); HRESULT SetOpenIcon( [in] LPCWSTR pszFile, [in] int iIcon); HRESULT SetShortcutIcon( [in] LPCWSTR pszFile, [in] int iIcon);}#ifdef __REACTOS__/***************************************************************************** * IExplorerCommand interface (Vista+) */interface IEnumExplorerCommand;[ uuid(A08CE4D0-FA25-44AB-B57C-C7B1C323E0B9), pointer_default(unique)]interface IExplorerCommand : IUnknown{ cpp_quote("// GetIcon(ppszIcon) Receives resource string that identifies icon source") typedef [v1_enum] enum _EXPCMDSTATE { ECS_ENABLED = 0x000, ECS_DISABLED = 0x001, ECS_HIDDEN = 0x002, ECS_CHECKBOX = 0x004, ECS_CHECKED = 0x008, ECS_RADIOCHECK = 0x010, // Windows 7 } EXPCMDSTATE; typedef [v1_enum] enum _EXPCMDFLAGS { ECF_DEFAULT = 0x000, ECF_HASSUBCOMMANDS = 0x001, ECF_HASSPLITBUTTON = 0x002, ECF_HIDELABEL = 0x004, ECF_ISSEPARATOR = 0x008, ECF_HASLUASHIELD = 0x010, ECF_SEPARATORBEFORE = 0x020, // Windows 7 ECF_SEPARATORAFTER = 0x040, // Windows 7 ECF_ISDROPDOWN = 0x080, // Windows 7 ECF_TOGGLEABLE = 0x100, // Windows 8 ECF_AUTOMENUICONS = 0x200, // Windows 8 } EXPCMDFLAGS; HRESULT GetTitle( [in, unique] IShellItemArray *psiItemArray, [out, string] LPWSTR *ppszName); HRESULT GetIcon( [in, unique] IShellItemArray *psiItemArray, [out, string] LPWSTR *ppszIcon); HRESULT GetToolTip( [in, unique] IShellItemArray *psiItemArray, [out, string] LPWSTR *ppszInfotip); HRESULT GetCanonicalName( [out] GUID* pguidCommandName); HRESULT GetState( [in] IShellItemArray *psiItemArray, [in] BOOL fOkToBeSlow, [out] EXPCMDSTATE *pCmdState); HRESULT Invoke( [in] IShellItemArray *psiItemArray, [in, unique] IBindCtx *pbc); HRESULT GetFlags( [out] EXPCMDFLAGS *pFlags); HRESULT EnumSubCommands( [out] IEnumExplorerCommand **ppEnum);};/***************************************************************************** * IExplorerCommandState interface (Vista+) */[ object, uuid(BDDACB60-7657-47AE-8445-D23E1ACF82AE), pointer_default(unique)]interface IExplorerCommandState : IUnknown{ HRESULT GetState( [in] IShellItemArray *psiItemArray, [in] BOOL fOkToBeSlow, [out] EXPCMDSTATE *pCmdState);}/***************************************************************************** * IInitializeCommand interface (Vista+) */[ object, uuid(85075ACF-231F-40EA-9610-D26B7B58F638), pointer_default(unique)]interface IInitializeCommand : IUnknown{ HRESULT Initialize( [in, string] LPCWSTR pszCommandName, [in, optional] IPropertyBag *ppb);}/***************************************************************************** * IEnumExplorerCommand interface (Vista+) */[ object, uuid(A88826F8-186F-4987-AADE-EA0CEF8FBFE8), pointer_default(unique)]interface IEnumExplorerCommand : IUnknown{ [local] HRESULT Next( [in] ULONG celt, [out] IExplorerCommand** pUICommand, [out, optional] ULONG *pceltFetched); [call_as(Next)] HRESULT RemoteNext( [in] ULONG celt, [out] IExplorerCommand** pUICommand, [out, optional] ULONG *pceltFetched); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IEnumExplorerCommand **ppenum);};/***************************************************************************** * IExplorerCommandProvider interface (Vista+) */[ uuid(64961751-0835-43C0-8FFE-D57686530E64), pointer_default(unique)]interface IExplorerCommandProvider : IUnknown{ cpp_quote("// GetCommands usually creates an IEnumExplorerCommand") cpp_quote("// GetCommand usually creates an IExplorerCommand") HRESULT GetCommands( [in] IUnknown *punkSite, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT GetCommand( [in] REFGUID rguidCommandId, [in] REFIID riid, [out, iid_is(riid)] void **ppv);};/***************************************************************************** * IExecuteCommand interface (7+) */[ uuid(7F9185B0-CB92-43C5-80A9-92277A4F7B54), pointer_default(unique)]interface IExecuteCommand : IUnknown{ HRESULT SetKeyState([in] DWORD grfKeyState); HRESULT SetParameters([in, string] LPCWSTR pszParameters); HRESULT SetPosition([in] POINT pt); HRESULT SetShowWindow([in] int nShow); HRESULT SetNoShowUI([in] BOOL fNoShowUI); HRESULT SetDirectory([in, string] LPCWSTR pszDirectory); HRESULT Execute();};/***************************************************************************** * IObjectWithSelection interface (Vista+) */[ uuid(1C9CD5BB-98E9-4491-A60F-31AACC72B83C), pointer_default(unique)]interface IObjectWithSelection : IUnknown{ HRESULT SetSelection([in] IShellItemArray *psia); HRESULT GetSelection([in] REFIID riid, [out, iid_is(riid)] void **ppv);};/***************************************************************************** * IRegTreeItem interface */[ uuid(A9521922-0812-4d44-9EC3-7FD38C726F3D), pointer_default(unique)]interface IRegTreeItem : IUnknown{ HRESULT GetCheckState([out] BOOL *pbCheck); HRESULT SetCheckState([in] BOOL bCheck);};/***************************************************************************** * IOpenControlPanel interface (Vista+) */[ object, uuid(D11AD862-66DE-4DF4-BF6C-1F5621996AF1), pointer_default(unique)]interface IOpenControlPanel : IUnknown{ typedef [v1_enum] enum CPVIEW { CPVIEW_CLASSIC = 0, CPVIEW_CATEGORY = 1, CPVIEW_ALLITEMS = CPVIEW_CLASSIC, CPVIEW_HOME = CPVIEW_CATEGORY } CPVIEW; HRESULT Open( [in, optional] LPCWSTR pszName, [in, optional] LPCWSTR pszPage, [in, optional] IUnknown *punkSite); HRESULT GetPath( [in, optional] LPCWSTR pszName, [out, string, size_is(cchPath)] LPWSTR pszPath, [in] UINT cchPath); HRESULT GetCurrentView( [out] CPVIEW *pView);}#endif // __REACTOS__/***************************************************************************** * IDeskBand interface */cpp_quote("#define DBIM_MINSIZE 0x0001")cpp_quote("#define DBIM_MAXSIZE 0x0002")cpp_quote("#define DBIM_INTEGRAL 0x0004")cpp_quote("#define DBIM_ACTUAL 0x0008")cpp_quote("#define DBIM_TITLE 0x0010")cpp_quote("#define DBIM_MODEFLAGS 0x0020")cpp_quote("#define DBIM_BKCOLOR 0x0040")cpp_quote("#include <pshpack8.h>")typedef struct tagDESKBANDINFO{ DWORD dwMask; POINTL ptMinSize; POINTL ptMaxSize; POINTL ptIntegral; POINTL ptActual; WCHAR wszTitle[256]; DWORD dwModeFlags; COLORREF crBkgnd;} DESKBANDINFO;cpp_quote("#include <poppack.h>")cpp_quote("#define DBIMF_NORMAL 0x0000")cpp_quote("#define DBIMF_FIXED 0x0001")cpp_quote("#define DBIMF_FIXEDBMP 0x0004 // a fixed background bitmap (if supported)")cpp_quote("#define DBIMF_VARIABLEHEIGHT 0x0008")cpp_quote("#define DBIMF_UNDELETEABLE 0x0010")cpp_quote("#define DBIMF_DEBOSSED 0x0020")cpp_quote("#define DBIMF_BKCOLOR 0x0040")cpp_quote("#define DBIMF_USECHEVRON 0x0080")cpp_quote("#define DBIMF_BREAK 0x0100")cpp_quote("#define DBIMF_ADDTOFRONT 0x0200")cpp_quote("#define DBIMF_TOPALIGN 0x0400")cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)")cpp_quote("#define DBIMF_NOGRIPPER 0x0800")cpp_quote("#define DBIMF_ALWAYSGRIPPER 0x1000")cpp_quote("#define DBIMF_NOMARGINS 0x2000")cpp_quote("#endif // NTDDI_LONGHORN")cpp_quote("#define DBIF_VIEWMODE_NORMAL 0x0000")cpp_quote("#define DBIF_VIEWMODE_VERTICAL 0x0001")cpp_quote("#define DBIF_VIEWMODE_FLOATING 0x0002")cpp_quote("#define DBIF_VIEWMODE_TRANSPARENT 0x0004")enum tagDESKBANDCID { DBID_BANDINFOCHANGED = 0, DBID_SHOWONLY = 1, DBID_MAXIMIZEBAND = 2, DBID_PUSHCHEVRON = 3, DBID_DELAYINIT = 4, DBID_FINISHINIT = 5, DBID_SETWINDOWTHEME = 6, DBID_PERMITAUTOHIDE = 7,};cpp_quote("#define DBPC_SELECTFIRST (DWORD)-1")cpp_quote("#define DBPC_SELECTLAST (DWORD)-2")cpp_quote("#define CGID_DeskBand IID_IDeskBand")[ uuid(EB0FE172-1A3A-11D0-89B3-00A0C90A90AC), object,]interface IDeskBand : IDockingWindow{ HRESULT GetBandInfo( [in] DWORD dwBandID, [in] DWORD dwViewMode, [in, out] DESKBANDINFO* pdbi);}cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")[ uuid(EB0FE173-1A3A-11D0-89B3-00A0C90A90AC), object, pointer_default(unique), local]interface IDeskBar : IOleWindow{ HRESULT SetClient([in] IUnknown* punkClient); HRESULT GetClient([out] IUnknown** ppunkClient); HRESULT OnPosRectChangeDB([in] RECT *prc);}/***************************************************************************** * IMenuPopup interface */[ uuid(D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4), object, pointer_default(unique), local]interface IMenuPopup : IDeskBar{ enum tagMENUPOPUPSELECT { MPOS_EXECUTE = 0, MPOS_FULLCANCEL, MPOS_CANCELLEVEL, MPOS_SELECTLEFT, MPOS_SELECTRIGHT, MPOS_CHILDTRACKING }; enum tagMENUPOPUPPOPUPFLAGS { MPPF_SETFOCUS = 0x00000001, MPPF_INITIALSELECT = 0x00000002, MPPF_NOANIMATE = 0x00000004, MPPF_KEYBOARD = 0x00000010, MPPF_REPOSITION = 0x00000020, MPPF_FORCEZORDER = 0x00000040, MPPF_FINALSELECT = 0x00000080, MPPF_TOP = 0x20000000, MPPF_LEFT = 0x40000000, MPPF_RIGHT = 0x60000000, MPPF_BOTTOM = 0x80000000, MPPF_POS_MASK = 0xE0000000, MPPF_ALIGN_LEFT = 0x02000000, MPPF_ALIGN_RIGHT = 0x04000000 }; typedef int MP_POPUPFLAGS; HRESULT Popup( [in] POINTL *ppt, [in] RECTL *prcExclude, [in] MP_POPUPFLAGS dwFlags); HRESULT OnSelect([in] DWORD dwSelectType); HRESULT SetSubMenu( [in] IMenuPopup* pmp, [in] BOOL fSet);}cpp_quote("#endif /* _WIN32_IE_IE60 */")cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE40)")/***************************************************************************** * IBandSite interface */cpp_quote("#include <pshpack8.h>")typedef struct tagBANDSITEINFO{ DWORD dwMask; DWORD dwState; DWORD dwStyle;} BANDSITEINFO;cpp_quote("#include <poppack.h>")enum tagBANDSITECID { BSID_BANDADDED, BSID_BANDREMOVED,};cpp_quote("#define BSIM_STATE 0x00000001")cpp_quote("#define BSIM_STYLE 0x00000002")cpp_quote("#define BSSF_VISIBLE 0x00000001")cpp_quote("#define BSSF_NOTITLE 0x00000002")cpp_quote("#define BSSF_UNDELETEABLE 0x00001000")cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000")cpp_quote("#define BSIS_NOGRIPPER 0x00000001")cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002")cpp_quote("#define BSIS_LEFTALIGN 0x00000004")cpp_quote("#define BSIS_SINGLECLICK 0x00000008")cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010")cpp_quote("#define BSIS_NODROPTARGET 0x00000020")cpp_quote("#define BSIS_NOCAPTION 0x00000040")cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080")cpp_quote("#define BSIS_LOCKED 0x00000100")cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200")cpp_quote("#endif /* _WIN32_IE_IE70 */")cpp_quote("#define SID_SBandSite IID_IBandSite")cpp_quote("#define CGID_BandSite IID_IBandSite")[ object, uuid(4CF504B0-DE96-11D0-8B3F-00A0C911E8E5)]interface IBandSite : IUnknown{ HRESULT AddBand([in] IUnknown* punk); HRESULT EnumBands( [in] UINT uBand, [out] DWORD* pdwBandID); HRESULT QueryBand( [in] DWORD dwBandID, [out] IDeskBand** ppstb, [out] DWORD* pdwState, [out, string, size_is(cchName)] LPWSTR pszName, [in] int cchName); HRESULT SetBandState( [in] DWORD dwBandID, [in] DWORD dwMask, [in] DWORD dwState); HRESULT RemoveBand([in] DWORD dwBandID); HRESULT GetBandObject( [in] DWORD dwBandID, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT SetBandSiteInfo([in] const BANDSITEINFO *pbsinfo); HRESULT GetBandSiteInfo([in, out] BANDSITEINFO *pbsinfo);}cpp_quote("#endif /* _WIN32_IE_IE40 */")/***************************************************************************** * IMenuBand interface */[ uuid(568804CD-CBD7-11d0-9816-00C04FD91972), object, pointer_default(unique), local]interface IMenuBand : IUnknown{ enum tagMENUBANDHANDLERCID { MBHANDCID_PIDLSELECT = 0, }; HRESULT IsMenuMessage([in] MSG* pmsg); HRESULT TranslateMenuMessage( [in, out] MSG* pmsg, [out] LRESULT* plRet);}/***************************************************************************** * IShellMenuCallback interface */cpp_quote("#include <pshpack8.h>")typedef struct tagSMDATA{ DWORD dwMask; DWORD dwFlags; HMENU hmenu; HWND hwnd; UINT uId; UINT uIdParent; UINT uIdAncestor; IUnknown *punk; PIDLIST_ABSOLUTE pidlFolder; PUITEMID_CHILD pidlItem; IShellFolder *psf; void *pvUserData;} SMDATA, *LPSMDATA;cpp_quote("#define SMDM_SHELLFOLDER 0x00000001")cpp_quote("#define SMDM_HMENU 0x00000002")cpp_quote("#define SMDM_TOOLBAR 0x00000004")typedef struct tagSMINFO{ DWORD dwMask; DWORD dwType; DWORD dwFlags; int iIcon;} SMINFO, *PSMINFO;typedef struct tagSHCSCHANGENOTIFYSTRUCT{ LONG lEvent; PCIDLIST_ABSOLUTE pidl1; PCIDLIST_ABSOLUTE pidl2;} SMCSHCHANGENOTIFYSTRUCT, *PSMCSHCHANGENOTIFYSTRUCT;cpp_quote("#include <poppack.h>")enum{ SMIM_TYPE = 0x00000001, SMIM_FLAGS = 0x00000002, SMIM_ICON = 0x00000004};enum{ SMIT_SEPARATOR = 0x00000001, SMIT_STRING = 0x00000002};enum{ SMIF_ICON = 0x00000001, SMIF_ACCELERATOR = 0x00000002, SMIF_DROPTARGET = 0x00000004, SMIF_SUBMENU = 0x00000008, SMIF_CHECKED = 0x00000020, SMIF_DROPCASCADE = 0x00000040, SMIF_HIDDEN = 0x00000080, SMIF_DISABLED = 0x00000100, SMIF_TRACKPOPUP = 0x00000200, SMIF_DEMOTED = 0x00000400, SMIF_ALTSTATE = 0x00000800, SMIF_DRAGNDROP = 0x00001000, SMIF_NEW = 0x00002000,};cpp_quote("#define SMC_INITMENU 0x00000001")cpp_quote("#define SMC_CREATE 0x00000002")cpp_quote("#define SMC_EXITMENU 0x00000003")cpp_quote("#define SMC_GETINFO 0x00000005")cpp_quote("#define SMC_GETSFINFO 0x00000006")cpp_quote("#define SMC_GETOBJECT 0x00000007")cpp_quote("#define SMC_GETSFOBJECT 0x00000008")cpp_quote("#define SMC_SFEXEC 0x00000009")cpp_quote("#define SMC_SFSELECTITEM 0x0000000A")cpp_quote("#define SMC_REFRESH 0x00000010")cpp_quote("#define SMC_DEMOTE 0x00000011")cpp_quote("#define SMC_PROMOTE 0x00000012")cpp_quote("#define SMC_DEFAULTICON 0x00000016")cpp_quote("#define SMC_NEWITEM 0x00000017")cpp_quote("#define SMC_CHEVRONEXPAND 0x00000019")cpp_quote("#define SMC_DISPLAYCHEVRONTIP 0x0000002A")cpp_quote("#define SMC_SETSFOBJECT 0x0000002D")cpp_quote("#define SMC_SHCHANGENOTIFY 0x0000002E")cpp_quote("#define SMC_CHEVRONGETTIP 0x0000002F")cpp_quote("#define SMC_SFDDRESTRICTED 0x00000030")cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70) || defined(__REACTOS__)")cpp_quote("#define SMC_SFEXEC_MIDDLE 0x00000031")cpp_quote("#define SMC_GETAUTOEXPANDSTATE 0x00000041")cpp_quote("#define SMC_AUTOEXPANDCHANGE 0x00000042")cpp_quote("#define SMC_GETCONTEXTMENUMODIFIER 0x00000043")cpp_quote("#define SMC_GETBKCONTEXTMENU 0x00000044")cpp_quote("#define SMC_OPEN 0x00000045")cpp_quote("#define SMAE_EXPANDED 0x00000001")cpp_quote("#define SMAE_CONTRACTED 0x00000002")cpp_quote("#define SMAE_USER 0x00000004")cpp_quote("#define SMAE_VALID 0x00000007")cpp_quote("#endif")[ uuid(4CA300A1-9B8D-11d1-8B22-00C04FD918D0), object, pointer_default(unique), local]interface IShellMenuCallback : IUnknown{ HRESULT CallbackSM( [in, out] LPSMDATA psmd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam);}/***************************************************************************** * IShellMenu interface */cpp_quote("#define SMINIT_DEFAULT 0x00000000")cpp_quote("#define SMINIT_RESTRICT_DRAGDROP 0x00000002")cpp_quote("#define SMINIT_TOPLEVEL 0x00000004")cpp_quote("#define SMINIT_CACHED 0x00000010")cpp_quote("#define SMINIT_VERTICAL 0x10000000")cpp_quote("#define SMINIT_HORIZONTAL 0x20000000")cpp_quote("")cpp_quote("#define ANCESTORDEFAULT (UINT)-1")cpp_quote("")cpp_quote("#define SMSET_TOP 0x10000000")cpp_quote("#define SMSET_BOTTOM 0x20000000")cpp_quote("#define SMSET_DONTOWN 0x00000001")cpp_quote("")cpp_quote("#define SMINV_REFRESH 0x00000001")cpp_quote("#define SMINV_ID 0x00000008")[ uuid(EE1F7637-E138-11d1-8379-00C04FD918D0), object, pointer_default(unique), local]interface IShellMenu : IUnknown{ HRESULT Initialize( [in] IShellMenuCallback *psmc, [in] UINT uId, [in] UINT uIdAncestor, [in] DWORD dwFlags); HRESULT GetMenuInfo( [out] IShellMenuCallback **ppsmc, [out] UINT *puId, [out] UINT *puIdAncestor, [out] DWORD *pdwFlags); HRESULT SetShellFolder( [in] IShellFolder *psf, [in] PCIDLIST_ABSOLUTE pidlFolder, [in] HKEY hKey, [in] DWORD dwFlags); HRESULT GetShellFolder( [out] DWORD *pdwFlags, [out] PIDLIST_ABSOLUTE *ppidl, [in] REFIID riid, [out] void **ppv); HRESULT SetMenu( [in] HMENU hmenu, [in] HWND hwnd, [in] DWORD dwFlags); HRESULT GetMenu( [out] HMENU *phmenu, [out] HWND *phwnd, [out] DWORD *pdwFlags); HRESULT InvalidateItem( [in] LPSMDATA psmd, [in] DWORD dwFlags); HRESULT GetState( [out] LPSMDATA psmd); HRESULT SetMenuToolbar( [in] IUnknown *punk, [in] DWORD dwFlags);}cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")/***************************************************************************** * ITrackShellMenu interface */[ uuid(8278F932-2A3E-11d2-838F-00C04FD918D0), object, pointer_default(unique), local]interface ITrackShellMenu : IShellMenu{ HRESULT SetObscured( [in] HWND hwndTB, [in] IUnknown *punkBand, DWORD dwSMSetFlags); HRESULT Popup( [in] HWND hwnd, [in] POINTL *ppt, [in] RECTL *prcExclude, MP_POPUPFLAGS dwFlags);};cpp_quote("#endif /* _WIN32_IE_IE60 */")/***************************************************************************** * IAutoCompleteDropDown interface */[ object, uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB), pointer_default(unique)]interface IAutoCompleteDropDown : IUnknown{cpp_quote("#define ACDD_VISIBLE 0x0001") HRESULT GetDropDownStatus( [out] DWORD *pdwFlags, [out, string] LPWSTR *ppwszString); HRESULT ResetEnumerator();}/***************************************************************************** * IProfferService interface */[ object, uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0), pointer_default(unique)]interface IProfferService : IUnknown{ HRESULT ProfferService( [in] REFGUID service, [in] IServiceProvider *pService, [out] DWORD *pCookie); HRESULT RevokeService([in] DWORD cookie);}/***************************************************************************** * IExplorerBrowserEvents interface */[ object, uuid(361BBDC7-E6EE-4E13-BE58-58E2240C810F)]interface IExplorerBrowserEvents : IUnknown{ HRESULT OnNavigationPending( [in] PCIDLIST_ABSOLUTE pidlFolder); HRESULT OnViewCreated( [in] IShellView *psv); HRESULT OnNavigationComplete( [in] PCIDLIST_ABSOLUTE pidlFolder); HRESULT OnNavigationFailed( [in] PCIDLIST_ABSOLUTE pidlFolder);}typedef GUID EXPLORERPANE;typedef EXPLORERPANE *REFEXPLORERPANE;cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility")/***************************************************************************** * IExplorerPaneVisibility interface */[ object, uuid(E07010EC-BC17-44C0-97B0-46C7C95B9EDC)]interface IExplorerPaneVisibility : IUnknown{ typedef enum tagEXPLORERPANESTATE { EPS_DONTCARE = 0x0, EPS_DEFAULT_ON = 0x1, EPS_DEFAULT_OFF = 0x2, EPS_STATE_MASK = 0xffff, EPS_INITIALSTATE = 0x10000, EPS_FORCE = 0x20000 } EXPLORERPANESTATE; HRESULT GetPaneState( [in] REFEXPLORERPANE ep, [out] EXPLORERPANESTATE *peps);}typedef [v1_enum] enum tagEXPLORER_BROWSER_FILL_FLAGS { EBF_NONE = 0, EBF_SELECTFROMDATAOBJECT = 0x100, EBF_NODROPTARGET = 0x200} EXPLORER_BROWSER_FILL_FLAGS;typedef [v1_enum] enum tagEXPLORER_BROWSER_OPTIONS { EBO_NONE = 0x00, EBO_NAVIGATEONCE = 0x01, EBO_SHOWFRAMES = 0x02, EBO_ALWAYSNAVIGATE = 0x04, EBO_NOTRAVELLOG = 0x08, EBO_NOWRAPPERWINDOW = 0x10, EBO_HTMLSHAREPOINTVIEW = 0x20, EBO_NOBORDER = 0x40, EBO_NOPERSISTVIEWSTATE = 0x80,} EXPLORER_BROWSER_OPTIONS;cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser")/***************************************************************************** * IExplorerBrowser interface */[ object, uuid(DFD3B6B5-C10C-4BE9-85F6-A66969F402F6), pointer_default(unique)]interface IExplorerBrowser : IUnknown{ [local] HRESULT Initialize( [in] HWND hwndParent, [in] const RECT *prc, [in, unique] const FOLDERSETTINGS *pfs); HRESULT Destroy(); [local] HRESULT SetRect( [in,out,unique] HDWP *phdwp, [in] RECT rcBrowser); HRESULT SetPropertyBag( [in, string] LPCWSTR pszPropertyBag); HRESULT SetEmptyText( [in, string] LPCWSTR pszEmptyText); HRESULT SetFolderSettings( [in] const FOLDERSETTINGS *pfs); HRESULT Advise( [in] IExplorerBrowserEvents *psbe, [out] DWORD *pdwCookie); HRESULT Unadvise( [in] DWORD dwCookie); HRESULT SetOptions( [in] EXPLORER_BROWSER_OPTIONS dwFlag); HRESULT GetOptions( [out] EXPLORER_BROWSER_OPTIONS *pdwFlag); HRESULT BrowseToIDList( [in] PCUIDLIST_RELATIVE pidl, [in] UINT uFlags); HRESULT BrowseToObject( [in] IUnknown *punk, [in] UINT uFlags); HRESULT FillFromObject( [in] IUnknown *punk, [in] EXPLORER_BROWSER_FILL_FLAGS dwFlags); HRESULT RemoveAll(); HRESULT GetCurrentView( [in] REFIID riid, [out, iid_is(riid)] void **ppv);}/***************************************************************************** * INameSpaceTreeControl interface */[ object, uuid(028212A3-B627-47E9-8856-C14265554E4F)]interface INameSpaceTreeControl : IUnknown{ [v1_enum] enum _NSTCSTYLE { NSTCS_HASEXPANDOS = 0x00000001, NSTCS_HASLINES = 0x00000002, NSTCS_SINGLECLICKEXPAND = 0x00000004, NSTCS_FULLROWSELECT = 0x00000008, NSTCS_SPRINGEXPAND = 0x00000010, NSTCS_HORIZONTALSCROLL = 0x00000020, NSTCS_ROOTHASEXPANDO = 0x00000040, NSTCS_SHOWSELECTIONALWAYS = 0x00000080, NSTCS_NOINFOTIP = 0x00000200, NSTCS_EVENHEIGHT = 0x00000400, NSTCS_NOREPLACEOPEN = 0x00000800, NSTCS_DISABLEDRAGDROP = 0x00001000, NSTCS_NOORDERSTREAM = 0x00002000, NSTCS_RICHTOOLTIP = 0x00004000, NSTCS_BORDER = 0x00008000, NSTCS_NOEDITLABELS = 0x00010000, NSTCS_TABSTOP = 0x00020000, NSTCS_FAVORITESMODE = 0x00080000, NSTCS_AUTOHSCROLL = 0x00100000, NSTCS_FADEINOUTEXPANDOS = 0x00200000, NSTCS_EMPTYTEXT = 0x00400000, NSTCS_CHECKBOXES = 0x00800000, NSTCS_PARTIALCHECKBOXES = 0x01000000, NSTCS_EXCLUSIONCHECKBOXES = 0x02000000, NSTCS_DIMMEDCHECKBOXES = 0x04000000, NSTCS_NOINDENTCHECKS = 0x08000000, NSTCS_ALLOWJUNCTIONS = 0x10000000, NSTCS_SHOWTABSBUTTON = 0x20000000, NSTCS_SHOWDELETEBUTTON = 0x40000000, NSTCS_SHOWREFRESHBUTTON = (int)0x80000000 }; typedef DWORD NSTCSTYLE; [v1_enum] enum _NSTCROOTSTYLE { NSTCRS_VISIBLE = 0x0000, NSTCRS_HIDDEN = 0x0001, NSTCRS_EXPANDED = 0x0002 }; typedef DWORD NSTCROOTSTYLE; [v1_enum] enum _NSTCITEMSTATE { NSTCIS_NONE = 0x0000, NSTCIS_SELECTED = 0x0001, NSTCIS_EXPANDED = 0x0002, NSTCIS_BOLD = 0x0004, NSTCIS_DISABLED = 0x0008, NSTCIS_SELECTEDNOEXPAND = 0x0010 }; typedef DWORD NSTCITEMSTATE; typedef [v1_enum] enum NSTCGNI { NSTCGNI_NEXT = 0, NSTCGNI_NEXTVISIBLE = 1, NSTCGNI_PREV = 2, NSTCGNI_PREVVISIBLE = 3, NSTCGNI_PARENT = 4, NSTCGNI_CHILD = 5, NSTCGNI_FIRSTVISIBLE = 6, NSTCGNI_LASTVISIBLE = 7 } NSTCGNI; HRESULT Initialize( [in] HWND hwndParent, [in, unique] RECT *prc, [in] NSTCSTYLE nstcsFlags); HRESULT TreeAdvise( [in] IUnknown *punk, [out] DWORD *pdwCookie); HRESULT TreeUnadvise( [in] DWORD dwCookie); HRESULT AppendRoot( [in] IShellItem *psiRoot, [in] SHCONTF grfEnumFlags, [in] NSTCROOTSTYLE grfRootStyle, [in, unique] IShellItemFilter *pif); HRESULT InsertRoot( [in] int iIndex, [in] IShellItem *psiRoot, [in] SHCONTF grfEnumFlags, [in] NSTCROOTSTYLE grfRootStyle, [in, unique] IShellItemFilter *pif); HRESULT RemoveRoot( [in] IShellItem *psiRoot); HRESULT RemoveAllRoots(); HRESULT GetRootItems( [out] IShellItemArray **ppsiaRootItems); HRESULT SetItemState( [in] IShellItem *psi, [in] NSTCITEMSTATE nstcisMask, [in] NSTCITEMSTATE nstcisFlags); HRESULT GetItemState( [in] IShellItem *psi, [in] NSTCITEMSTATE nstcismask, [out] NSTCITEMSTATE *pnstcisFlags); HRESULT GetSelectedItems( [out] IShellItemArray **psiaItems); HRESULT GetItemCustomState( [in] IShellItem *psi, [out] int *piStateNumber); HRESULT SetItemCustomState( [in] IShellItem *psi, [in] int iStateNumber); HRESULT EnsureItemVisible( [in] IShellItem *psi); HRESULT SetTheme( [in, string] LPCWSTR pszTheme); HRESULT GetNextItem( [in, unique] IShellItem *psi, [in] NSTCGNI nstcgi, [out] IShellItem **ppsiNext); HRESULT HitTest( [in] POINT *ppt, [out] IShellItem **ppsiOut); HRESULT GetItemRect( [in] IShellItem *psi, [out] RECT *prect); HRESULT CollapseAll();}/***************************************************************************** * INameSpaceTreeControl2 interface */[ object, uuid(7CC7AED8-290E-49BC-8945-C1401CC9306C)]interface INameSpaceTreeControl2 : INameSpaceTreeControl{ typedef [v1_enum] enum NSTCSTYLE2 { NSTCS2_DEFAULT = 0x00, NSTCS2_INTERRUPTNOTIFICATIONS = 0x01, NSTCS2_SHOWNULLSPACEMENU = 0x02, NSTCS2_DISPLAYPADDING = 0x04, NSTCS2_DISPLAYPINNEDONLY = 0x08, NTSCS2_NOSINGLETONAUTOEXPAND = 0x10, /* The apparent typo here is */ NTSCS2_NEVERINSERTNONENUMERATED = 0x20 /* present also in the Win SDK */ } NSTCSTYLE2; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)") HRESULT SetControlStyle( [in] NSTCSTYLE nstcsMask, [in] NSTCSTYLE nstcsStyle); HRESULT GetControlStyle( [in] NSTCSTYLE nstcsMask, [out] NSTCSTYLE *pnstcsStyle); HRESULT SetControlStyle2( [in] NSTCSTYLE2 nstcsMask, [in] NSTCSTYLE2 nstcsStyle); HRESULT GetControlStyle2( [in] NSTCSTYLE2 nstcsMask, [out] NSTCSTYLE2 *pnstcsStyle);}/***************************************************************************** * INameSpaceTreeControlEvents interface */[ object, uuid(93D77985-B3D8-4484-8318-672CDDA002CE), local]interface INameSpaceTreeControlEvents : IUnknown{ [v1_enum] enum _NSTCEHITTEST { NSTCEHT_NOWHERE = 0x0001, NSTCEHT_ONITEMICON = 0x0002, NSTCEHT_ONITEMLABEL = 0x0004, NSTCEHT_ONITEMIDENT = 0x0008, NSTCEHT_ONITEMBUTTON = 0x0010, NSTCEHT_ONITEMRIGHT = 0x0020, NSTCEHT_ONITEMSTATEICON = 0x0040, NSTCEHT_ONITEM = 0x0046, NSTCEHT_ONITEMTABBUTTON = 0x1000 }; typedef DWORD NSTCEHITTEST; [v1_enum] enum _NSTCECLICKTYPE { NSTCECT_LBUTTON = 0x1, NSTCECT_MBUTTON = 0x2, NSTCECT_RBUTTON = 0x3, NSTCECT_BUTTON = 0x3, NSTCECT_DBLCLICK = 0x4 }; typedef DWORD NSTCECLICKTYPE; HRESULT OnItemClick( [in] IShellItem *psi, [in] NSTCEHITTEST nstceHitTest, [in] NSTCECLICKTYPE nstceClickType); HRESULT OnPropertyItemCommit( [in] IShellItem *psi); HRESULT OnItemStateChanging( [in] IShellItem *psi, [in] NSTCITEMSTATE nstcisMask, [in] NSTCITEMSTATE nstcisState); HRESULT OnItemStateChanged( [in] IShellItem *psi, [in] NSTCITEMSTATE nstcisMask, [in] NSTCITEMSTATE nstcisState); HRESULT OnSelectionChanged( [in] IShellItemArray *psiaSelection); HRESULT OnKeyboardInput( [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam); HRESULT OnBeforeExpand( [in] IShellItem *psi); HRESULT OnAfterExpand( [in] IShellItem *psi); HRESULT OnBeginLabelEdit( [in] IShellItem *psi); HRESULT OnEndLabelEdit( [in] IShellItem *psi); HRESULT OnGetToolTip( [in] IShellItem *psi, [out, string, size_is(cchTip)] LPWSTR pszTip, [in] int cchTip); HRESULT OnBeforeItemDelete( [in] IShellItem *psi); HRESULT OnItemAdded( [in] IShellItem *psi, [in] BOOL fIsRoot); HRESULT OnItemDeleted( [in] IShellItem *psi, [in] BOOL fIsRoot); HRESULT OnBeforeContextMenu( [in, unique] IShellItem *psi, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT OnAfterContextMenu( [in] IShellItem *psi, [in] IContextMenu *pcmIn, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT OnBeforeStateImageChange( [in] IShellItem *psi); HRESULT OnGetDefaultIconIndex( [in] IShellItem *psi, [out] int *piDefaultIcon, [out] int *piOpenIcon);}/***************************************************************************** * INameSpaceTreeControlCustomDraw interface */[ object, uuid(2D3BA758-33EE-42D5-BB7B-5F3431D86C78), local]interface INameSpaceTreeControlCustomDraw : IUnknown{ typedef struct NSTCCUSTOMDRAW { IShellItem *psi; UINT uItemState; NSTCITEMSTATE nstcis; LPCWSTR pszText; int iImage; HIMAGELIST himl; int iLevel; int iIndent; } NSTCCUSTOMDRAW; HRESULT PrePaint( [in] HDC hdc, [in] RECT *prc, [out] LRESULT *plres); HRESULT PostPaint( [in] HDC hdc, [in] RECT *prc); HRESULT ItemPrePaint( [in] HDC hdc, [in] RECT *prc, [in, out] COLORREF *pclrText, [in, out] COLORREF *pclrTextBk, [out] LRESULT *plres); HRESULT ItemPostPaint( [in] HDC hdc, [in] RECT *prc, [in] NSTCCUSTOMDRAW *pnstccdItem);}/***************************************************************************** * INameSpaceTreeControlDropHandler interface */[ object, uuid(F9C665D6-C2F2-4C19-BF33-8322D7352F51), local]interface INameSpaceTreeControlDropHandler : IUnknown{ HRESULT OnDragEnter( [in, unique] IShellItem *psiOver, [in] IShellItemArray *psiaData, [in] BOOL fOutsideSource, [in] DWORD grfKeyState, [in, out] DWORD *pdwEffect); HRESULT OnDragOver( [in, unique] IShellItem *psiOver, [in] IShellItemArray *psiaData, [in] DWORD grfKeyState, [in, out] DWORD *pdwEffect); HRESULT OnDragPosition( [in, unique] IShellItem *psiOver, [in] IShellItemArray *psiaData, [in] int iNewPosition, [in] int iOldPosition); HRESULT OnDrop( [in, unique] IShellItem *psiOver, [in] IShellItemArray *psiaData, [in] int iPosition, [in] DWORD grfKeyState, [in, out] DWORD *pdwEffect); HRESULT OnDropPosition( [in, unique] IShellItem *psiOver, [in] IShellItemArray *psiaData, [in] int iNewPosition, [in] int iOldPosition); HRESULT OnDragLeave( [in, unique] IShellItem *psiOver);}cpp_quote("#define NSTCDHPOS_ONTOP -1")interface IFileDialog;typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE{ FDEOR_DEFAULT = 0, FDEOR_ACCEPT = 1, FDEOR_REFUSE = 2} FDE_OVERWRITE_RESPONSE;typedef [v1_enum] enum FDE_SHAREVIOLATION_RESPONSE{ FDESVR_DEFAULT = 0, FDESVR_ACCEPT = 1, FDESVR_REFUSE = 2} FDE_SHAREVIOLATION_RESPONSE;/***************************************************************************** * IFileDialogEvents interface */[ object, uuid(973510DB-7D7F-452B-8975-74A85828D354), pointer_default(unique)]interface IFileDialogEvents : IUnknown{ HRESULT OnFileOk( [in] IFileDialog *pfd); HRESULT OnFolderChanging( [in] IFileDialog *pfd, [in] IShellItem *psiFolder); HRESULT OnFolderChange( [in] IFileDialog *pfd); HRESULT OnSelectionChange( [in] IFileDialog *pfd); HRESULT OnShareViolation( [in] IFileDialog *pfd, [in] IShellItem *psi, [out] FDE_SHAREVIOLATION_RESPONSE *pResponse); HRESULT OnTypeChange( [in] IFileDialog *pfd); HRESULT OnOverwrite( [in] IFileDialog *pfd, [in] IShellItem *psi, [out] FDE_OVERWRITE_RESPONSE *pResponse);}/***************************************************************************** * IModalWindow interface */[ object, uuid(B4DB1657-70D7-485E-8E3E-6FCB5A5C1802), pointer_default(unique)]interface IModalWindow : IUnknown{ [local] HRESULT Show( [in, unique, annotation("__in_opt")] HWND hwndOwner); [call_as(Show)] HRESULT RemoteShow( [in, unique] HWND hwndOwner);}typedef [v1_enum] enum FDAP{ FDAP_BOTTOM = 0, FDAP_TOP = 1} FDAP;/***************************************************************************** * IFileDialog interface */[ object, uuid(42F85136-DB7E-439C-85F1-E4075D135FC8), pointer_default(unique)]interface IFileDialog : IModalWindow{ [v1_enum] enum _FILEOPENDIALOGOPTIONS { FOS_OVERWRITEPROMPT = 0x00000002, FOS_STRICTFILETYPES = 0x00000004, FOS_NOCHANGEDIR = 0x00000008, FOS_PICKFOLDERS = 0x00000020, FOS_FORCEFILESYSTEM = 0x00000040, FOS_ALLNONSTORAGEITEMS = 0x00000080, FOS_NOVALIDATE = 0x00000100, FOS_ALLOWMULTISELECT = 0x00000200, FOS_PATHMUSTEXIST = 0x00000800, FOS_FILEMUSTEXIST = 0x00001000, FOS_CREATEPROMPT = 0x00002000, FOS_SHAREAWARE = 0x00004000, FOS_NOREADONLYRETURN = 0x00008000, FOS_NOTESTFILECREATE = 0x00010000, FOS_HIDEMRUPLACES = 0x00020000, FOS_HIDEPINNEDPLACES = 0x00040000, FOS_NODEREFERENCELINKS = 0x00100000, FOS_DONTADDTORECENT = 0x02000000, FOS_FORCESHOWHIDDEN = 0x10000000, FOS_DEFAULTNOMINIMODE = 0x20000000, FOS_FORCEPREVIEWPANEON = 0x40000000 }; typedef DWORD FILEOPENDIALOGOPTIONS; HRESULT SetFileTypes( [in] UINT cFileTypes, [in, size_is(cFileTypes)] const COMDLG_FILTERSPEC *rgFilterSpec); HRESULT SetFileTypeIndex( [in] UINT iFileType); HRESULT GetFileTypeIndex( [out] UINT *piFileType); HRESULT Advise( [in] IFileDialogEvents *pfde, [out] DWORD *pdwCookie); HRESULT Unadvise( [in] DWORD dwCookie); HRESULT SetOptions( [in] FILEOPENDIALOGOPTIONS fos); HRESULT GetOptions( [in] FILEOPENDIALOGOPTIONS *pfos); HRESULT SetDefaultFolder( [in] IShellItem *psi); HRESULT SetFolder( [in] IShellItem *psi); HRESULT GetFolder( [out] IShellItem **ppsi); HRESULT GetCurrentSelection( [out] IShellItem **ppsi); HRESULT SetFileName( [in, string] LPCWSTR pszName); HRESULT GetFileName( [out, string] LPWSTR *pszName); HRESULT SetTitle( [in, string] LPCWSTR pszTitle); HRESULT SetOkButtonLabel( [in, string] LPCWSTR pszText); HRESULT SetFileNameLabel( [in, string] LPCWSTR pszLabel); HRESULT GetResult( [out] IShellItem **ppsi); HRESULT AddPlace( [in] IShellItem *psi, [in] FDAP fdap); HRESULT SetDefaultExtension( [in, string] LPCWSTR pszDefaultExtension); HRESULT Close( [in] HRESULT hr); HRESULT SetClientGuid( [in] REFGUID guid); HRESULT ClearClientData(); HRESULT SetFilter( [in] IShellItemFilter *pFilter);}/***************************************************************************** * IFileDialog2 interface */[ object, uuid(61744FC7-85B5-4791-A9B0-272276309B13), pointer_default(unique)]interface IFileDialog2 : IFileDialog{ HRESULT SetCancelButtonLabel( [in] LPCWSTR pszLabel); HRESULT SetNavigationRoot( [in] IShellItem *psi);}/***************************************************************************** * IFileOperationProgressSink interface */[ object, uuid(04B0F1A7-9490-44BC-96E1-4296A31252E2), pointer_default(unique)]interface IFileOperationProgressSink : IUnknown{ HRESULT StartOperations(); HRESULT FinishOperations( [in] HRESULT hrResult); HRESULT PreRenameItem( [in] DWORD dwFlags, [in] IShellItem *psiItem, [in, unique, string] LPCWSTR pszNewName); HRESULT PostRenameItem( [in] DWORD dwFlags, [in] IShellItem *psiItem, [in, string] LPCWSTR pszNewName, [in] HRESULT hrRename, [in] IShellItem *psiNewlyCreated); HRESULT PreMoveItem( [in] DWORD dwFlags, [in] IShellItem *psiItem, [in] IShellItem *psiDestinationFolder, [in, unique, string] LPCWSTR pszNewName); HRESULT PostMoveItem( [in] DWORD dwFlags, [in] IShellItem *psiItem, [in] IShellItem *psiDestinationFolder, [in, unique, string] LPCWSTR pszNewName, [in] HRESULT hrMove, [in] IShellItem *psiNewlyCreated); HRESULT PreCopyItem( [in] DWORD dwFlags, [in] IShellItem *psiItem, [in] IShellItem *psiDestinationFolder, [in, unique, string] LPCWSTR pszNewName); HRESULT PostCopyItem( [in] DWORD dwFlags, [in] IShellItem *psiItem, [in] IShellItem *psiDestinationFolder, [in, unique, string] LPCWSTR pszNewName, [in] HRESULT hrCopy, [in] IShellItem *psiNewlyCreated); HRESULT PreDeleteItem( [in] DWORD dwFlags, [in] IShellItem *psiItem); HRESULT PostDeleteItem( [in] DWORD dwFlags, [in] IShellItem *psiItem, [in] HRESULT hrDelete, [in] IShellItem *psiNewlyCreated); HRESULT PreNewItem( [in] DWORD dwFlags, [in] IShellItem *psiDestinationFolder, [in, unique, string] LPCWSTR pszNewName); HRESULT PostNewItem( [in] DWORD dwFlags, [in] IShellItem *psiDestinationFolder, [in, unique, string] LPCWSTR pszNewName, [in, unique, string] LPCWSTR pszTemplateName, [in] DWORD dwFileAttributes, [in] HRESULT hrNew, [in] IShellItem *psiNewItem); HRESULT UpdateProgress( [in] UINT iWorkTotal, [in] UINT iWorkSoFar); HRESULT ResetTimer(); HRESULT PauseTimer(); HRESULT ResumeTimer();}/***************************************************************************** * IFileSaveDialog interface */[ object, uuid(84BCCD23-5FDE-4CDB-AEA4-AF64B83D78AB), pointer_default(unique)]interface IFileSaveDialog : IFileDialog{ HRESULT SetSaveAsItem( [in] IShellItem *psi); HRESULT SetProperties( [in] IPropertyStore *pStore); HRESULT SetCollectedProperties( [in] IPropertyDescriptionList *pList, [in] BOOL fAppendDefault); HRESULT GetProperties( [in] IPropertyStore **ppStore); HRESULT ApplyProperties( [in] IShellItem *psi, [in] IPropertyStore *pStore, [in, unique] HWND hwnd, [in, unique] IFileOperationProgressSink *pSink);}/***************************************************************************** * IFileOpenDialog interface */[ object, uuid(D57C7288-D4AD-4768-BE02-9D969532D960), pointer_default(unique)]interface IFileOpenDialog : IFileDialog{ HRESULT GetResults( [out] IShellItemArray **ppenum); HRESULT GetSelectedItems( [out] IShellItemArray **ppsai);}typedef [v1_enum] enum CDCONTROLSTATEF{ CDCS_INACTIVE = 0x0, CDCS_ENABLED = 0x1, CDCS_VISIBLE = 0x2, CDCS_ENABLEDVISIBLE = 0x3} CDCONTROLSTATEF;cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)")/***************************************************************************** * IFileDialogCustomize interface */[ object, uuid(E6FDD21A-163F-4975-9C8C-A69F1BA37034), pointer_default(unique)]interface IFileDialogCustomize : IUnknown{ HRESULT EnableOpenDropDown( [in] DWORD dwIDCtl); HRESULT AddMenu( [in] DWORD dwIDCtl, [in, string] LPCWSTR pszLabel); HRESULT AddPushButton( [in] DWORD dwIDCtl, [in, string] LPCWSTR pszLabel); HRESULT AddComboBox( [in] DWORD dwIDCtl); HRESULT AddRadioButtonList( [in] DWORD dwIDCtl); HRESULT AddCheckButton( [in] DWORD dwIDCtl, [in, string] LPCWSTR pszLabel, [in] BOOL bChecked); HRESULT AddEditBox( [in] DWORD dwIDCtl, [in, string] LPCWSTR pszText); HRESULT AddSeparator( [in] DWORD dwIDCtl); HRESULT AddText( [in] DWORD dwIDCtl, [in, string] LPCWSTR pszText); HRESULT SetControlLabel( [in] DWORD dwIDCtl, [in, string] LPCWSTR pszLabel); HRESULT GetControlState( [in] DWORD dwIDCtl, [out] CDCONTROLSTATEF *pdwState); HRESULT SetControlState( [in] DWORD dwIDCtl, [in] CDCONTROLSTATEF dwState); HRESULT GetEditBoxText( [in] DWORD dwIDCtl, [out, string] WCHAR **ppszText); HRESULT SetEditBoxText( [in] DWORD dwIDCtl, [in, string] LPCWSTR pszText); HRESULT GetCheckButtonState( [in] DWORD dwIDCtl, [out] BOOL *pbChecked); HRESULT SetCheckButtonState( [in] DWORD dwIDCtl, [in] BOOL bChecked); HRESULT AddControlItem( [in] DWORD dwIDCtl, [in] DWORD dwIDItem, [in] LPCWSTR pszLabel); HRESULT RemoveControlItem( [in] DWORD dwIDCtl, [in] DWORD dwIDItem); HRESULT RemoveAllControlItems( [in] DWORD dwIDCtl); HRESULT GetControlItemState( [in] DWORD dwIDCtl, [in] DWORD dwIDItem, [out] CDCONTROLSTATEF *pdwState); HRESULT SetControlItemState( [in] DWORD dwIDCtl, [in] DWORD dwIDItem, [in] CDCONTROLSTATEF dwState); HRESULT GetSelectedControlItem( [in] DWORD dwIDCtl, [out] DWORD *pdwIDItem); HRESULT SetSelectedControlItem( [in] DWORD dwIDCtl, [in] DWORD dwIDItem); HRESULT StartVisualGroup( [in] DWORD dwIDCtl, [in, string] LPCWSTR pszLabel); HRESULT EndVisualGroup(); HRESULT MakeProminent( [in] DWORD dwIDCtl); HRESULT SetControlItemText( [in] DWORD dwIDCtl, [in] DWORD dwIDItem, [in, string] LPCWSTR pszLabel);}/***************************************************************************** * IFileDialogControlEvents interface */[ object, uuid(36116642-D713-4B97-9B83-7484A9D00433), pointer_default(unique)]interface IFileDialogControlEvents : IUnknown{ HRESULT OnItemSelected( [in] IFileDialogCustomize *pfdc, [in] DWORD dwIDCtl, [in] DWORD dwIDItem); HRESULT OnButtonClicked( [in] IFileDialogCustomize *pfdc, [in] DWORD dwIDCtl); HRESULT OnCheckButtonToggled( [in] IFileDialogCustomize *pfdc, [in] BOOL dwIDCtl, [in] BOOL bChecked); HRESULT OnControlActivating( [in] IFileDialogCustomize *pfdc, [in] DWORD dwIDCtl);}typedef [v1_enum] enum tagKF_CATEGORY{ KF_CATEGORY_VIRTUAL = 0x00000001, KF_CATEGORY_FIXED = 0x00000002, KF_CATEGORY_COMMON = 0x00000003, KF_CATEGORY_PERUSER = 0x00000004} KF_CATEGORY;typedef [v1_enum] enum tagKF_REDIRECTION_CAPABILITIES{ KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0x000000ff, KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x00000001, KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0x000fff00, KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x00000100, KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x00000200, KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x00000400} KF_REDIRECTION_CAPABILITIES;typedef [v1_enum] enum tagKF_DEFINITION_FLAGS{ KFDF_LOCAL_REDIRECT_ONLY = 0x00000002, KFDF_ROAMABLE = 0x00000004, KFDF_PRECREATE = 0x00000008, KFDF_STREAM = 0x00000010, KFDF_PUBLISHEXPANDEDPATH = 0x00000020} KF_DEFINITION_FLAGS;typedef struct tagKNOWNFOLDER_DEFINITION{ KF_CATEGORY category; LPWSTR pszName; LPWSTR pszDescription; KNOWNFOLDERID fidParent; LPWSTR pszRelativePath; LPWSTR pszParsingName; LPWSTR pszTooltip; LPWSTR pszLocalizedName; LPWSTR pszIcon; LPWSTR pszSecurity; DWORD dwAttributes; KF_DEFINITION_FLAGS kfdFlags; FOLDERTYPEID ftidType;} KNOWNFOLDER_DEFINITION;[ object, uuid(3aa7af7e-9b36-420C-a8e3-f77d4674a488), pointer_default(ref)]interface IKnownFolder : IUnknown{ HRESULT GetId( [out] KNOWNFOLDERID *pkfid); HRESULT GetCategory( [out] KF_CATEGORY *pCategory); HRESULT GetShellItem( [in] DWORD dwFlags, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT GetPath( [in] DWORD dwFlags, [out, string] LPWSTR *ppszPath); HRESULT SetPath( [in] DWORD dwFlags, [in, string] LPCWSTR pszPath); HRESULT GetIDList( [in] DWORD dwFlags, [out] PIDLIST_ABSOLUTE *ppidl); HRESULT GetFolderType( [out] FOLDERTYPEID *pftid); HRESULT GetRedirectionCapabilities( [out] KF_REDIRECTION_CAPABILITIES *pCapabilities); HRESULT GetFolderDefinition( [out] KNOWNFOLDER_DEFINITION *pKFD);}typedef [v1_enum] enum tagKF_REDIRECT_FLAGS{ KF_REDIRECT_USER_EXCLUSIVE = 0x00000001, KF_REDIRECT_COPY_SOURCE_DACL = 0x00000002, KF_REDIRECT_OWNER_USER = 0x00000004, KF_REDIRECT_SET_OWNER_EXPLICIT = 0x00000008, KF_REDIRECT_CHECK_ONLY = 0x00000010, KF_REDIRECT_WITH_UI = 0x00000020, KF_REDIRECT_UNPIN = 0x00000040, KF_REDIRECT_PIN = 0x00000080, KF_REDIRECT_COPY_CONTENTS = 0x00000200, KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x00000400, KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x00000800} KF_REDIRECT_FLAGS;[ object, uuid(8BE2D872-86AA-4d47-B776-32CCA40C7018), pointer_default(ref)]interface IKnownFolderManager : IUnknown{ typedef [v1_enum] enum tagFFFP_MODE { FFFP_EXACTMATCH, FFFP_NEARESTPARENTMATCH } FFFP_MODE; HRESULT FolderIdFromCsidl( [in] int nCsidl, [out] KNOWNFOLDERID *pfid); HRESULT FolderIdToCsidl( [in] REFKNOWNFOLDERID rfid, [out] int *pnCsidl); HRESULT GetFolderIds( [out, size_is(, *pCount)] KNOWNFOLDERID **ppKFId, [in, out] UINT *pCount); HRESULT GetFolder( [in] REFKNOWNFOLDERID rfid, [out] IKnownFolder **ppkf); HRESULT GetFolderByName( [in, string] LPCWSTR pszCanonicalName, [out] IKnownFolder **ppkf); HRESULT RegisterFolder( [in] REFKNOWNFOLDERID rfid, [in] KNOWNFOLDER_DEFINITION const *pKFD); HRESULT UnregisterFolder( [in] REFKNOWNFOLDERID rfid); HRESULT FindFolderFromPath( [in, string] LPCWSTR pszPath, [in] FFFP_MODE mode, [out] IKnownFolder **ppkf); HRESULT FindFolderFromIDList( [in] PCIDLIST_ABSOLUTE pidl, [out] IKnownFolder **ppkf); HRESULT Redirect( [in] REFKNOWNFOLDERID rfid, [in, unique] HWND hwnd, [in] KF_REDIRECT_FLAGS flags, [in, unique, string] LPCWSTR pszTargetPath, [in] UINT cFolders, [in, size_is(cFolders), unique] KNOWNFOLDERID const *pExclusion, [out, string] LPWSTR *ppszError);}/* function for releasing structure returned from IKnownFolder::GetFolderDefinition */cpp_quote("static inline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD)")cpp_quote("{")cpp_quote(" CoTaskMemFree(pKFD->pszName);")cpp_quote(" CoTaskMemFree(pKFD->pszDescription);")cpp_quote(" CoTaskMemFree(pKFD->pszRelativePath);")cpp_quote(" CoTaskMemFree(pKFD->pszParsingName);")cpp_quote(" CoTaskMemFree(pKFD->pszTooltip);")cpp_quote(" CoTaskMemFree(pKFD->pszLocalizedName);")cpp_quote(" CoTaskMemFree(pKFD->pszIcon);")cpp_quote(" CoTaskMemFree(pKFD->pszSecurity);")cpp_quote("}")typedef [v1_enum] enum ASSOCIATIONLEVEL { AL_MACHINE, AL_EFFECTIVE, AL_USER} ASSOCIATIONLEVEL;typedef [v1_enum] enum ASSOCIATIONTYPE { AT_FILEEXTENSION, AT_URLPROTOCOL, AT_STARTMENUCLIENT, AT_MIMETYPE} ASSOCIATIONTYPE;[ object, uuid(4e530b0a-e611-4c77-a3ac-9031d022281b), pointer_default(unique)]interface IApplicationAssociationRegistration : IUnknown{ HRESULT QueryCurrentDefault( [in, string] LPCWSTR pszQuery, [in] ASSOCIATIONTYPE atQueryType, [in] ASSOCIATIONLEVEL alQueryLevel, [out, string] LPWSTR *ppszAssociation); HRESULT QueryAppIsDefault( [in, string] LPCWSTR pszQuery, [in] ASSOCIATIONTYPE atQueryType, [in] ASSOCIATIONLEVEL alQueryLevel, [in, string] LPCWSTR pszAppRegistryName, [out] BOOL *pfDefault); HRESULT QueryAppIsDefaultAll( [in] ASSOCIATIONLEVEL alQueryLevel, [in, string] LPCWSTR pszAppRegistryName, [out] BOOL* pfDefault); HRESULT SetAppAsDefault( [in, string] LPCWSTR pszAppRegistryName, [in, string] LPCWSTR pszSet, [in] ASSOCIATIONTYPE atSetType); HRESULT SetAppAsDefaultAll( [in, string] LPCWSTR pszAppRegistryName); HRESULT ClearUserAssociations();}[ uuid(6332debf-87b5-4670-90c0-5e57b408a49e), object, pointer_default(unique)]interface ICustomDestinationList : IUnknown{ typedef [v1_enum] enum KNOWNDESTCATEGORY { KDC_FREQUENT = 1, KDC_RECENT } KNOWNDESTCATEGORY; HRESULT SetAppID([in, string] LPCWSTR pszAppID); HRESULT BeginList( [out] UINT *pcMinSlots, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT AppendCategory( [in, string] LPCWSTR pszCategory, [in] IObjectArray *poa); HRESULT AppendKnownCategory([in] KNOWNDESTCATEGORY category); HRESULT AddUserTasks([in] IObjectArray *poa); HRESULT CommitList(); HRESULT GetRemovedDestinations( [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT DeleteList([in, unique, string] LPCWSTR pszAppID); HRESULT AbortList();}[ uuid(ddefe873-6997-4e68-be26-39b633adbe12), object, pointer_default(unique)]interface IQueryCancelAutoPlay : IUnknown{ HRESULT AllowAutoPlay([in, string] LPCWSTR path, [in] DWORD content_type, [in, string] LPCWSTR label, [in] DWORD serial_number);}[ uuid(d594d0d8-8da7-457b-b3b4-ce5dbaac0b88), pointer_default(unique)]interface ITransferAdviseSink : IUnknown{ [v1_enum] enum _TRANSFER_ADVISE_STATE { TS_NONE = 0, TS_PERFORMING = 1, TS_PREPARING = 2, TS_INDETERMINATE = 4 }; typedef DWORD TRANSFER_ADVISE_STATE; HRESULT UpdateProgress([in] ULONGLONG size_current, [in] ULONGLONG size_total, [in] INT files_current, [in] INT files_total, [in] INT folders_current, [in] INT folders_total); HRESULT UpdateTransferState([in] TRANSFER_ADVISE_STATE state); HRESULT ConfirmOverwrite([in] IShellItem *source, [in] IShellItem *dest_parent, [in, string] LPCWSTR name); HRESULT ConfirmEncryptLoss([in] IShellItem *source); HRESULT FileFailure([in] IShellItem *item, [in, unique, string] LPCWSTR itemname, [in] HRESULT hr, [in, out, unique, size_is(crename)] LPWSTR rename, [in] ULONG crename); HRESULT SubStreamFailure([in] IShellItem *item, [in, string] LPCWSTR stream, [in] HRESULT hr); HRESULT PropertyFailure([in] IShellItem *item, [in, unique] const PROPERTYKEY *key, [in] HRESULT hr);}[v1_enum] enum _TRANSFER_SOURCE_FLAGS{ TSF_NORMAL = 0, TSF_FAIL_EXIST = 0, TSF_RENAME_EXIST = 0x1, TSF_OVERWRITE_EXIST = 0x2, TSF_ALLOW_DECRYPTION = 0x4, TSF_NO_SECURITY = 0x8, TSF_COPY_CREATION_TIME = 0x10, TSF_COPY_WRITE_TIME = 0x20, TSF_USE_FULL_ACCESS = 0x40, TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80, TSF_COPY_HARD_LINK = 0x100, TSF_COPY_LOCALIZED_NAME = 0x200, TSF_MOVE_AS_COPY_DELETE = 0x400, TSF_SUSPEND_SHELLEVENTS = 0x800};typedef DWORD TRANSFER_SOURCE_FLAGS;[ uuid(00adb003-bde9-45c6-8e29-d09f9353e108), object, pointer_default(unique)]interface ITransferSource : IUnknown{ HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie); HRESULT Unadvise([in] DWORD cookie); HRESULT SetProperties([in] IPropertyChangeArray *array); HRESULT OpenItem([in] IShellItem *item, [in] TRANSFER_SOURCE_FLAGS flags, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT MoveItem([in] IShellItem *item, [in] IShellItem *parent_dest, [in, string] LPCWSTR name_dest, [in] TRANSFER_SOURCE_FLAGS flags, [out] IShellItem **newitem); HRESULT RecycleItem([in] IShellItem *source, [in] IShellItem *parent_dest, [in] TRANSFER_SOURCE_FLAGS flags, [out] IShellItem **new_dest); HRESULT RemoveItem([in] IShellItem *source, [in] TRANSFER_SOURCE_FLAGS flags); HRESULT RenameItem([in] IShellItem *source, [in, string] LPCWSTR newname, [in] TRANSFER_SOURCE_FLAGS flags, [out] IShellItem **new_dest); HRESULT LinkItem([in] IShellItem *source, [in] IShellItem *parent_dest, [in, unique, string] LPCWSTR new_name, [in] TRANSFER_SOURCE_FLAGS flags, [out] IShellItem **new_dest); HRESULT ApplyPropertiesToItem([in] IShellItem *source, [out] IShellItem **newitem); HRESULT GetDefaultDestinationName([in] IShellItem *source, [in] IShellItem *parent_dest, [out, string] LPWSTR *dest_name); HRESULT EnterFolder([in] IShellItem *child_folder); HRESULT LeaveFolder([in] IShellItem *child_folder);}[ uuid(48addd32-3ca5-4124-abe3-b5a72531b207), object, pointer_default(unique)]interface ITransferDestination : IUnknown{ HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie); HRESULT Unadvise([in] DWORD cookie); HRESULT CreateItem([in, string] LPCWSTR name, [in] DWORD attr, [in] ULONGLONG size, [in] TRANSFER_SOURCE_FLAGS flags, [in] REFIID riid, [out, iid_is(riid)] void **ppv, [in] REFIID resources, [out, iid_is(riid)] void **presources);}[ uuid(92218cab-ecaa-4335-8133-807fd234c2ee), object, pointer_default(unique)]interface IAssocHandlerInvoker : IUnknown{ HRESULT SupportsSelection(); HRESULT Invoke();}[ uuid(f04061ac-1659-4a3f-a954-775aa57fc083), object, pointer_default(unique)]interface IAssocHandler : IUnknown{ HRESULT GetName([out, string] LPWSTR *name); HRESULT GetUIName([out, string] LPWSTR *uiname); HRESULT GetIconLocation([out, string] LPWSTR *path, [out] int *index); HRESULT IsRecommended(); HRESULT MakeDefault([in, string] LPCWSTR description); HRESULT Invoke([in] IDataObject *object); HRESULT CreateInvoker([in] IDataObject *object, [out] IAssocHandlerInvoker **invoker);}[ uuid(973810ae-9599-4b88-9e4d-6ee98c9552da), object, pointer_default(unique)]interface IEnumAssocHandlers : IUnknown{ HRESULT Next([in] ULONG count, [out, size_is(count), length_is(*fetched)] IAssocHandler **handlers, [out] ULONG *fetched);}typedef enum ASSOC_FILTER{ ASSOC_FILTER_NONE = 0, ASSOC_FILTER_RECOMMENDED} ASSOC_FILTER;cpp_quote("HRESULT WINAPI SHAssocEnumHandlers(PCWSTR extra, ASSOC_FILTER filter, IEnumAssocHandlers **handlersenum);")typedef [v1_enum] enum ACTIVATEOPTIONS{ AO_NONE = 0x00000000, AO_DESIGNMODE = 0x00000001, AO_NOERRORUI = 0x00000002, AO_NOSPLASHSCREEN = 0x00000004} ACTIVATEOPTIONS;[ uuid(2e941141-7f97-4756-ba1d-9decde894a3d), object, pointer_default(unique)]interface IApplicationActivationManager : IUnknown{ HRESULT ActivateApplication([in] LPCWSTR appusermodelid, [in, unique] LPCWSTR arguments, [in] ACTIVATEOPTIONS options, [out] DWORD *processid); HRESULT ActivateForFile([in] LPCWSTR appusermodelid, [in] IShellItemArray *itemarray, [in, unique] LPCWSTR verb, [out] DWORD *processid); HRESULT ActivateForProtocol([in] LPCWSTR appusermodelid, [in] IShellItemArray *itemarray, [out] DWORD *processid);}/***************************************************************************** * ShellObjects typelibrary */[ uuid(50A7E9B1-70EF-11D1-B75A-00A0C90564FE), lcid(0x0000), version(1.0)]library ShellObjects{ [ uuid(71F96385-DDD6-48D3-A0C1-AE06E8B055FB) ] coclass ExplorerBrowser { interface IExplorerBrowser; } [ uuid(DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7) ] coclass FileOpenDialog { interface IFileOpenDialog; } [ uuid(C0B4E2F3-BA21-4773-8DBA-335EC946EB8B) ] coclass FileSaveDialog { interface IFileSaveDialog; } [ uuid(AE054212-3535-4430-83ED-D501AA6680E6) ] coclass NamespaceTreeControl { interface INameSpaceTreeControl2; } [ uuid(4df0c730-df9d-4ae3-9153-aa6b82e9795a) ] coclass KnownFolderManager { interface IKnownFolderManager; } [ uuid(591209c7-767b-42b2-9fba-44ee4615f2c7) ] coclass ApplicationAssociationRegistration { interface IApplicationAssociationRegistration; } [ uuid(00021401-0000-0000-c000-000000000046) ] coclass ShellLink { interface IShellLinkW; } [ uuid(56fdf344-fd6d-11d0-958a-006097c9a090) ] coclass TaskbarList { interface ITaskbarList4; } [ uuid(77f10cf0-3db5-4966-b520-b7c54fd35ed6) ] coclass DestinationList { interface ICustomDestinationList; } [ uuid(2d3468c1-36a7-43b6-ac24-d3f02fd9607a) ] coclass EnumerableObjectCollection { interface IEnumObjects; } [ uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a) ] coclass QueryCancelAutoPlay { interface IQueryCancelAutoPlay; } [ uuid(9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917) ] coclass ShellItem { interface IShellItem2; } [ uuid(45ba127d-10a8-46ea-8ab7-56ea9078943c) ] coclass ApplicationActivationManager { interface IApplicationActivationManager; }#ifdef __REACTOS__ [ uuid(0010890e-8789-413c-adbc-48f5b511b3af) ] coclass UserNotification { interface IUserNotification; }#endif // __REACTOS__}enum _OPPROGDLGF{ OPPROGDLG_DEFAULT = 0, OPPROGDLG_ENABLEPAUSE = 0x80, OPPROGDLG_ALLOWUNDO = 0x100, OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200, OPPROGDLG_DONTDISPLAYDESTPATH = 0x400, OPPROGDLG_NOMULTIDAYESTIMATES = 0x800, OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000};typedef DWORD OPPROGDLGF;enum _PDMODE{ PDM_DEFAULT = 0, PDM_RUN = 0x1, PDM_PREFLIGHT = 0x2, PDM_UNDOING = 0x4, PDM_ERRORSBLOCKING = 0x8, PDM_INDETERMINATE = 0x10};typedef DWORD PDMODE;typedef enum PDOPSTATUS{ PDOPS_RUNNING = 1, PDOPS_PAUSED = 2, PDOPS_CANCELLED = 3, PDOPS_STOPPED = 4, PDOPS_ERRORS = 5} PDOPSTATUS;typedef enum _SPACTION{ SPACTION_NONE = 0, SPACTION_MOVING = 1, SPACTION_COPYING = 2, SPACTION_RECYCLING = 3, SPACTION_APPLYINGATTRIBS = 4, SPACTION_DOWNLOADING = 5, SPACTION_SEARCHING_INTERNET = 6, SPACTION_CALCULATING = 7, SPACTION_UPLOADING = 8, SPACTION_SEARCHING_FILES = 9, SPACTION_DELETING = 10, SPACTION_RENAMING = 11, SPACTION_FORMATTING = 12, SPACTION_COPY_MOVING = 13} SPACTION;[ uuid(0C9FB851-E5C9-43EB-A370-F0677B13874C), object, pointer_default(unique)]interface IOperationsProgressDialog : IUnknown{ HRESULT StartProgressDialog( [in] HWND hwndOwner, [in] OPPROGDLGF flags); HRESULT StopProgressDialog(); HRESULT SetOperation( [in] SPACTION action); HRESULT SetMode( [in] PDMODE mode); HRESULT UpdateProgress( [in] ULONGLONG ullPointsCurrent, [in] ULONGLONG ullPointsTotal, [in] ULONGLONG ullSizeCurrent, [in] ULONGLONG ullSizeTotal, [in] ULONGLONG ullItemsCurrent, [in] ULONGLONG ullItemsTotal); HRESULT UpdateLocations( [in, optional] IShellItem *psiSource, [in, optional] IShellItem *psiTarget, [in, optional] IShellItem *psiItem); HRESULT ResetTimer(); HRESULT PauseTimer(); HRESULT ResumeTimer(); HRESULT GetMilliseconds( [out] ULONGLONG *pullElapsed, [out] ULONGLONG *pullRemaining); HRESULT GetOperationStatus( [out] PDOPSTATUS *popstatus);};[ uuid(947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8), object, pointer_default(unique)]interface IFileOperation : IUnknown{ HRESULT Advise( [in] IFileOperationProgressSink *pfops, [out] DWORD *pdwCookie); HRESULT Unadvise( [in] DWORD dwCookie); HRESULT SetOperationFlags( [in] DWORD dwOperationFlags); HRESULT SetProgressMessage( [in] LPCWSTR pszMessage); HRESULT SetProgressDialog( [in] IOperationsProgressDialog *popd); HRESULT SetProperties( [in] IPropertyChangeArray *pproparray); HRESULT SetOwnerWindow( [in] HWND hwndOwner); HRESULT ApplyPropertiesToItem( [in] IShellItem *psiItem); HRESULT ApplyPropertiesToItems( [in] IUnknown *punkItems); HRESULT RenameItem( [in] IShellItem *psiItem, [in] LPCWSTR pszNewName, [in] IFileOperationProgressSink *pfopsItem); HRESULT RenameItems( [in] IUnknown *pUnkItems, [in] LPCWSTR pszNewName); HRESULT MoveItem( [in] IShellItem *psiItem, [in] IShellItem *psiDestinationFolder, [in] LPCWSTR pszNewName, [in] IFileOperationProgressSink *pfopsItem); HRESULT MoveItems( [in] IUnknown *punkItems, [in] IShellItem *psiDestinationFolder); HRESULT CopyItem( [in] IShellItem *psiItem, [in] IShellItem *psiDestinationFolder, [in] LPCWSTR pszCopyName, [in] IFileOperationProgressSink *pfopsItem); HRESULT CopyItems( [in] IUnknown *punkItems, [in] IShellItem *psiDestinationFolder); HRESULT DeleteItem( [in] IShellItem *psiItem, [in] IFileOperationProgressSink *pfopsItem); HRESULT DeleteItems( [in] IUnknown *punkItems); HRESULT NewItem( [in] IShellItem *psiDestinationFolder, [in] DWORD dwFileAttributes, [in] LPCWSTR pszName, [in] LPCWSTR pszTemplateName, [in] IFileOperationProgressSink *pfopsItem); HRESULT PerformOperations(); HRESULT GetAnyOperationsAborted( [out] BOOL *pfAnyOperationsAborted);};[ uuid(6CCB7BE0-6807-11d0-B810-00C04FD706EC), object, local, pointer_default(unique)]interface IShellTaskScheduler : IUnknown{ HRESULT AddTask( [in] IRunnableTask *pTask, [in] REFGUID rtoid, [in] DWORD_PTR lParam, [in] DWORD dwPriority); HRESULT RemoveTasks( [in] REFGUID rtoid, [in] DWORD_PTR lParam, [in] BOOL fWaitIfRunning); UINT CountTasks( [in] REFGUID rtoid); HRESULT Status( [in] DWORD dwReleaseStatus, [in] DWORD dwThreadTimeout);}[ uuid(47c01f95-e185-412c-b5c5-4f27df965aea), object, pointer_default(unique)]interface IFolderBandPriv : IUnknown{ HRESULT SetCascade([in] BOOL fCascade); HRESULT SetAccelerators([in] BOOL fAccelerators); HRESULT SetNoIcons([in] BOOL fNoIcons); HRESULT SetNoText([in] BOOL fNoText);}#ifdef __REACTOS__/***************************************************************************** * IQueryContinue interface */[ uuid(7307055c-b24a-486b-9f25-163e597a28a9), object, pointer_default(unique)]interface IQueryContinue : IUnknown{ // Returns S_OK if the operation should continue, and S_FALSE if not. HRESULT QueryContinue();}/***************************************************************************** * IUserNotification interface */[ uuid(ba9711ba-5893-4787-a7e1-41277151550b), object, pointer_default(unique)]interface IUserNotification : IUnknown{ HRESULT SetBalloonInfo( [in, unique, string] LPCWSTR pszTitle, [in, unique, string] LPCWSTR pszText, [in] DWORD dwInfoFlags); HRESULT SetBalloonRetry( [in] DWORD dwShowTime, // Time intervals in milliseconds [in] DWORD dwInterval, [in] UINT cRetryCount); HRESULT SetIconInfo( [in, unique] HICON hIcon, [in, unique, string] LPCWSTR pszToolTip); // Blocks until the notification times out. HRESULT Show( [in, unique] IQueryContinue *pqc, [in] DWORD dwContinuePollInterval); HRESULT PlaySound( [in, string] LPCWSTR pszSoundName);};/***************************************************************************** * IUserNotificationCallback interface (Vista+) */[ uuid(19108294-0441-4aff-8013-fa0a730b0bea), object]interface IUserNotificationCallback : IUnknown{ HRESULT OnBalloonUserClick([in] POINT * pt); HRESULT OnLeftClick([in] POINT * pt); HRESULT OnContextMenu([in] POINT * pt);};/***************************************************************************** * IUserNotification2 interface (Vista+) */[ uuid(215913cc-57eb-4fab-ab5a-e5fa7bea2a6c), object, pointer_default(unique)]interface IUserNotification2 : IUnknown{ HRESULT SetBalloonInfo( [in, unique, string] LPCWSTR pszTitle, [in, unique, string] LPCWSTR pszText, [in] DWORD dwInfoFlags); HRESULT SetBalloonRetry( [in] DWORD dwShowTime, // Time intervals in milliseconds [in] DWORD dwInterval, [in] UINT cRetryCount); HRESULT SetIconInfo( [in, unique] HICON hIcon, [in, unique, string] LPCWSTR pszToolTip); // Blocks until the notification times out. HRESULT Show( [in, unique] IQueryContinue *pqc, [in] DWORD dwContinuePollInterval, [in, unique] IUserNotificationCallback *pSink); HRESULT PlaySound( [in, string] LPCWSTR pszSoundName);};/***************************************************************************** * IItemNameLimits interface */[ uuid(1df0d7f1-b267-4d28-8b10-12e23202a5c4)]interface IItemNameLimits : IUnknown { HRESULT GetValidCharacters( [out, string] LPWSTR *ppwszValidChars, [out, string] LPWSTR *ppwszInvalidChars); HRESULT GetMaxLength( [in, string] LPCWSTR pszName, [out] int *piMaxNameLen);};/***************************************************************************** * IUserAssist interface */[ uuid(dd313e05-feff-11d1-8ecd-0000f87a470c), object, local, pointer_default(unique)]interface IUserAssist : IUnknown{ HRESULT FireEvent( GUID const *guid, INT param1, ULONG param2, WPARAM wparam, LPARAM lparam); HRESULT QueryEvent( GUID const *guid, INT param, WPARAM wparam, LPARAM lparam, PVOID ptr); HRESULT SetEvent( GUID const *guid, INT param, WPARAM wparam, LPARAM lparam, PVOID ptr); HRESULT Enable( BOOL bEnable);};#endif // __REACTOS__