ShObjIdl.idl 73 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725
  1. /*
  2. * COM interfaces for shell objects
  3. *
  4. * Copyright (C) 1999 Juergen Schmied
  5. * Copyright (C) 2003 Alexandre Julliard
  6. *
  7. * This library is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation; either
  10. * version 2.1 of the License, or (at your option) any later version.
  11. *
  12. * This library is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with this library; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  20. */
  21. import "objidl.idl";
  22. import "oleidl.idl";
  23. import "oaidl.idl";
  24. import "docobj.idl";
  25. import "shtypes.idl";
  26. import "servprov.idl";
  27. import "comcat.idl";
  28. import "propidl.idl";
  29. /* FIXME: import "prsht.idl";*/
  30. import "msxml.idl";
  31. import "wtypes.idl";
  32. /* FIXME: import "propsys.idl"; */
  33. /* FIXME: import "structuredquery.idl"; */
  34. cpp_quote( "/* FIXME: #include <sherrors.h> */" )
  35. /*****************************************************************************
  36. * IPersistFolder interface
  37. */
  38. [
  39. object,
  40. uuid( 000214ea-0000-0000-c000-000000000046 ),
  41. pointer_default( unique )
  42. ]
  43. interface IPersistFolder : IPersist
  44. {
  45. typedef IPersistFolder *LPPERSISTFOLDER;
  46. HRESULT Initialize( [ in ] LPCITEMIDLIST pidl );
  47. }
  48. /*****************************************************************************
  49. * IPersistFolder2 interface
  50. */
  51. [
  52. object,
  53. uuid( 1ac3d9f0-175c-11d1-95be-00609797ea4f ),
  54. pointer_default( unique )
  55. ]
  56. interface IPersistFolder2 : IPersistFolder
  57. {
  58. typedef IPersistFolder2 *LPPERSISTFOLDER2;
  59. HRESULT GetCurFolder( [ out ] LPITEMIDLIST *ppidl );
  60. }
  61. /*****************************************************************************
  62. * IPersistIDList interface
  63. */
  64. [
  65. object,
  66. uuid( 1079acfc-29bd-11d3-8e0d-00c04f6837d5 ),
  67. pointer_default( unique )
  68. ]
  69. interface IPersistIDList : IPersist
  70. {
  71. HRESULT SetIDList( [ in ] LPCITEMIDLIST pidl );
  72. HRESULT GetIDList( [ out ] LPITEMIDLIST *ppidl );
  73. }
  74. /*****************************************************************************
  75. * IEnumIDList interface
  76. */
  77. [
  78. object,
  79. uuid( 000214f2-0000-0000-c000-000000000046 ),
  80. pointer_default( unique )
  81. ]
  82. interface IEnumIDList : IUnknown
  83. {
  84. typedef IEnumIDList *LPENUMIDLIST;
  85. HRESULT Next(
  86. [ in ] ULONG celt,
  87. [ out, size_is( celt ), length_is( *pceltFetched ) ] LPITEMIDLIST *rgelt,
  88. [ out ] ULONG *pceltFetched );
  89. HRESULT Skip( [ in ] ULONG celt );
  90. HRESULT Reset();
  91. HRESULT Clone( [ out ] IEnumIDList **ppenum );
  92. }
  93. /*****************************************************************************
  94. * IShellPropSheetExt interface
  95. */
  96. cpp_quote( "#if 0" )
  97. typedef LPARAM LPFNSVADDPROPSHEETPAGE;
  98. cpp_quote( "#else" )
  99. cpp_quote( "#include <prsht.h>" )
  100. cpp_quote( "typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;" )
  101. cpp_quote( "#endif" )
  102. [
  103. object,
  104. uuid( 000214E9-0000-0000-C000-000000000046 ),
  105. pointer_default( unique )
  106. ]
  107. interface IShellPropSheetExt : IUnknown
  108. {
  109. enum tagSHELLPROPSHEETEXTPAGEID
  110. {
  111. EXPPS_FILETYPES = 0x1
  112. };
  113. typedef UINT EXPPS;
  114. HRESULT AddPages(
  115. [ in ] LPFNSVADDPROPSHEETPAGE pfnAddPage,
  116. [ in ] LPARAM lParam );
  117. HRESULT ReplacePage(
  118. [ in ] EXPPS uPageID,
  119. [ in ] LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
  120. [ in ] LPARAM lParam );
  121. }
  122. typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
  123. /*****************************************************************************
  124. * IShellFolder interface
  125. */
  126. [
  127. object,
  128. uuid( 000214e6-0000-0000-c000-000000000046 ),
  129. pointer_default( unique )
  130. ]
  131. interface IShellFolder : IUnknown
  132. {
  133. typedef IShellFolder * LPSHELLFOLDER;
  134. typedef enum tagSHGDN
  135. {
  136. SHGDN_NORMAL = 0,
  137. SHGDN_INFOLDER = 1,
  138. SHGDN_FOREDITING = 0x1000,
  139. SHGDN_INCLUDE_NONFILESYS = 0x2000,
  140. SHGDN_FORADDRESSBAR = 0x4000,
  141. SHGDN_FORPARSING = 0x8000
  142. } SHGNO;
  143. typedef DWORD SHGDNF;
  144. enum tagSHCONTF
  145. {
  146. SHCONTF_FOLDERS = 32,
  147. SHCONTF_NONFOLDERS = 64,
  148. SHCONTF_INCLUDEHIDDEN = 128,
  149. SHCONTF_INIT_ON_FIRST_NEXT = 256,
  150. SHCONTF_NETPRINTERSRCH = 512,
  151. SHCONTF_SHAREABLE = 1024,
  152. SHCONTF_STORAGE = 2048
  153. };
  154. typedef DWORD SHCONTF;
  155. cpp_quote( "#define SHCIDS_ALLFIELDS 0x80000000L" )
  156. cpp_quote( "#define SHCIDS_CANONICALONLY 0x10000000L" )
  157. cpp_quote( "#define SHCIDS_BITMASK 0xFFFF0000L" )
  158. cpp_quote( "#define SHCIDS_COLUMNMASK 0x0000FFFFL" )
  159. cpp_quote( "#define SFGAO_CANCOPY DROPEFFECT_COPY" )
  160. cpp_quote( "#define SFGAO_CANMOVE DROPEFFECT_MOVE" )
  161. cpp_quote( "#define SFGAO_CANLINK DROPEFFECT_LINK" )
  162. cpp_quote( "#define SFGAO_STORAGE 0x00000008L" )
  163. cpp_quote( "#define SFGAO_CANRENAME 0x00000010L" )
  164. cpp_quote( "#define SFGAO_CANDELETE 0x00000020L" )
  165. cpp_quote( "#define SFGAO_HASPROPSHEET 0x00000040L" )
  166. cpp_quote( "#define SFGAO_DROPTARGET 0x00000100L" )
  167. cpp_quote( "#define SFGAO_CAPABILITYMASK 0x00000177L" )
  168. cpp_quote( "#define SFGAO_ENCRYPTED 0x00002000L" )
  169. cpp_quote( "#define SFGAO_ISSLOW 0x00004000L" )
  170. cpp_quote( "#define SFGAO_GHOSTED 0x00008000L" )
  171. cpp_quote( "#define SFGAO_LINK 0x00010000L" )
  172. cpp_quote( "#define SFGAO_SHARE 0x00020000L" )
  173. cpp_quote( "#define SFGAO_READONLY 0x00040000L" )
  174. cpp_quote( "#define SFGAO_HIDDEN 0x00080000L" )
  175. cpp_quote( "#define SFGAO_DISPLAYATTRMASK 0x000FC000L" )
  176. cpp_quote( "#define SFGAO_FILESYSANCESTOR 0x10000000L" )
  177. cpp_quote( "#define SFGAO_FOLDER 0x20000000L" )
  178. cpp_quote( "#define SFGAO_FILESYSTEM 0x40000000L" )
  179. cpp_quote( "#define SFGAO_HASSUBFOLDER 0x80000000L" )
  180. cpp_quote( "#define SFGAO_CONTENTSMASK 0x80000000L" )
  181. cpp_quote( "#define SFGAO_VALIDATE 0x01000000L" )
  182. cpp_quote( "#define SFGAO_REMOVABLE 0x02000000L" )
  183. cpp_quote( "#define SFGAO_COMPRESSED 0x04000000L" )
  184. cpp_quote( "#define SFGAO_BROWSABLE 0x08000000L" )
  185. cpp_quote( "#define SFGAO_NONENUMERATED 0x00100000L" )
  186. cpp_quote( "#define SFGAO_NEWCONTENT 0x00200000L" )
  187. cpp_quote( "#define SFGAO_STREAM 0x00400000L" )
  188. cpp_quote( "#define SFGAO_STORAGEANCESTOR 0x00800000L" )
  189. typedef ULONG SFGAOF;
  190. HRESULT ParseDisplayName(
  191. [ in ] HWND hwndOwner,
  192. [ in ] LPBC pbcReserved,
  193. [ in, string ] LPOLESTR lpszDisplayName,
  194. [ out ] ULONG *pchEaten,
  195. [ out ] LPITEMIDLIST *ppidl,
  196. [ in, out, unique ] ULONG *pdwAttributes );
  197. HRESULT EnumObjects(
  198. [ in ] HWND hwndOwner,
  199. [ in ] SHCONTF grfFlags,
  200. [ out ] IEnumIDList **ppenumIDList );
  201. HRESULT BindToObject(
  202. [ in ] LPCITEMIDLIST pidl,
  203. [ in ] LPBC pbcReserved,
  204. [ in ] REFIID riid,
  205. [ out, iid_is( riid ) ] void **ppvOut );
  206. HRESULT BindToStorage(
  207. [ in ] LPCITEMIDLIST pidl,
  208. [ in ] LPBC pbcReserved,
  209. [ in ] REFIID riid,
  210. [ out, iid_is( riid ) ] void **ppvObj );
  211. HRESULT CompareIDs(
  212. [ in ] LPARAM lParam,
  213. [ in ] LPCITEMIDLIST pidl1,
  214. [ in ] LPCITEMIDLIST pidl2 );
  215. HRESULT CreateViewObject(
  216. [ in ] HWND hwndOwner,
  217. [ in ] REFIID riid,
  218. [ out, iid_is( riid ) ] void **ppvOut );
  219. HRESULT GetAttributesOf(
  220. [ in ] UINT cidl,
  221. [ in, size_is( cidl ) ] LPCITEMIDLIST *apidl,
  222. [ in, out ] SFGAOF *rgfInOut );
  223. HRESULT GetUIObjectOf(
  224. [ in ] HWND hwndOwner,
  225. [ in ] UINT cidl,
  226. [ in, size_is( cidl ) ] LPCITEMIDLIST *apidl,
  227. [ in ] REFIID riid,
  228. [ in, out, unique ] UINT *prgfInOut,
  229. [ out, iid_is( riid ) ] void **ppvOut );
  230. HRESULT GetDisplayNameOf(
  231. [ in ] LPCITEMIDLIST pidl,
  232. [ in ] SHGDNF uFlags,
  233. [ out ] STRRET *lpName );
  234. HRESULT SetNameOf(
  235. [ in ] HWND hwnd,
  236. [ in ] LPCITEMIDLIST pidl,
  237. [ in, string ] LPCOLESTR lpszName,
  238. [ in ] SHGDNF uFlags,
  239. [ out ] LPITEMIDLIST *ppidlOut );
  240. }
  241. /*****************************************************************************
  242. * IEnumExtraSearch interface
  243. */
  244. [
  245. object,
  246. uuid( 0e700be1-9db6-11d1-a1ce-00c04fd75d13 ),
  247. pointer_default( unique )
  248. ]
  249. interface IEnumExtraSearch : IUnknown
  250. {
  251. typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
  252. typedef struct
  253. {
  254. GUID guidSearch;
  255. WCHAR wszFriendlyName[ 80 ];
  256. /*
  257. *WCHAR wszMenuText[80];
  258. *WCHAR wszHelpText[MAX_PATH];
  259. */
  260. WCHAR wszUrl[ 2084 ];
  261. /*
  262. *WCHAR wszIcon[MAX_PATH+10];
  263. *WCHAR wszGreyIcon[MAX_PATH+10];
  264. *WCHAR wszClrIcon[MAX_PATH+10];
  265. */
  266. } EXTRASEARCH, *LPEXTRASEARCH;
  267. HRESULT Next(
  268. [ in ] ULONG celt,
  269. [ out, size_is( celt ), length_is( *pceltFetched ) ] EXTRASEARCH *rgelt,
  270. [ out ] ULONG *pceltFetched );
  271. HRESULT Skip( [ in ] ULONG celt );
  272. HRESULT Reset();
  273. HRESULT Clone( [ out ] IEnumExtraSearch **ppenum );
  274. }
  275. /*****************************************************************************
  276. * IShellFolder2 interface
  277. */
  278. [
  279. object,
  280. uuid( 93f2f68c-1d1b-11d3-a30e-00c04f79abd1 ),
  281. pointer_default( unique )
  282. ]
  283. interface IShellFolder2 : IShellFolder
  284. {
  285. typedef struct
  286. {
  287. GUID fmtid;
  288. DWORD pid;
  289. } SHCOLUMNID, *LPSHCOLUMNID;
  290. typedef const SHCOLUMNID *LPCSHCOLUMNID;
  291. HRESULT GetDefaultSearchGUID( [ out ] GUID *lpguid );
  292. HRESULT EnumSearches( [ out ] IEnumExtraSearch **ppenum );
  293. HRESULT GetDefaultColumn( [ in ] DWORD dwReserved, [ out ] ULONG *pSort, [ out ] ULONG *pDisplay );
  294. HRESULT GetDefaultColumnState( [ in ] UINT iColumn, [ out ] SHCOLSTATEF *pcsFlags );
  295. HRESULT GetDetailsEx( [ in ] LPCITEMIDLIST pidl, [ in ] const SHCOLUMNID *pscid, [ out ] VARIANT *pv );
  296. HRESULT GetDetailsOf( [ in ] LPCITEMIDLIST pidl, [ in ] UINT iColumn, [ out ] SHELLDETAILS *psd );
  297. HRESULT MapColumnToSCID( [ in ] UINT iColumn, [ in ] SHCOLUMNID *pscid );
  298. }
  299. /*****************************************************************************
  300. * IShellItem interface
  301. */
  302. [
  303. object,
  304. uuid( 43826d1e-e718-42ee-bc55-a1e261c37bfe ),
  305. pointer_default( unique )
  306. ]
  307. interface IShellItem : IUnknown
  308. {
  309. typedef DWORD SIGDN;
  310. typedef DWORD SICHINTF;
  311. HRESULT BindToHandler(
  312. [ in ] IBindCtx *pbc,
  313. [ in ] REFGUID rbhid,
  314. [ in ] REFIID riid,
  315. [ out, iid_is( riid ) ] void **ppvOut );
  316. HRESULT GetParent( [ out ] IShellItem **ppsi );
  317. HRESULT GetDisplayName(
  318. [ in ] SIGDN sigdnName,
  319. [ out ] LPWSTR *ppszName );
  320. HRESULT GetAttributes(
  321. [ in ] SFGAOF sfgaoMask,
  322. [ out ] SFGAOF *psfgaoAttribs );
  323. HRESULT Compare(
  324. [ in ] IShellItem *psi,
  325. [ in ] SICHINTF hint,
  326. [ out ] int *piOrder );
  327. }
  328. /*****************************************************************************
  329. * FOLDERSETTINGS
  330. */
  331. typedef char *LPVIEWSETTINGS;
  332. typedef enum
  333. {
  334. FWF_AUTOARRANGE = 0x00000001,
  335. FWF_ABBREVIATEDNAMES = 0x00000002,
  336. FWF_SNAPTOGRID = 0x00000004,
  337. FWF_OWNERDATA = 0x00000008,
  338. FWF_BESTFITWINDOW = 0x00000010,
  339. FWF_DESKTOP = 0x00000020,
  340. FWF_SINGLESEL = 0x00000040,
  341. FWF_NOSUBFOLDERS = 0x00000080,
  342. FWF_TRANSPARENT = 0x00000100,
  343. FWF_NOCLIENTEDGE = 0x00000200,
  344. FWF_NOSCROLL = 0x00000400,
  345. FWF_ALIGNLEFT = 0x00000800,
  346. FWF_NOICONS = 0x00001000,
  347. FWF_SHOWSELALWAYS = 0x00002000,
  348. FWF_NOVISIBLE = 0x00004000,
  349. FWF_SINGLECLICKACTIVATE = 0x00008000,
  350. FWF_NOWEBVIEW = 0x00010000,
  351. FWF_HIDEFILENAMES = 0x00020000,
  352. FWF_CHECKSELECT = 0x00040000
  353. } FOLDERFLAGS;
  354. typedef enum
  355. {
  356. FVM_ICON = 1,
  357. FVM_FIRST = FVM_ICON,
  358. FVM_SMALLICON = 2,
  359. FVM_LIST = 3,
  360. FVM_DETAILS = 4,
  361. FVM_THUMBNAIL = 5,
  362. FVM_TILE = 6,
  363. FVM_THUMBSTRIP = 7,
  364. FVM_LAST = FVM_THUMBSTRIP
  365. } FOLDERVIEWMODE;
  366. typedef struct
  367. {
  368. UINT ViewMode;
  369. UINT fFlags;
  370. } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
  371. typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
  372. /*****************************************************************************
  373. * IShellView interface
  374. */
  375. interface IShellBrowser; /* forward declaration */
  376. [
  377. object,
  378. uuid( 000214e3-0000-0000-c000-000000000046 ),
  379. pointer_default( unique )
  380. ]
  381. interface IShellView : IOleWindow
  382. {
  383. typedef IShellView *LPSHELLVIEW;
  384. cpp_quote( "#define SVSI_DESELECT 0x00000000" )
  385. cpp_quote( "#define SVSI_SELECT 0x00000001" )
  386. cpp_quote( "#define SVSI_EDIT 0x00000003" )
  387. cpp_quote( "#define SVSI_DESELECTOTHERS 0x00000004" )
  388. cpp_quote( "#define SVSI_ENSUREVISIBLE 0x00000008" )
  389. cpp_quote( "#define SVSI_FOCUSED 0x00000010" )
  390. cpp_quote( "#define SVSI_TRANSLATEPT 0x00000020" )
  391. cpp_quote( "#define SVSI_SELECTIONMARK 0x00000040" )
  392. cpp_quote( "#define SVSI_POSITIONITEM 0x00000080" )
  393. cpp_quote( "#define SVSI_CHECK 0x00000100" )
  394. cpp_quote( "#define SVSI_NOSTATECHANGE 0x80000000" )
  395. typedef UINT SVSIF;
  396. typedef enum
  397. {
  398. SVGIO_BACKGROUND = 0x00000000,
  399. SVGIO_SELECTION = 0x00000001,
  400. SVGIO_ALLVIEW = 0x00000002,
  401. SVGIO_CHECKED = 0x00000003,
  402. SVGIO_TYPE_MASK = 0x0000000f,
  403. SVGIO_FLAG_VIEWORDER = 0x80000000,
  404. } SVGIO;
  405. typedef enum
  406. {
  407. SVUIA_DEACTIVATE = 0,
  408. SVUIA_ACTIVATE_NOFOCUS = 1,
  409. SVUIA_ACTIVATE_FOCUS = 2,
  410. SVUIA_INPLACEACTIVATE = 3
  411. } SVUIA_STATUS;
  412. HRESULT TranslateAccelerator( [ in ] MSG *pmsg );
  413. HRESULT EnableModeless( [ in ] BOOL fEnable );
  414. HRESULT UIActivate( [ in ] UINT uState );
  415. HRESULT Refresh();
  416. HRESULT CreateViewWindow(
  417. [ in ] IShellView *psvPrevious,
  418. [ in ] LPCFOLDERSETTINGS lpfs,
  419. [ in ] IShellBrowser *psb,
  420. [ out ] RECT *prcView,
  421. [ out ] HWND *phWnd );
  422. HRESULT DestroyViewWindow();
  423. HRESULT GetCurrentInfo( [ out ] LPFOLDERSETTINGS lpfs );
  424. [local] HRESULT AddPropertySheetPages(
  425. [ in ] DWORD dwReserved,
  426. [ in ] LPFNSVADDPROPSHEETPAGE pfn,
  427. [ in ] LPARAM lparam );
  428. HRESULT SaveViewState();
  429. HRESULT SelectItem(
  430. [ in ] LPCITEMIDLIST pidlItem,
  431. [ in ] SVSIF uFlags );
  432. HRESULT GetItemObject(
  433. [ in ] UINT uItem,
  434. [ in ] REFIID riid,
  435. [ out, iid_is( riid ) ] void **ppv );
  436. }
  437. [
  438. uuid( 88E39E80-3578-11CF-AE69-08002B2E1262 ),
  439. object,
  440. pointer_default( unique )
  441. ]
  442. interface IShellView2 : IShellView
  443. {
  444. typedef GUID SHELLVIEWID;
  445. cpp_quote( "#define SV2GV_CURRENTVIEW ((UINT)-1)" )
  446. cpp_quote( "#define SV2GV_DEFAULTVIEW ((UINT)-2)" )
  447. cpp_quote( "#include <pshpack8.h>" )
  448. typedef struct _SV2CVW2_PARAMS
  449. {
  450. DWORD cbSize;
  451. IShellView *psvPrev;
  452. LPCFOLDERSETTINGS pfs;
  453. IShellBrowser *psbOwner;
  454. RECT *prcView;
  455. SHELLVIEWID const *pvid;
  456. HWND hwndView;
  457. } SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS;
  458. cpp_quote( "#include <poppack.h>" )
  459. HRESULT GetView(
  460. [ in, out ] SHELLVIEWID* pvid,
  461. [ in ] ULONG uView );
  462. HRESULT CreateViewWindow2(
  463. [ in ] LPSV2CVW2_PARAMS lpParams );
  464. HRESULT HandleRename(
  465. [ in, unique ] PCUITEMID_CHILD pidlNew );
  466. HRESULT SelectAndPositionItem(
  467. [ in ] PCUITEMID_CHILD pidlItem,
  468. [ in ] UINT uFlags,
  469. [ in, unique ] POINT *ppt );
  470. }
  471. [
  472. uuid( ec39fa88-f8af-41c5-8421-38bed28f4673 ),
  473. object,
  474. pointer_default( unique )
  475. ]
  476. interface IShellView3 : IShellView2
  477. {
  478. enum tagSV3CVW3
  479. {
  480. SV3CVW3_DEFAULT = 0x00000000,
  481. SV3CVW3_NONINTERACTIVE = 0x00000001,
  482. SV3CVW3_FORCEVIEWMODE = 0x00000002,
  483. SV3CVW3_FORCEFOLDERFLAGS = 0x00000004,
  484. };
  485. typedef DWORD SV3CVW3_FLAGS;
  486. HRESULT CreateViewWindow3(
  487. [ in ] IShellBrowser *psbOwner,
  488. [ in, unique ] IShellView *psvPrev,
  489. [ in ] SV3CVW3_FLAGS dwViewFlags,
  490. [ in ] FOLDERFLAGS dwMask,
  491. [ in ] FOLDERFLAGS dwFlags,
  492. [ in ] FOLDERVIEWMODE fvMode,
  493. [ in, unique ] const SHELLVIEWID *pvid,
  494. [ in ] const RECT *prcView,
  495. [ out ] HWND *phwndView );
  496. }
  497. /*****************************************************************************
  498. * IShellBrowser interface
  499. */
  500. [
  501. object,
  502. uuid( 000214e2-0000-0000-c000-000000000046 ),
  503. pointer_default( unique )
  504. ]
  505. interface IShellBrowser : IOleWindow
  506. {
  507. typedef IShellBrowser *LPSHELLBROWSER;
  508. cpp_quote( "#define SBSP_DEFBROWSER 0x00000000" )
  509. cpp_quote( "#define SBSP_SAMEBROWSER 0x00000001" )
  510. cpp_quote( "#define SBSP_NEWBROWSER 0x00000002" )
  511. cpp_quote( "#define SBSP_DEFMODE 0x00000000" )
  512. cpp_quote( "#define SBSP_OPENMODE 0x00000010" )
  513. cpp_quote( "#define SBSP_EXPLOREMODE 0x00000020" )
  514. cpp_quote( "#define SBSP_HELPMODE 0x00000040" )
  515. cpp_quote( "#define SBSP_NOTRANSFERHIST 0x00000080" )
  516. cpp_quote( "#define SBSP_ABSOLUTE 0x00000000" )
  517. cpp_quote( "#define SBSP_RELATIVE 0x00001000" )
  518. cpp_quote( "#define SBSP_PARENT 0x00002000" )
  519. cpp_quote( "#define SBSP_NAVIGATEBACK 0x00004000" )
  520. cpp_quote( "#define SBSP_NAVIGATEFORWARD 0x00008000" )
  521. cpp_quote( "#define SBSP_ALLOW_AUTONAVIGATE 0x00010000" )
  522. cpp_quote( "#define SBSP_NOAUTOSELECT 0x04000000" )
  523. cpp_quote( "#define SBSP_WRITENOHISTORY 0x08000000" )
  524. cpp_quote( "#define SBSP_REDIRECT 0x40000000" )
  525. cpp_quote( "#define SBSP_INITIATEDBYHLINKFRAME 0x80000000" )
  526. cpp_quote( "#define FCW_STATUS 0x0001" )
  527. cpp_quote( "#define FCW_TOOLBAR 0x0002" )
  528. cpp_quote( "#define FCW_TREE 0x0003" )
  529. cpp_quote( "#define FCW_INTERNETBAR 0x0006" )
  530. cpp_quote( "#define FCW_PROGRESS 0x0008" )
  531. cpp_quote( "#define FCT_MERGE 0x0001" )
  532. cpp_quote( "#define FCT_CONFIGABLE 0x0002" )
  533. cpp_quote( "#define FCT_ADDTOEND 0x0004" )
  534. cpp_quote( "#if 0" )
  535. typedef LPARAM LPTBBUTTONSB;
  536. cpp_quote( "#else" )
  537. cpp_quote( "#include <commctrl.h>" )
  538. cpp_quote( "typedef LPTBBUTTON LPTBBUTTONSB;" )
  539. cpp_quote( "#endif" )
  540. HRESULT InsertMenusSB(
  541. [ in ] HMENU hmenuShared,
  542. [ in, out ] LPOLEMENUGROUPWIDTHS lpMenuWidths );
  543. HRESULT SetMenuSB(
  544. [ in ] HMENU hmenuShared,
  545. [ in ] HOLEMENU holemenuReserved,
  546. [ in ] HWND hwndActiveObject );
  547. HRESULT RemoveMenusSB( [ in ] HMENU hmenuShared );
  548. HRESULT SetStatusTextSB( [ in, unique ] LPCOLESTR pszStatusText );
  549. HRESULT EnableModelessSB( [ in ] BOOL fEnable );
  550. HRESULT TranslateAcceleratorSB( [ in ] MSG *pmsg, [ in ] WORD wID );
  551. HRESULT BrowseObject(
  552. [ in ] LPCITEMIDLIST pidl,
  553. [ in ] UINT wFlags );
  554. HRESULT GetViewStateStream(
  555. [ in ] DWORD grfMode,
  556. [ out ] IStream **ppStrm );
  557. HRESULT GetControlWindow(
  558. [ in ] UINT id,
  559. [ out ] HWND *phwnd );
  560. [local] HRESULT SendControlMsg(
  561. [ in ] UINT id,
  562. [ in ] UINT uMsg,
  563. [ in ] WPARAM wParam,
  564. [ in ] LPARAM lParam,
  565. [ in ] LRESULT *pret );
  566. HRESULT QueryActiveShellView( [ out ] IShellView **ppshv );
  567. HRESULT OnViewWindowActive( [ in ] IShellView *pshv );
  568. [local]
  569. HRESULT SetToolbarItems(
  570. [ in ] LPTBBUTTONSB lpButtons,
  571. [ in ] UINT nButtons,
  572. [ in ] UINT uFlags );
  573. }
  574. /*****************************************************************************
  575. * IShellLinkA interface
  576. */
  577. [
  578. object,
  579. uuid( 000214ee-0000-0000-c000-000000000046 ),
  580. pointer_default( unique )
  581. ]
  582. interface IShellLinkA : IUnknown
  583. {
  584. typedef enum
  585. {
  586. SLR_NO_UI = 0x0001,
  587. SLR_ANY_MATCH = 0x0002,
  588. SLR_UPDATE = 0x0004,
  589. SLR_NOUPDATE = 0x0008,
  590. SLR_NOSEARCH = 0x0010,
  591. SLR_NOTRACK = 0x0020,
  592. SLR_NOLINKINFO = 0x0040,
  593. SLR_INVOKE_MSI = 0x0080,
  594. SLR_NO_UI_WITH_MSG_PUMP = 0x0101,
  595. } SLR_FLAGS;
  596. typedef enum
  597. {
  598. SLGP_SHORTPATH = 0x0001,
  599. SLGP_UNCPRIORITY = 0x0002,
  600. SLGP_RAWPATH = 0x0004,
  601. } SLGP_FLAGS;
  602. HRESULT GetPath(
  603. [ out, size_is( cch ) ] LPSTR pszFile,
  604. [ in ] int cch,
  605. [ in, out ] WIN32_FIND_DATAA *pfd,
  606. [ in ] DWORD fFlags );
  607. HRESULT GetIDList( [ out ] LPITEMIDLIST * ppidl );
  608. HRESULT SetIDList( [ in ] LPCITEMIDLIST pidl );
  609. HRESULT GetDescription(
  610. [ out, size_is( cch ) ] LPSTR pszName,
  611. [ in ] int cch );
  612. HRESULT SetDescription( [ in ] LPCSTR pszName );
  613. HRESULT GetWorkingDirectory(
  614. [ out, size_is( cch ) ] LPSTR pszDir,
  615. [ in ] int cch );
  616. HRESULT SetWorkingDirectory( [ in ] LPCSTR pszDir );
  617. HRESULT GetArguments(
  618. [ out, size_is( cch ) ] LPSTR pszArgs,
  619. [ in ] int cch );
  620. HRESULT SetArguments( [ in ] LPCSTR pszArgs );
  621. HRESULT GetHotkey( [ out ] WORD *pwHotkey );
  622. HRESULT SetHotkey( [ in ] WORD wHotkey );
  623. HRESULT GetShowCmd( [ out ] int *piShowCmd );
  624. HRESULT SetShowCmd( [ in ] int iShowCmd );
  625. HRESULT GetIconLocation(
  626. [ out, size_is( cch ) ] LPSTR pszIconPath,
  627. [ in ] int cch,
  628. [ out ] int *piIcon );
  629. HRESULT SetIconLocation(
  630. [ in ] LPCSTR pszIconPath,
  631. [ in ] int iIcon );
  632. HRESULT SetRelativePath(
  633. [ in ] LPCSTR pszPathRel,
  634. [ in ] DWORD dwReserved );
  635. HRESULT Resolve(
  636. [ in ] HWND hwnd,
  637. [ in ] DWORD fFlags );
  638. HRESULT SetPath( [ in ] LPCSTR pszFile );
  639. }
  640. /*****************************************************************************
  641. * IShellLinkW interface
  642. */
  643. [
  644. object,
  645. uuid( 000214f9-0000-0000-c000-000000000046 ),
  646. pointer_default( unique )
  647. ]
  648. interface IShellLinkW : IUnknown
  649. {
  650. HRESULT GetPath(
  651. [ out, size_is( cch ) ] LPWSTR pszFile,
  652. [ in ] int cch,
  653. [ in, out ] WIN32_FIND_DATAW *pfd,
  654. [ in ] DWORD fFlags );
  655. HRESULT GetIDList( [ out ] LPITEMIDLIST * ppidl );
  656. HRESULT SetIDList( [ in ] LPCITEMIDLIST pidl );
  657. HRESULT GetDescription(
  658. [ out, size_is( cch ) ] LPWSTR pszName,
  659. [ in ] int cch );
  660. HRESULT SetDescription( [ in ] LPCWSTR pszName );
  661. HRESULT GetWorkingDirectory(
  662. [ out, size_is( cch ) ] LPWSTR pszDir,
  663. [ in ] int cch );
  664. HRESULT SetWorkingDirectory( [ in ] LPCWSTR pszDir );
  665. HRESULT GetArguments(
  666. [ out, size_is( cch ) ] LPWSTR pszArgs,
  667. [ in ] int cch );
  668. HRESULT SetArguments( [ in ] LPCWSTR pszArgs );
  669. HRESULT GetHotkey( [ out ] WORD *pwHotkey );
  670. HRESULT SetHotkey( [ in ] WORD wHotkey );
  671. HRESULT GetShowCmd( [ out ] int *piShowCmd );
  672. HRESULT SetShowCmd( [ in ] int iShowCmd );
  673. HRESULT GetIconLocation(
  674. [ out, size_is( cch ) ] LPWSTR pszIconPath,
  675. [ in ] int cch,
  676. [ out ] int *piIcon );
  677. HRESULT SetIconLocation(
  678. [ in ] LPCWSTR pszIconPath,
  679. [ in ] int iIcon );
  680. HRESULT SetRelativePath(
  681. [ in ] LPCWSTR pszPathRel,
  682. [ in ] DWORD dwReserved );
  683. HRESULT Resolve(
  684. [ in ] HWND hwnd,
  685. [ in ] DWORD fFlags );
  686. HRESULT SetPath( [ in ] LPCWSTR pszFile );
  687. }
  688. cpp_quote( "#define IShellLink WINELIB_NAME_AW(IShellLink)" )
  689. /*****************************************************************************
  690. * IShellExtInit interface
  691. */
  692. [
  693. object,
  694. uuid( 000214e8-0000-0000-c000-000000000046 ),
  695. pointer_default( unique ),
  696. local
  697. ]
  698. interface IShellExtInit : IUnknown
  699. {
  700. typedef IShellExtInit *LPSHELLEXTINIT;
  701. HRESULT Initialize(
  702. [ in ] LPCITEMIDLIST pidlFolder,
  703. [ in ] IDataObject *pdtobj,
  704. [ in ] HKEY hkeyProgID );
  705. }
  706. /*******************************************************************************/
  707. /* Note: the following interfaces are not in shobjidl.idl under Windows, they */
  708. /* are declared directly in shlobj.h. It hopefully won't break anything to put */
  709. /* them here anyway. */
  710. /*******************************************************************************/
  711. #ifndef MAX_PATH
  712. #define MAX_PATH 260
  713. #endif
  714. /*****************************************************************************
  715. * IPersistFolder3 interface
  716. */
  717. [
  718. object,
  719. uuid( cef04fdf-fe72-11d2-87a5-00c04f6837cf ),
  720. pointer_default( unique )
  721. ]
  722. interface IPersistFolder3 : IPersistFolder2
  723. {
  724. typedef struct
  725. {
  726. LPITEMIDLIST pidlTargetFolder;
  727. WCHAR szTargetParsingName[ MAX_PATH ];
  728. WCHAR szNetworkProvider[ MAX_PATH ];
  729. DWORD dwAttributes;
  730. int csidl;
  731. } PERSIST_FOLDER_TARGET_INFO;
  732. HRESULT InitializeEx(
  733. [ in ] IBindCtx *pbc,
  734. [ in ] LPCITEMIDLIST pidlRoot,
  735. [ in ] const PERSIST_FOLDER_TARGET_INFO *ppfti );
  736. HRESULT GetFolderTargetInfo( [ out ] PERSIST_FOLDER_TARGET_INFO *ppfti );
  737. }
  738. /*****************************************************************************
  739. * IExtractIconA interface
  740. */
  741. [
  742. object,
  743. uuid( 000214eb-0000-0000-c000-000000000046 ),
  744. pointer_default( unique )
  745. ]
  746. interface IExtractIconA : IUnknown
  747. {
  748. cpp_quote( "#define GIL_OPENICON 0x0001" )
  749. cpp_quote( "#define GIL_FORSHELL 0x0002" )
  750. cpp_quote( "#define GIL_ASYNC 0x0020" )
  751. cpp_quote( "#define GIL_DEFAULTICON 0x0040" )
  752. cpp_quote( "#define GIL_FORSHORTCUT 0x0080" )
  753. cpp_quote( "#define GIL_SIMULATEDOC 0x0001" )
  754. cpp_quote( "#define GIL_PERINSTANCE 0x0002" )
  755. cpp_quote( "#define GIL_PERCLASS 0x0004" )
  756. cpp_quote( "#define GIL_NOTFILENAME 0x0008" )
  757. cpp_quote( "#define GIL_DONTCACHE 0x0010" )
  758. typedef IExtractIconA *LPEXTRACTICONA;
  759. HRESULT GetIconLocation(
  760. [ in ] UINT uFlags,
  761. [ out, size_is( cchMax ) ] LPSTR szIconFile,
  762. [ in ] UINT cchMax,
  763. [ out ] INT *piIndex,
  764. [ out ] UINT *pwFlags );
  765. HRESULT Extract(
  766. [ in ] LPCSTR pszFile,
  767. [ in ] UINT nIconIndex,
  768. [ out ] HICON *phiconLarge,
  769. [ out ] HICON *phiconSmall,
  770. [ in ] UINT nIconSize );
  771. }
  772. /*****************************************************************************
  773. * IExtractIconW interface
  774. */
  775. [
  776. object,
  777. uuid( 000214fa-0000-0000-c000-000000000046 ),
  778. pointer_default( unique )
  779. ]
  780. interface IExtractIconW : IUnknown
  781. {
  782. typedef IExtractIconW *LPEXTRACTICONW;
  783. HRESULT GetIconLocation(
  784. [ in ] UINT uFlags,
  785. [ out, size_is( cchMax ) ] LPWSTR szIconFile,
  786. [ in ] UINT cchMax,
  787. [ out ] INT *piIndex,
  788. [ out ] UINT *pwFlags );
  789. HRESULT Extract(
  790. [ in ] LPCWSTR pszFile,
  791. [ in ] UINT nIconIndex,
  792. [ out ] HICON *phiconLarge,
  793. [ out ] HICON *phiconSmall,
  794. [ in ] UINT nIconSize );
  795. }
  796. cpp_quote( "#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)" )
  797. cpp_quote( "#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)" )
  798. /*****************************************************************************
  799. * ICommDlgBrowser interface
  800. */
  801. [
  802. object,
  803. uuid( 000214f1-0000-0000-c000-000000000046 ),
  804. pointer_default( unique )
  805. ]
  806. interface ICommDlgBrowser : IUnknown
  807. {
  808. cpp_quote( "#define CDBOSC_SETFOCUS 0x00000000" )
  809. cpp_quote( "#define CDBOSC_KILLFOCUS 0x00000001" )
  810. cpp_quote( "#define CDBOSC_SELCHANGE 0x00000002" )
  811. cpp_quote( "#define CDBOSC_RENAME 0x00000003" )
  812. cpp_quote( "#define CDBOSC_STATECHANGE 0x00000004" )
  813. typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
  814. HRESULT OnDefaultCommand( [ in ] IShellView *shv );
  815. HRESULT OnStateChange( [ in ] IShellView *shv, [ in ] ULONG uChange );
  816. HRESULT IncludeObject( [ in ] IShellView *shv, [ in ] LPCITEMIDLIST pidl );
  817. }
  818. /*****************************************************************************
  819. * IDockingWindowFrame interface
  820. */
  821. [
  822. object,
  823. uuid( 47d2657a-7b27-11d0-8ca9-00a0c92dbfe8 ),
  824. pointer_default( unique ),
  825. local
  826. ]
  827. interface IDockingWindowFrame : IOleWindow
  828. {
  829. cpp_quote( "#define DWFRF_NORMAL 0x0000" )
  830. cpp_quote( "#define DWFRF_DELETECONFIGDATA 0x0001" )
  831. cpp_quote( "#define DWFAF_HIDDEN 0x0001" )
  832. HRESULT AddToolbar(
  833. [ in ] IUnknown *punkSrc,
  834. [ in ] LPCWSTR pwszItem,
  835. [ in ] DWORD dwAddFlags );
  836. HRESULT RemoveToolbar(
  837. [ in ] IUnknown *punkSrc,
  838. [ in ] DWORD dwRemoveFlags );
  839. HRESULT FindToolbar(
  840. [ in ] LPCWSTR pwszItem,
  841. [ in ] REFIID riid,
  842. [ out ] LPVOID *ppvObj );
  843. }
  844. /*****************************************************************************
  845. * IDragSourceHelper interface
  846. */
  847. [
  848. object,
  849. uuid( de5bf786-477a-11d2-839d-00c04fd918d0 ),
  850. pointer_default( unique )
  851. ]
  852. interface IDragSourceHelper : IUnknown
  853. {
  854. typedef struct
  855. {
  856. SIZE sizeDragImage;
  857. POINT ptOffset;
  858. HBITMAP hbmpDragImage;
  859. COLORREF crColorKey;
  860. } SHDRAGIMAGE, *LPSHDRAGIMAGE;
  861. HRESULT InitializeFromBitmap(
  862. [ in ] LPSHDRAGIMAGE pshdi,
  863. [ in ] IDataObject *pDataObject );
  864. HRESULT InitializeFromWindow(
  865. [ in ] HWND hwnd,
  866. [ in ] POINT *ppt,
  867. [ in ] IDataObject *pDataObject );
  868. }
  869. /*****************************************************************************
  870. * IDropTargetHelper interface
  871. */
  872. [
  873. object,
  874. uuid( 4657278b-411b-11d2-839a-00c04fd918d0 ),
  875. pointer_default( unique )
  876. ]
  877. interface IDropTargetHelper : IUnknown
  878. {
  879. HRESULT DragEnter(
  880. [ in ] HWND hwndTarget,
  881. [ in ] IDataObject *pDataObject,
  882. [ in ] POINT *ppt,
  883. [ in ] DWORD dwEffect );
  884. HRESULT DragLeave();
  885. HRESULT DragOver(
  886. [ in ] POINT *ppt,
  887. [ in ] DWORD dwEffect );
  888. HRESULT Drop(
  889. [ in ] IDataObject *pDataObject,
  890. [ in ] POINT *ppt,
  891. [ in ] DWORD dwEffect );
  892. HRESULT Show( [ in ] BOOL fShow );
  893. }
  894. /*****************************************************************************
  895. * IContextMenu interface
  896. */
  897. [
  898. object,
  899. uuid( 000214e4-0000-0000-c000-000000000046 ),
  900. pointer_default( unique ),
  901. local
  902. ]
  903. interface IContextMenu : IUnknown
  904. {
  905. cpp_quote( "#define CMF_NORMAL 0x00000000" )
  906. cpp_quote( "#define CMF_DEFAULTONLY 0x00000001" )
  907. cpp_quote( "#define CMF_VERBSONLY 0x00000002" )
  908. cpp_quote( "#define CMF_EXPLORE 0x00000004" )
  909. cpp_quote( "#define CMF_NOVERBS 0x00000008" )
  910. cpp_quote( "#define CMF_CANRENAME 0x00000010" )
  911. cpp_quote( "#define CMF_NODEFAULT 0x00000020" )
  912. cpp_quote( "#define CMF_INCLUDESTATIC 0x00000040" )
  913. cpp_quote( "#define CMF_EXTENDEDVERBS 0x00000100" )
  914. cpp_quote( "#define CMF_RESERVED 0xffff0000" )
  915. cpp_quote( "#define GCS_VERBA 0x00000000" )
  916. cpp_quote( "#define GCS_HELPTEXTA 0x00000001" )
  917. cpp_quote( "#define GCS_VALIDATEA 0x00000002" )
  918. cpp_quote( "#define GCS_VERBW 0x00000004" )
  919. cpp_quote( "#define GCS_HELPTEXTW 0x00000005" )
  920. cpp_quote( "#define GCS_VALIDATEW 0x00000006" )
  921. cpp_quote( "#define GCS_UNICODE 0x00000004" )
  922. cpp_quote( "#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)" )
  923. cpp_quote( "#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)" )
  924. cpp_quote( "#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)" )
  925. cpp_quote( "#define CMDSTR_NEWFOLDERA \"NewFolder\"" )
  926. cpp_quote( "#define CMDSTR_VIEWLISTA \"ViewList\"" )
  927. cpp_quote( "#define CMDSTR_VIEWDETAILSA \"ViewDetails\"" )
  928. cpp_quote( "#if defined(__GNUC__)" )
  929. cpp_quote( "# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }" )
  930. cpp_quote( "# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }" )
  931. cpp_quote( "# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }" )
  932. cpp_quote( "#elif defined(_MSC_VER)" )
  933. cpp_quote( "# define CMDSTR_NEWFOLDERW L\"NewFolder\"" )
  934. cpp_quote( "# define CMDSTR_VIEWLISTW L\"ViewList\"" )
  935. cpp_quote( "# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"" )
  936. cpp_quote( "#else" )
  937. cpp_quote( "static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};" )
  938. cpp_quote( "static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};" )
  939. cpp_quote( "static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};" )
  940. cpp_quote( "#endif" )
  941. cpp_quote( "#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)" )
  942. cpp_quote( "#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)" )
  943. cpp_quote( "#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)" )
  944. cpp_quote( "#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY" )
  945. cpp_quote( "#define CMIC_MASK_ICON SEE_MASK_ICON" )
  946. cpp_quote( "#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI" )
  947. cpp_quote( "#define CMIC_MASK_UNICODE SEE_MASK_UNICODE" )
  948. cpp_quote( "#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE" )
  949. cpp_quote( "#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME" )
  950. cpp_quote( "#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM" )
  951. cpp_quote( "#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE" )
  952. cpp_quote( "#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK" )
  953. cpp_quote( "#define CMIC_MASK_SHIFT_DOWN 0x10000000" )
  954. cpp_quote( "#define CMIC_MASK_PTINVOKE 0x20000000" )
  955. cpp_quote( "#define CMIC_MASK_CONTROL_DOWN 0x40000000" )
  956. cpp_quote( "#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE" )
  957. cpp_quote( "#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS" )
  958. typedef IContextMenu *LPCONTEXTMENU;
  959. typedef struct tagCMINVOKECOMMANDINFO
  960. {
  961. DWORD cbSize;
  962. DWORD fMask;
  963. HWND hwnd;
  964. LPCSTR lpVerb;
  965. LPCSTR lpParameters;
  966. LPCSTR lpDirectory;
  967. INT nShow;
  968. DWORD dwHotKey;
  969. HANDLE hIcon;
  970. } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
  971. typedef struct tagCMInvokeCommandInfoEx
  972. {
  973. DWORD cbSize;
  974. DWORD fMask;
  975. HWND hwnd;
  976. LPCSTR lpVerb;
  977. LPCSTR lpParameters;
  978. LPCSTR lpDirectory;
  979. INT nShow;
  980. DWORD dwHotKey;
  981. HANDLE hIcon;
  982. LPCSTR lpTitle;
  983. LPCWSTR lpVerbW;
  984. LPCWSTR lpParametersW;
  985. LPCWSTR lpDirectoryW;
  986. LPCWSTR lpTitleW;
  987. POINT ptInvoke;
  988. } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
  989. HRESULT QueryContextMenu(
  990. [ in ] HMENU hmenu,
  991. [ in ] UINT indexMenu,
  992. [ in ] UINT idCmdFirst,
  993. [ in ] UINT idCmdLast,
  994. [ in ] UINT uFlags );
  995. HRESULT InvokeCommand( [ in ] LPCMINVOKECOMMANDINFO lpici );
  996. HRESULT GetCommandString(
  997. [ in ] UINT_PTR idCmd,
  998. [ in ] UINT uType,
  999. [ out ] UINT *pwReserved,
  1000. [ out, size_is( cchMax ) ] LPSTR pszName,
  1001. [ in ] UINT cchMax );
  1002. }
  1003. /*****************************************************************************
  1004. * IContextMenu2 interface
  1005. */
  1006. [
  1007. object,
  1008. uuid( 000214f4-0000-0000-c000-000000000046 ),
  1009. pointer_default( unique )
  1010. ]
  1011. interface IContextMenu2 : IContextMenu
  1012. {
  1013. typedef IContextMenu2 *LPCONTEXTMENU2;
  1014. HRESULT HandleMenuMsg(
  1015. [ in ] UINT uMsg,
  1016. [ in ] WPARAM wParam,
  1017. [ in ] LPARAM lParam );
  1018. }
  1019. /*****************************************************************************
  1020. * IContextMenu3 interface
  1021. */
  1022. [
  1023. object,
  1024. uuid( bcfce0a0-ec17-11d0-8d10-00a0c90f2719 ),
  1025. pointer_default( unique )
  1026. ]
  1027. interface IContextMenu3 : IContextMenu2
  1028. {
  1029. typedef IContextMenu3 *LPCONTEXTMENU3;
  1030. HRESULT HandleMenuMsg2(
  1031. [ in ] UINT uMsg,
  1032. [ in ] WPARAM wParam,
  1033. [ in ] LPARAM lParam,
  1034. [ out ] LRESULT *plResult );
  1035. }
  1036. /*****************************************************************************
  1037. * IShellExecuteHookA interface
  1038. */
  1039. [
  1040. object,
  1041. uuid( 000214f5-0000-0000-c000-000000000046 ),
  1042. pointer_default( unique ),
  1043. local
  1044. ]
  1045. interface IShellExecuteHookA : IUnknown
  1046. {
  1047. cpp_quote( "struct _SHELLEXECUTEINFOA;" )
  1048. HRESULT Execute(
  1049. [ in, out ] struct _SHELLEXECUTEINFOA* pei );
  1050. }
  1051. /*****************************************************************************
  1052. * IShellExecuteHookW interface
  1053. */
  1054. [
  1055. object,
  1056. uuid( 000214fb-0000-0000-c000-000000000046 ),
  1057. pointer_default( unique ),
  1058. local
  1059. ]
  1060. interface IShellExecuteHookW : IUnknown
  1061. {
  1062. cpp_quote( "struct _SHELLEXECUTEINFOW;" )
  1063. HRESULT Execute(
  1064. [ in, out ] struct _SHELLEXECUTEINFOW* pei );
  1065. }
  1066. /*****************************************************************************
  1067. * IShellLinkDataList interface
  1068. */
  1069. [
  1070. object,
  1071. uuid( 45e2b4ae-b1c3-11d0-b92f-00a0c90312e1 ),
  1072. pointer_default( unique )
  1073. ]
  1074. interface IShellLinkDataList : IUnknown
  1075. {
  1076. [local] HRESULT AddDataBlock(
  1077. [ in ] void *pDataBlock );
  1078. [local] HRESULT CopyDataBlock(
  1079. [ in ] DWORD dwSig,
  1080. [ out ] void **ppDataBlock );
  1081. HRESULT RemoveDataBlock(
  1082. [ in ] DWORD dwSig );
  1083. HRESULT GetFlags(
  1084. [ out ] DWORD *pdwFlags );
  1085. HRESULT SetFlags(
  1086. [ in ] DWORD dwFlags );
  1087. }
  1088. /*****************************************************************************
  1089. * IResolveShellLink interface
  1090. */
  1091. [
  1092. object,
  1093. uuid( 5cd52983-9449-11d2-963a-00c04f79adf0 ),
  1094. pointer_default( unique )
  1095. ]
  1096. interface IResolveShellLink : IUnknown
  1097. {
  1098. HRESULT ResolveShellLink(
  1099. [ in ] IUnknown *punk,
  1100. [ in ] HWND hwnd,
  1101. [ in ] DWORD fFlags );
  1102. }
  1103. /*****************************************************************************
  1104. * IURLSearchHook interface
  1105. */
  1106. [
  1107. object,
  1108. uuid( ac60f6a0-0fd9-11d0-99cb-00c04fd64497 ),
  1109. pointer_default( unique ),
  1110. local
  1111. ]
  1112. interface IURLSearchHook : IUnknown
  1113. {
  1114. HRESULT Translate(
  1115. [ in, out ] LPWSTR lpwszSearchURL,
  1116. [ in ] DWORD cchBufferSize );
  1117. }
  1118. /*****************************************************************************
  1119. * ISearchContext interface
  1120. */
  1121. [
  1122. object,
  1123. uuid( 09f656a2-41af-480c-88f7-16cc0d164615 ),
  1124. pointer_default( unique )
  1125. ]
  1126. interface ISearchContext : IUnknown
  1127. {
  1128. HRESULT GetSearchUrl(
  1129. [ in ] BSTR *pbstrSearchUrl );
  1130. HRESULT GetSearchText(
  1131. [ in ] BSTR *pbstrSearchText );
  1132. HRESULT GetSearchStyle(
  1133. [ in ] BSTR *pdwSearchStyle );
  1134. }
  1135. /*****************************************************************************
  1136. * IURLSearchHook2 interface
  1137. */
  1138. [
  1139. object,
  1140. uuid( 5ee44da4-6d32-46e3-86bc-07540dedd0e0 ),
  1141. pointer_default( unique ),
  1142. local
  1143. ]
  1144. interface IURLSearchHook2 : IURLSearchHook
  1145. {
  1146. HRESULT TranslateWithSearchContext(
  1147. [ in, out ] LPWSTR lpwszSearchURL,
  1148. [ in ] DWORD cchBufferSize,
  1149. [ in ] ISearchContext *pSearchContext );
  1150. }
  1151. cpp_quote( "#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)" )
  1152. /*****************************************************************************
  1153. * INewShortcutHookA interface
  1154. */
  1155. [
  1156. object,
  1157. uuid( 000214e1-0000-0000-c000-000000000046 ),
  1158. pointer_default( unique ),
  1159. local
  1160. ]
  1161. interface INewShortcutHookA : IUnknown
  1162. {
  1163. HRESULT SetReferent(
  1164. [ in ] LPCSTR pcszReferent,
  1165. [ in ] HWND hwnd );
  1166. HRESULT GetReferent(
  1167. [ out ] LPCSTR pcszReferent,
  1168. [ in ] int cchReferent );
  1169. HRESULT SetFolder(
  1170. [ in ] LPCSTR pcszReferent );
  1171. HRESULT GetFolder(
  1172. [ out ] LPSTR pcszReferent,
  1173. [ in ] int cchFolder );
  1174. HRESULT GetName(
  1175. [ out ] LPSTR pszName,
  1176. [ in ] int cchName );
  1177. HRESULT GetExtension(
  1178. [ out ] LPSTR pszExtension,
  1179. [ in ] int cchExtension );
  1180. }
  1181. /*****************************************************************************
  1182. * INewShortcutHookW interface
  1183. */
  1184. [
  1185. object,
  1186. uuid( 000214f7-0000-0000-c000-000000000046 ),
  1187. pointer_default( unique ),
  1188. local
  1189. ]
  1190. interface INewShortcutHookW : IUnknown
  1191. {
  1192. HRESULT SetReferent(
  1193. [ in ] LPCWSTR pcszReferent,
  1194. [ in ] HWND hwnd );
  1195. HRESULT GetReferent(
  1196. [ out ] LPCWSTR pcszReferent,
  1197. [ in ] int cchReferent );
  1198. HRESULT SetFolder(
  1199. [ in ] LPCWSTR pcszReferent );
  1200. HRESULT GetFolder(
  1201. [ out ] LPWSTR pcszReferent,
  1202. [ in ] int cchFolder );
  1203. HRESULT GetName(
  1204. [ out ] LPWSTR pszName,
  1205. [ in ] int cchName );
  1206. HRESULT GetExtension(
  1207. [ out ] LPWSTR pszExtension,
  1208. [ in ] int cchExtension );
  1209. }
  1210. /*****************************************************************************
  1211. * IRunnableTask interface
  1212. */
  1213. [
  1214. object,
  1215. uuid( 85788d00-6807-11d0-b810-00c04fd706ec ),
  1216. pointer_default( unique )
  1217. ]
  1218. interface IRunnableTask : IUnknown
  1219. {
  1220. HRESULT Run();
  1221. HRESULT Kill( [ in ] BOOL fWait );
  1222. HRESULT Suspend();
  1223. HRESULT Resume();
  1224. ULONG IsRunning();
  1225. }
  1226. /*****************************************************************************
  1227. * IShellChangeNotify interface
  1228. */
  1229. [
  1230. object,
  1231. uuid( d82be2b1-5764-11d0-a96e-00c04fd705a2 ),
  1232. pointer_default( unique )
  1233. ]
  1234. interface IShellChangeNotify : IUnknown
  1235. {
  1236. HRESULT OnChange(
  1237. [ in ] LONG lEvent,
  1238. [ in ] LPCITEMIDLIST pidl1,
  1239. [ in ] LPCITEMIDLIST pidl2 );
  1240. }
  1241. /*****************************************************************************
  1242. * IFileSystemBindData interface
  1243. */
  1244. [
  1245. object,
  1246. uuid( 01e18d10-4d8b-11d2-855d-006008059367 ),
  1247. pointer_default( unique )
  1248. ]
  1249. interface IFileSystemBindData : IUnknown
  1250. {
  1251. HRESULT SetFindData(
  1252. [ in ] const WIN32_FIND_DATAW *pfd );
  1253. HRESULT GetFindData(
  1254. [ out ] WIN32_FIND_DATAW *pfd );
  1255. }
  1256. /*****************************************************************************
  1257. * ITaskbarList interface
  1258. */
  1259. [
  1260. object,
  1261. uuid( 56FDF342-FD6D-11d0-958A-006097C9A090 ),
  1262. pointer_default( unique )
  1263. ]
  1264. interface ITaskbarList : IUnknown
  1265. {
  1266. HRESULT HrInit();
  1267. HRESULT AddTab(
  1268. [ in ] HWND hwnd );
  1269. HRESULT DeleteTab(
  1270. [ in ] HWND hwnd );
  1271. HRESULT ActivateTab(
  1272. [ in ] HWND hwnd );
  1273. HRESULT SetActiveAlt(
  1274. [ in ] HWND hwnd );
  1275. }
  1276. cpp_quote( "EXTERN_C const CLSID CLSID_TaskbarList;" )
  1277. /*****************************************************************************
  1278. * IContextMenuCB interface
  1279. */
  1280. [
  1281. object,
  1282. uuid( 3409e930-5a39-11d1-83fa-00a0c90dc849 ),
  1283. pointer_default( unique )
  1284. ]
  1285. interface IContextMenuCB : IUnknown
  1286. {
  1287. HRESULT CallBack(
  1288. [ in ] IShellFolder *psf,
  1289. [ in ] HWND hwndOwner,
  1290. [ in ] IDataObject *pdtobj,
  1291. [ in ] UINT uMsg,
  1292. [ in ] WPARAM wParam,
  1293. [ in ] LPARAM lParam );
  1294. }
  1295. /*****************************************************************************
  1296. * IDefaultExtractIconInit interface
  1297. */
  1298. [
  1299. object,
  1300. uuid( 800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9 ), /* FIXME: wrong value! */
  1301. pointer_default( unique ),
  1302. local
  1303. ]
  1304. interface IDefaultExtractIconInit : IUnknown
  1305. {
  1306. HRESULT SetDefaultIcon(
  1307. [ in ] LPCWSTR pszFile,
  1308. [ in ] int iIcon );
  1309. HRESULT SetFlags(
  1310. [ in ] UINT uFlags );
  1311. HRESULT SetKey(
  1312. [ in ] HKEY hkey );
  1313. HRESULT SetNormalIcon(
  1314. [ in ] LPCWSTR pszFile,
  1315. [ in ] int iIcon );
  1316. HRESULT SetOpenIcon(
  1317. [ in ] LPCWSTR pszFile,
  1318. [ in ] int iIcon );
  1319. HRESULT SetShortcutIcon(
  1320. [ in ] LPCWSTR pszFile,
  1321. [ in ] int iIcon );
  1322. }
  1323. /*****************************************************************************
  1324. * IDockingWindow interface
  1325. */
  1326. [
  1327. uuid( 012dd920-7b26-11d0-8ca9-00a0c92dbfe8 ),
  1328. object
  1329. ]
  1330. interface IDockingWindow : IOleWindow
  1331. {
  1332. HRESULT ShowDW( [ in ] BOOL fShow );
  1333. HRESULT CloseDW( [ in ] DWORD dwReserved );
  1334. HRESULT ResizeBorderDW(
  1335. [ in ] LPCRECT prcBorder,
  1336. [ in ] IUnknown* punkToolbarSite,
  1337. [ in ] BOOL fReserved );
  1338. }
  1339. /*****************************************************************************
  1340. * IDeskBand interface
  1341. */
  1342. cpp_quote( "#define DBIM_MINSIZE 0x0001" )
  1343. cpp_quote( "#define DBIM_MAXSIZE 0x0002" )
  1344. cpp_quote( "#define DBIM_INTEGRAL 0x0004" )
  1345. cpp_quote( "#define DBIM_ACTUAL 0x0008" )
  1346. cpp_quote( "#define DBIM_TITLE 0x0010" )
  1347. cpp_quote( "#define DBIM_MODEFLAGS 0x0020" )
  1348. cpp_quote( "#define DBIM_BKCOLOR 0x0040" )
  1349. cpp_quote( "#include <pshpack8.h>" )
  1350. typedef struct tagDESKBANDINFO
  1351. {
  1352. DWORD dwMask;
  1353. POINTL ptMinSize;
  1354. POINTL ptMaxSize;
  1355. POINTL ptIntegral;
  1356. POINTL ptActual;
  1357. WCHAR wszTitle[ 256 ];
  1358. DWORD dwModeFlags;
  1359. COLORREF crBkgnd;
  1360. } DESKBANDINFO;
  1361. cpp_quote( "#include <poppack.h>" )
  1362. cpp_quote( "#define DBIMF_NORMAL 0x0000" )
  1363. cpp_quote( "#define DBIMF_FIXED 0x0001" )
  1364. cpp_quote( "#define DBIMF_FIXEDBMP 0x0004 // a fixed background bitmap (if supported)" )
  1365. cpp_quote( "#define DBIMF_VARIABLEHEIGHT 0x0008" )
  1366. cpp_quote( "#define DBIMF_UNDELETEABLE 0x0010" )
  1367. cpp_quote( "#define DBIMF_DEBOSSED 0x0020" )
  1368. cpp_quote( "#define DBIMF_BKCOLOR 0x0040" )
  1369. cpp_quote( "#define DBIMF_USECHEVRON 0x0080" )
  1370. cpp_quote( "#define DBIMF_BREAK 0x0100" )
  1371. cpp_quote( "#define DBIMF_ADDTOFRONT 0x0200" )
  1372. cpp_quote( "#define DBIMF_TOPALIGN 0x0400" )
  1373. cpp_quote( "#if (NTDDI_VERSION >= NTDDI_LONGHORN)" )
  1374. cpp_quote( "#define DBIMF_NOGRIPPER 0x0800" )
  1375. cpp_quote( "#define DBIMF_ALWAYSGRIPPER 0x1000" )
  1376. cpp_quote( "#define DBIMF_NOMARGINS 0x2000" )
  1377. cpp_quote( "#endif // NTDDI_LONGHORN" )
  1378. cpp_quote( "#define DBIF_VIEWMODE_NORMAL 0x0000" )
  1379. cpp_quote( "#define DBIF_VIEWMODE_VERTICAL 0x0001" )
  1380. cpp_quote( "#define DBIF_VIEWMODE_FLOATING 0x0002" )
  1381. cpp_quote( "#define DBIF_VIEWMODE_TRANSPARENT 0x0004" )
  1382. enum tagDESKBANDCID
  1383. {
  1384. DBID_BANDINFOCHANGED = 0,
  1385. DBID_SHOWONLY = 1,
  1386. DBID_MAXIMIZEBAND = 2,
  1387. DBID_PUSHCHEVRON = 3,
  1388. DBID_DELAYINIT = 4,
  1389. DBID_FINISHINIT = 5,
  1390. DBID_SETWINDOWTHEME = 6,
  1391. DBID_PERMITAUTOHIDE = 7,
  1392. };
  1393. cpp_quote( "#define DBPC_SELECTFIRST (DWORD)-1" )
  1394. cpp_quote( "#define DBPC_SELECTLAST (DWORD)-2" )
  1395. cpp_quote( "#define CGID_DeskBand IID_IDeskBand" )
  1396. [
  1397. uuid( EB0FE172-1A3A-11D0-89B3-00A0C90A90AC ),
  1398. object,
  1399. ]
  1400. interface IDeskBand : IDockingWindow
  1401. {
  1402. HRESULT GetBandInfo(
  1403. [ in ] DWORD dwBandID,
  1404. [ in ] DWORD dwViewMode,
  1405. [ in, out ] DESKBANDINFO* pdbi );
  1406. }
  1407. cpp_quote( "#if (NTDDI_VERSION >= NTDDI_LONGHORN)" )
  1408. /*****************************************************************************
  1409. * IDeskBandInfo interface
  1410. */
  1411. [
  1412. uuid( 77E425FC-CBF9-4307-BA6A-BB5727745661 ),
  1413. object,
  1414. ]
  1415. interface IDeskBandInfo : IUnknown
  1416. {
  1417. HRESULT GetDefaultBandWidth(
  1418. [ in ] DWORD dwBandID,
  1419. [ in ] DWORD dwViewMode,
  1420. [ out ] int *pnWidth );
  1421. }
  1422. /*****************************************************************************
  1423. * IDeskBand2 interface
  1424. */
  1425. [
  1426. uuid( 79D16DE4-ABEE-4021-8D9D-9169B261D657 ),
  1427. object,
  1428. ]
  1429. interface IDeskBand2 : IDeskBand
  1430. {
  1431. HRESULT CanRenderComposited( [ out ] BOOL *pfCanRenderComposited );
  1432. HRESULT SetCompositionState( [ in ] BOOL fCompositionEnabled );
  1433. HRESULT GetCompositionState( [ out ] BOOL *pfCompositionEnabled );
  1434. }
  1435. cpp_quote( "#endif // NTDDI_LONGHORN" )
  1436. cpp_quote( "#if (_WIN32_IE >= _WIN32_IE_IE60)" )
  1437. [
  1438. uuid( EB0FE173-1A3A-11D0-89B3-00A0C90A90AC ),
  1439. object,
  1440. pointer_default( unique ),
  1441. local
  1442. ]
  1443. interface IDeskBar : IOleWindow
  1444. {
  1445. HRESULT SetClient( [ in ] IUnknown* punkClient );
  1446. HRESULT GetClient( [ out ] IUnknown** ppunkClient );
  1447. HRESULT OnPosRectChangeDB( [ in ] RECT *prc );
  1448. }
  1449. /*****************************************************************************
  1450. * IMenuPopup interface
  1451. */
  1452. [
  1453. uuid( D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4 ),
  1454. object,
  1455. pointer_default( unique ),
  1456. local
  1457. ]
  1458. interface IMenuPopup : IDeskBar
  1459. {
  1460. enum tagMENUPOPUPSELECT
  1461. {
  1462. MPOS_EXECUTE = 0,
  1463. MPOS_FULLCANCEL,
  1464. MPOS_CANCELLEVEL,
  1465. MPOS_SELECTLEFT,
  1466. MPOS_SELECTRIGHT,
  1467. MPOS_CHILDTRACKING
  1468. };
  1469. enum tagMENUPOPUPPOPUPFLAGS
  1470. {
  1471. MPPF_SETFOCUS = 0x00000001,
  1472. MPPF_INITIALSELECT = 0x00000002,
  1473. MPPF_NOANIMATE = 0x00000004,
  1474. MPPF_KEYBOARD = 0x00000010,
  1475. MPPF_REPOSITION = 0x00000020,
  1476. MPPF_FORCEZORDER = 0x00000040,
  1477. MPPF_FINALSELECT = 0x00000080,
  1478. MPPF_TOP = 0x20000000,
  1479. MPPF_LEFT = 0x40000000,
  1480. MPPF_RIGHT = 0x60000000,
  1481. MPPF_BOTTOM = 0x80000000,
  1482. MPPF_POS_MASK = 0xE0000000,
  1483. MPPF_ALIGN_LEFT = 0x02000000,
  1484. MPPF_ALIGN_RIGHT = 0x04000000
  1485. };
  1486. typedef int MP_POPUPFLAGS;
  1487. HRESULT Popup(
  1488. [ in ] POINTL *ppt,
  1489. [ in ] RECTL *prcExclude,
  1490. [ in ] MP_POPUPFLAGS dwFlags );
  1491. HRESULT OnSelect( [ in ] DWORD dwSelectType );
  1492. HRESULT SetSubMenu(
  1493. [ in ] IMenuPopup* pmp,
  1494. [ in ] BOOL fSet );
  1495. }
  1496. cpp_quote( "#endif /* _WIN32_IE_IE60 */" )
  1497. cpp_quote( "#if (_WIN32_IE >= _WIN32_IE_IE40)" )
  1498. /*****************************************************************************
  1499. * IBandSite interface
  1500. */
  1501. cpp_quote( "#include <pshpack8.h>" )
  1502. typedef struct tagBANDSITEINFO
  1503. {
  1504. DWORD dwMask;
  1505. DWORD dwState;
  1506. DWORD dwStyle;
  1507. } BANDSITEINFO;
  1508. cpp_quote( "#include <poppack.h>" )
  1509. enum tagBANDSITECID
  1510. {
  1511. BSID_BANDADDED,
  1512. BSID_BANDREMOVED,
  1513. };
  1514. cpp_quote( "#define BSIM_STATE 0x00000001" )
  1515. cpp_quote( "#define BSIM_STYLE 0x00000002" )
  1516. cpp_quote( "#define BSSF_VISIBLE 0x00000001" )
  1517. cpp_quote( "#define BSSF_NOTITLE 0x00000002" )
  1518. cpp_quote( "#define BSSF_UNDELETEABLE 0x00001000" )
  1519. cpp_quote( "#define BSIS_AUTOGRIPPER 0x00000000" )
  1520. cpp_quote( "#define BSIS_NOGRIPPER 0x00000001" )
  1521. cpp_quote( "#define BSIS_ALWAYSGRIPPER 0x00000002" )
  1522. cpp_quote( "#define BSIS_LEFTALIGN 0x00000004" )
  1523. cpp_quote( "#define BSIS_SINGLECLICK 0x00000008" )
  1524. cpp_quote( "#define BSIS_NOCONTEXTMENU 0x00000010" )
  1525. cpp_quote( "#define BSIS_NODROPTARGET 0x00000020" )
  1526. cpp_quote( "#define BSIS_NOCAPTION 0x00000040" )
  1527. cpp_quote( "#define BSIS_PREFERNOLINEBREAK 0x00000080" )
  1528. cpp_quote( "#define BSIS_LOCKED 0x00000100" )
  1529. cpp_quote( "#if (_WIN32_IE >= _WIN32_IE_IE70)" )
  1530. cpp_quote( "#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200" )
  1531. cpp_quote( "#endif /* _WIN32_IE_IE70 */" )
  1532. cpp_quote( "#define SID_SBandSite IID_IBandSite" )
  1533. cpp_quote( "#define CGID_BandSite IID_IBandSite" )
  1534. [
  1535. object,
  1536. uuid( 4CF504B0-DE96-11D0-8B3F-00A0C911E8E5 )
  1537. ]
  1538. interface IBandSite : IUnknown
  1539. {
  1540. HRESULT AddBand( [ in ] IUnknown* punk );
  1541. HRESULT EnumBands(
  1542. [ in ] UINT uBand,
  1543. [ out ] DWORD* pdwBandID );
  1544. HRESULT QueryBand(
  1545. [ in ] DWORD dwBandID,
  1546. [ out ] IDeskBand** ppstb,
  1547. [ out ] DWORD* pdwState,
  1548. [ out, string, size_is( cchName ) ] LPWSTR pszName,
  1549. [ in ] int cchName );
  1550. HRESULT SetBandState(
  1551. [ in ] DWORD dwBandID,
  1552. [ in ] DWORD dwMask,
  1553. [ in ] DWORD dwState );
  1554. HRESULT RemoveBand( [ in ] DWORD dwBandID );
  1555. HRESULT GetBandObject(
  1556. [ in ] DWORD dwBandID,
  1557. [ in ] REFIID riid,
  1558. [ out, iid_is( riid ) ] void **ppv );
  1559. HRESULT SetBandSiteInfo( [ in ] const BANDSITEINFO *pbsinfo );
  1560. HRESULT GetBandSiteInfo( [ in, out ] BANDSITEINFO *pbsinfo );
  1561. }
  1562. cpp_quote( "#endif /* _WIN32_IE_IE40 */" )
  1563. /*****************************************************************************
  1564. * IMenuBand interface
  1565. */
  1566. [
  1567. uuid( 568804CD-CBD7-11d0-9816-00C04FD91972 ),
  1568. object,
  1569. pointer_default( unique ),
  1570. local
  1571. ]
  1572. interface IMenuBand : IUnknown
  1573. {
  1574. enum tagMENUBANDHANDLERCID
  1575. {
  1576. MBHANDCID_PIDLSELECT = 0,
  1577. };
  1578. HRESULT IsMenuMessage( [ in ] MSG* pmsg );
  1579. HRESULT TranslateMenuMessage(
  1580. [ in, out ] MSG* pmsg,
  1581. [ out ] LRESULT* plRet );
  1582. }
  1583. /*****************************************************************************
  1584. * IProfferService interface
  1585. */
  1586. [
  1587. uuid( cb728b20-f786-11ce-92ad-00aa00a74cd0 ),
  1588. object,
  1589. pointer_default( unique ),
  1590. local
  1591. ]
  1592. interface IProfferService : IUnknown
  1593. {
  1594. HRESULT ProfferService(
  1595. [ in ] REFGUID rguidService,
  1596. [ in ] IServiceProvider *psp,
  1597. [ out ] DWORD *pdwCookie );
  1598. HRESULT RevokeService(
  1599. [ in ] DWORD dwCookie );
  1600. }
  1601. /*****************************************************************************
  1602. * IShellMenuCallback interface
  1603. */
  1604. cpp_quote( "#include <pshpack8.h>" )
  1605. typedef struct tagSMDATA
  1606. {
  1607. DWORD dwMask;
  1608. DWORD dwFlags;
  1609. HMENU hmenu;
  1610. HWND hwnd;
  1611. UINT uId;
  1612. UINT uIdParent;
  1613. UINT uIdAncestor;
  1614. IUnknown *punk;
  1615. LPITEMIDLIST pidlFolder;
  1616. LPITEMIDLIST pidlItem;
  1617. IShellFolder *psf;
  1618. void *pvUserData;
  1619. } SMDATA, *LPSMDATA;
  1620. cpp_quote( "#define SMDM_SHELLFOLDER 0x00000001" )
  1621. cpp_quote( "#define SMDM_HMENU 0x00000002" )
  1622. cpp_quote( "#define SMDM_TOOLBAR 0x00000004" )
  1623. typedef struct tagSMINFO
  1624. {
  1625. DWORD dwMask;
  1626. DWORD dwType;
  1627. DWORD dwFlags;
  1628. int iIcon;
  1629. } SMINFO, *PSMINFO;
  1630. typedef struct tagSHCSCHANGENOTIFYSTRUCT
  1631. {
  1632. LONG lEvent;
  1633. LPCITEMIDLIST pidl1;
  1634. LPCITEMIDLIST pidl2;
  1635. } SMCSHCHANGENOTIFYSTRUCT, *PSMCSHCHANGENOTIFYSTRUCT;
  1636. cpp_quote( "#include <poppack.h>" )
  1637. enum
  1638. {
  1639. SMIM_TYPE = 0x00000001,
  1640. SMIM_FLAGS = 0x00000002,
  1641. SMIM_ICON = 0x00000004
  1642. };
  1643. enum
  1644. {
  1645. SMIT_SEPARATOR = 0x00000001,
  1646. SMIT_STRING = 0x00000002
  1647. };
  1648. enum
  1649. {
  1650. SMIF_ICON = 0x00000001,
  1651. SMIF_ACCELERATOR = 0x00000002,
  1652. SMIF_DROPTARGET = 0x00000004,
  1653. SMIF_SUBMENU = 0x00000008,
  1654. SMIF_CHECKED = 0x00000020,
  1655. SMIF_DROPCASCADE = 0x00000040,
  1656. SMIF_HIDDEN = 0x00000080,
  1657. SMIF_DISABLED = 0x00000100,
  1658. SMIF_TRACKPOPUP = 0x00000200,
  1659. SMIF_DEMOTED = 0x00000400,
  1660. SMIF_ALTSTATE = 0x00000800,
  1661. SMIF_DRAGNDROP = 0x00001000,
  1662. SMIF_NEW = 0x00002000,
  1663. };
  1664. cpp_quote( "#define SMC_INITMENU 0x00000001" )
  1665. cpp_quote( "#define SMC_CREATE 0x00000002" )
  1666. cpp_quote( "#define SMC_EXITMENU 0x00000003" )
  1667. cpp_quote( "#define SMC_GETINFO 0x00000005" )
  1668. cpp_quote( "#define SMC_GETSFINFO 0x00000006" )
  1669. cpp_quote( "#define SMC_GETOBJECT 0x00000007" )
  1670. cpp_quote( "#define SMC_GETSFOBJECT 0x00000008" )
  1671. cpp_quote( "#define SMC_SFEXEC 0x00000009" )
  1672. cpp_quote( "#define SMC_SFSELECTITEM 0x0000000A" )
  1673. cpp_quote( "#define SMC_REFRESH 0x00000010" )
  1674. cpp_quote( "#define SMC_DEMOTE 0x00000011" )
  1675. cpp_quote( "#define SMC_PROMOTE 0x00000012" )
  1676. cpp_quote( "#define SMC_DEFAULTICON 0x00000016" )
  1677. cpp_quote( "#define SMC_NEWITEM 0x00000017" )
  1678. cpp_quote( "#define SMC_CHEVRONEXPAND 0x00000019" )
  1679. cpp_quote( "#define SMC_DISPLAYCHEVRONTIP 0x0000002A" )
  1680. cpp_quote( "#define SMC_SETSFOBJECT 0x0000002D" )
  1681. cpp_quote( "#define SMC_SHCHANGENOTIFY 0x0000002E" )
  1682. cpp_quote( "#define SMC_CHEVRONGETTIP 0x0000002F" )
  1683. cpp_quote( "#define SMC_SFDDRESTRICTED 0x00000030" )
  1684. [
  1685. uuid( 4CA300A1-9B8D-11d1-8B22-00C04FD918D0 ),
  1686. object,
  1687. pointer_default( unique ),
  1688. local
  1689. ]
  1690. interface IShellMenuCallback : IUnknown
  1691. {
  1692. HRESULT CallbackSM(
  1693. [ in, out ] LPSMDATA psmd,
  1694. [ in ] UINT uMsg,
  1695. [ in ] WPARAM wParam,
  1696. [ in ] LPARAM lParam );
  1697. }
  1698. /*****************************************************************************
  1699. * IShellMenu interface
  1700. */
  1701. cpp_quote( "#define SMINIT_DEFAULT 0x00000000" )
  1702. cpp_quote( "#define SMINIT_RESTRICT_DRAGDROP 0x00000002" )
  1703. cpp_quote( "#define SMINIT_TOPLEVEL 0x00000004" )
  1704. cpp_quote( "#define SMINIT_CACHED 0x00000010" )
  1705. cpp_quote( "#define SMINIT_VERTICAL 0x10000000" )
  1706. cpp_quote( "#define SMINIT_HORIZONTAL 0x20000000" )
  1707. cpp_quote( "" )
  1708. cpp_quote( "#define ANCESTORDEFAULT (UINT)-1" )
  1709. cpp_quote( "" )
  1710. cpp_quote( "#define SMSET_TOP 0x10000000" )
  1711. cpp_quote( "#define SMSET_BOTTOM 0x20000000" )
  1712. cpp_quote( "#define SMSET_DONTOWN 0x00000001" )
  1713. cpp_quote( "" )
  1714. cpp_quote( "#define SMINV_REFRESH 0x00000001" )
  1715. cpp_quote( "#define SMINV_ID 0x00000008" )
  1716. [
  1717. uuid( EE1F7637-E138-11d1-8379-00C04FD918D0 ),
  1718. object,
  1719. pointer_default( unique ),
  1720. local
  1721. ]
  1722. interface IShellMenu : IUnknown
  1723. {
  1724. HRESULT Initialize(
  1725. [ in ] IShellMenuCallback *psmc,
  1726. [ in ] UINT uId,
  1727. [ in ] UINT uIdAncestor,
  1728. [ in ] DWORD dwFlags );
  1729. HRESULT GetMenuInfo(
  1730. [ out ] IShellMenuCallback **ppsmc,
  1731. [ out ] UINT *puId,
  1732. [ out ] UINT *puIdAncestor,
  1733. [ out ] DWORD *pdwFlags );
  1734. HRESULT SetShellFolder(
  1735. [ in ] IShellFolder *psf,
  1736. [ in ] LPCITEMIDLIST pidlFolder,
  1737. [ in ] HKEY hKey,
  1738. [ in ] DWORD dwFlags );
  1739. HRESULT GetShellFolder(
  1740. [ out ] DWORD *pdwFlags,
  1741. [ out ] LPITEMIDLIST *ppidl,
  1742. [ in ] REFIID riid,
  1743. [ out ] void **ppv );
  1744. HRESULT SetMenu(
  1745. [ in ] HMENU hmenu,
  1746. [ in ] HWND hwnd,
  1747. [ in ] DWORD dwFlags );
  1748. HRESULT GetMenu(
  1749. [ out ] HMENU *phmenu,
  1750. [ out ] HWND *phwnd,
  1751. [ out ] DWORD *pdwFlags );
  1752. HRESULT InvalidateItem(
  1753. [ in ] LPSMDATA psmd,
  1754. [ in ] DWORD dwFlags );
  1755. HRESULT GetState(
  1756. [ out ] LPSMDATA psmd );
  1757. HRESULT SetMenuToolbar(
  1758. [ in ] IUnknown *punk,
  1759. [ in ] DWORD dwFlags );
  1760. }
  1761. typedef struct _WINDOWDATA
  1762. {
  1763. DWORD dwWindowID;
  1764. UINT uiCP;
  1765. LPITEMIDLIST pidl;
  1766. [string] LPWSTR lpszUrl;
  1767. [string] LPWSTR lpszUrlLocation;
  1768. [string] LPWSTR lpszTitle;
  1769. } WINDOWDATA;
  1770. typedef WINDOWDATA *LPWINDOWDATA;
  1771. typedef const WINDOWDATA *LPCWINDOWDATA;
  1772. /*****************************************************************************
  1773. * ITravelEntry interface
  1774. */
  1775. [
  1776. uuid( F46EDB3B-BC2F-11d0-9412-00AA00A3EBD3 ),
  1777. object,
  1778. pointer_default( unique ),
  1779. local
  1780. ]
  1781. interface ITravelEntry : IUnknown
  1782. {
  1783. HRESULT Invoke(
  1784. [ in ] IUnknown *punk );
  1785. HRESULT Update(
  1786. [ in ] IUnknown *punk,
  1787. BOOL fIsLocalAnchor );
  1788. HRESULT GetPidl(
  1789. [ in ] LPITEMIDLIST *ppidl );
  1790. };
  1791. /*****************************************************************************
  1792. * ITravelLogClient interface
  1793. */
  1794. [
  1795. uuid( 241c033e-e659-43da-aa4d-4086dbc4758d ),
  1796. object,
  1797. pointer_default( unique ),
  1798. local
  1799. ]
  1800. interface ITravelLogClient : IUnknown
  1801. {
  1802. HRESULT FindWindowByIndex(
  1803. [ in ] DWORD dwID,
  1804. [ out ] IUnknown **ppunk );
  1805. HRESULT GetWindowData(
  1806. [ out ] LPWINDOWDATA pWinData );
  1807. HRESULT LoadHistoryPosition(
  1808. [ in ] LPWSTR pszUrlLocation,
  1809. [ in ] DWORD dwPosition );
  1810. };
  1811. /*****************************************************************************
  1812. * ITravelLog interface
  1813. */
  1814. [
  1815. uuid( 02BA3B52-0547-11D1-B833-00C04FC9B31F ),
  1816. object,
  1817. pointer_default( unique ),
  1818. local
  1819. ]
  1820. interface ITravelLog : IUnknown
  1821. {
  1822. enum tagTLENUMF
  1823. {
  1824. TLEF_RELATIVE_INCLUDE_CURRENT = 0x00000001,
  1825. TLEF_RELATIVE_BACK = 0x00000010,
  1826. TLEF_RELATIVE_FORE = 0x00000020,
  1827. TLEF_INCLUDE_UNINVOKEABLE = 0x00000040,
  1828. TLEF_ABSOLUTE = 0x00000031,
  1829. };
  1830. typedef DWORD TLENUMF;
  1831. HRESULT AddEntry(
  1832. [ in ] IUnknown *punk,
  1833. BOOL fIsLocalAnchor );
  1834. HRESULT UpdateEntry(
  1835. [ in ] IUnknown *punk,
  1836. BOOL fIsLocalAnchor );
  1837. HRESULT UpdateExternal(
  1838. [ in ] IUnknown *punk,
  1839. [ in ] IUnknown *punkHLBrowseContext );
  1840. HRESULT Travel(
  1841. [ in ] IUnknown *punk,
  1842. int iOffset );
  1843. HRESULT GetTravelEntry(
  1844. [ in ] IUnknown *punk,
  1845. int iOffset,
  1846. [ out ] ITravelEntry **ppte );
  1847. HRESULT FindTravelEntry(
  1848. [ in ] IUnknown *punk,
  1849. [ in ] LPCITEMIDLIST pidl,
  1850. [ out ] ITravelEntry **ppte );
  1851. HRESULT GetToolTipText(
  1852. [ in ] IUnknown *punk,
  1853. int iOffset,
  1854. int idsTemplate,
  1855. [ out ] LPWSTR pwzText,
  1856. DWORD cchText );
  1857. HRESULT InsertMenuEntries(
  1858. [ in ] IUnknown *punk,
  1859. [ in, out ] HMENU hmenu,
  1860. int nPos,
  1861. int idFirst,
  1862. int idLast,
  1863. DWORD dwFlags );
  1864. HRESULT Clone(
  1865. [ out ] ITravelLog **pptl );
  1866. DWORD CountEntries(
  1867. [ in ] IUnknown *punk );
  1868. HRESULT Revert();
  1869. };
  1870. /*****************************************************************************
  1871. * IShellService interface
  1872. */
  1873. [
  1874. object,
  1875. uuid( 5836FB00-8187-11CF-A12B-00AA004AE837 ),
  1876. pointer_default( unique ),
  1877. local
  1878. ]
  1879. interface IShellService : IUnknown
  1880. {
  1881. HRESULT SetOwner(
  1882. [ in ] IUnknown *owner );
  1883. };
  1884. /*****************************************************************************
  1885. * IShellBrowser interface
  1886. */
  1887. [
  1888. object,
  1889. uuid( 02BA3B52-0547-11D1-B833-00C04FC9B31F ),
  1890. pointer_default( unique ),
  1891. local
  1892. ]
  1893. interface IBrowserService : IUnknown
  1894. {
  1895. typedef enum tagBNSTATE
  1896. {
  1897. BNS_NORMAL = 0,
  1898. BNS_BEGIN_NAVIGATE = 1,
  1899. BNS_NAVIGATE = 2
  1900. } BNSTATE;
  1901. cpp_quote( "#include <pshpack8.h>" )
  1902. typedef struct basebrowserdataxp
  1903. {
  1904. HWND _hwnd;
  1905. ITravelLog *_ptl;
  1906. IUnknown *_phlf;
  1907. IUnknown *_pautoWB2;
  1908. IUnknown *_pautoEDS;
  1909. IShellService *_pautoSS;
  1910. int _eSecureLockIcon;
  1911. DWORD _fCreatingViewWindow;
  1912. UINT _uActivateState;
  1913. LPITEMIDLIST _pidlViewState;
  1914. IOleCommandTarget *_pctView;
  1915. LPITEMIDLIST _pidlCur;
  1916. IShellView *_psv;
  1917. IShellFolder *_psf;
  1918. HWND _hwndView;
  1919. LPWSTR _pszTitleCur;
  1920. LPITEMIDLIST _pidlPending;
  1921. IShellView *_psvPending;
  1922. IShellFolder *_psfPending;
  1923. HWND _hwndViewPending;
  1924. LPWSTR _pszTitlePending;
  1925. BOOL _fIsViewMSHTML;
  1926. BOOL _fPrivacyImpacted;
  1927. CLSID _clsidView;
  1928. CLSID _clsidViewPending;
  1929. HWND _hwndFrame;
  1930. } BASEBROWSERDATAXP;
  1931. typedef struct basebrowserdataxp *LPBASEBROWSERDATAXP;
  1932. typedef struct basebrowserdatalh
  1933. {
  1934. HWND _hwnd;
  1935. ITravelLog *_ptl;
  1936. IUnknown *_phlf;
  1937. IUnknown *_pautoWB2;
  1938. IUnknown *_pautoEDS;
  1939. IShellService *_pautoSS;
  1940. int _eSecureLockIcon;
  1941. DWORD _fCreatingViewWindow;
  1942. UINT _uActivateState;
  1943. LPITEMIDLIST _pidlViewState;
  1944. IOleCommandTarget *_pctView;
  1945. LPITEMIDLIST _pidlCur;
  1946. IShellView *_psv;
  1947. IShellFolder *_psf;
  1948. HWND _hwndView;
  1949. LPWSTR _pszTitleCur;
  1950. LPITEMIDLIST _pidlPending;
  1951. IShellView *_psvPending;
  1952. IShellFolder *_psfPending;
  1953. HWND _hwndViewPending;
  1954. LPWSTR _pszTitlePending;
  1955. BOOL _fIsViewMSHTML;
  1956. BOOL _fPrivacyImpacted;
  1957. CLSID _clsidView;
  1958. CLSID _clsidViewPending;
  1959. HWND _hwndFrame;
  1960. LONG _lPhishingFilterStatus;
  1961. } BASEBROWSERDATALH;
  1962. cpp_quote( "#include <poppack.h>" )
  1963. typedef struct basebrowserdatalh *LPBASEBROWSERDATALH;
  1964. typedef BASEBROWSERDATAXP BASEBROWSERDATA;
  1965. typedef const BASEBROWSERDATA *LPCBASEBROWSERDATA;
  1966. typedef BASEBROWSERDATA *LPBASEBROWSERDATA;
  1967. cpp_quote( "#if 0" )
  1968. typedef HANDLE HMONITOR;
  1969. cpp_quote( "#endif /* 0 */" )
  1970. typedef struct SToolbarItem
  1971. {
  1972. IDockingWindow *ptbar;
  1973. BORDERWIDTHS rcBorderTool;
  1974. LPWSTR pwszItem;
  1975. BOOL fShow;
  1976. HMONITOR hMon;
  1977. } TOOLBARITEM;
  1978. typedef struct SToolbarItem *LPTOOLBARITEM;
  1979. HRESULT GetParentSite(
  1980. [ out ] IOleInPlaceSite **ppipsite );
  1981. HRESULT SetTitle(
  1982. [ in ] IShellView *psv,
  1983. [ in ] LPCWSTR pszName );
  1984. HRESULT GetTitle(
  1985. [ in ] IShellView *psv,
  1986. [ out ] LPWSTR pszName,
  1987. DWORD cchName );
  1988. HRESULT GetOleObject(
  1989. [ out ] IOleObject **ppobjv );
  1990. HRESULT GetTravelLog(
  1991. [ out ] ITravelLog **pptl );
  1992. HRESULT ShowControlWindow(
  1993. UINT id,
  1994. BOOL fShow );
  1995. HRESULT IsControlWindowShown(
  1996. UINT id,
  1997. [ out ] BOOL *pfShown );
  1998. HRESULT IEGetDisplayName(
  1999. [ in ] LPCITEMIDLIST pidl,
  2000. [ out ] LPWSTR pwszName,
  2001. UINT uFlags );
  2002. HRESULT IEParseDisplayName(
  2003. UINT uiCP,
  2004. [ in ] LPCWSTR pwszPath,
  2005. [ out ] LPCITEMIDLIST *ppidlOut );
  2006. HRESULT DisplayParseError(
  2007. HRESULT hres,
  2008. [ in ] LPCWSTR pwszPath );
  2009. HRESULT NavigateToPidl(
  2010. [ in ] LPCITEMIDLIST pidl,
  2011. DWORD grfHLNF );
  2012. HRESULT SetNavigateState(
  2013. BNSTATE bnstate );
  2014. HRESULT GetNavigateState(
  2015. [ out ] BNSTATE *pbnstate );
  2016. HRESULT NotifyRedirect(
  2017. [ in ] IShellView *psv,
  2018. [ in ] LPCITEMIDLIST pidl,
  2019. [ out ] BOOL *pfDidBrowse );
  2020. HRESULT UpdateWindowList();
  2021. HRESULT UpdateBackForwardState();
  2022. HRESULT SetFlags(
  2023. DWORD dwFlags,
  2024. DWORD dwFlagMask );
  2025. HRESULT GetFlags(
  2026. [ out ] DWORD *pdwFlags );
  2027. HRESULT CanNavigateNow();
  2028. HRESULT GetPidl(
  2029. [ out ] LPCITEMIDLIST *ppidl );
  2030. HRESULT SetReferrer(
  2031. [ in ] LPCITEMIDLIST pidl );
  2032. DWORD GetBrowserIndex();
  2033. HRESULT GetBrowserByIndex(
  2034. DWORD dwID,
  2035. [ out ] IUnknown **ppunk );
  2036. HRESULT GetHistoryObject(
  2037. [ out ] IOleObject **ppole,
  2038. [ out ] IStream **pstm,
  2039. [ out ] IBindCtx **ppbc );
  2040. HRESULT SetHistoryObject(
  2041. [ in ] IOleObject *pole,
  2042. BOOL fIsLocalAnchor );
  2043. HRESULT CacheOLEServer(
  2044. [ in ] IOleObject *pole );
  2045. HRESULT GetSetCodePage(
  2046. [ in ] VARIANT *pvarIn,
  2047. [ out ] VARIANT *pvarOut );
  2048. HRESULT OnHttpEquiv(
  2049. [ in ] IShellView *psv,
  2050. BOOL fDone,
  2051. [ in ] VARIANT *pvarargIn,
  2052. [ out ] VARIANT *pvarargOut );
  2053. HRESULT GetPalette(
  2054. [ out ] HPALETTE *hpal );
  2055. HRESULT RegisterWindow(
  2056. BOOL fForceRegister,
  2057. int swc );
  2058. }
  2059. /*****************************************************************************
  2060. * IShellBrowser2 interface
  2061. */
  2062. [
  2063. uuid( 68BD21CC-438B-11D2-A560-00A0C92DBFE8 ),
  2064. object,
  2065. pointer_default( unique ),
  2066. local
  2067. ]
  2068. interface IBrowserService2 : IBrowserService
  2069. {
  2070. typedef struct tagFolderSetData
  2071. {
  2072. FOLDERSETTINGS _fs;
  2073. SHELLVIEWID _vidRestore;
  2074. DWORD _dwViewPriority;
  2075. } FOLDERSETDATA;
  2076. typedef struct tagFolderSetData *LPFOLDERSETDATA;
  2077. LRESULT WndProcBS(
  2078. [ in ] HWND hwnd,
  2079. UINT uMsg,
  2080. WPARAM wParam,
  2081. LPARAM lParam );
  2082. HRESULT SetAsDefFolderSettings();
  2083. HRESULT GetViewRect(
  2084. [ out ] RECT *prc );
  2085. HRESULT OnSize(
  2086. WPARAM wParam );
  2087. HRESULT OnCreate(
  2088. [ in ] struct tagCREATESTRUCTW *pcs );
  2089. LRESULT OnCommand(
  2090. WPARAM wParam,
  2091. LPARAM lParam );
  2092. HRESULT OnDestroy();
  2093. LRESULT OnNotify(
  2094. [ in ] struct tagNMHDR *pnm );
  2095. HRESULT OnSetFocus();
  2096. HRESULT OnFrameWindowActivateBS(
  2097. BOOL fActive );
  2098. HRESULT ReleaseShellView();
  2099. HRESULT ActivatePendingView();
  2100. HRESULT CreateViewWindow(
  2101. [ in ] IShellView *psvNew,
  2102. [ in ] IShellView *psvOld,
  2103. [ in ] LPRECT prcView,
  2104. [ out ] HWND *phwnd );
  2105. HRESULT CreateBrowserPropSheetExt(
  2106. [ in ] REFIID riid,
  2107. [ out ] void **ppv );
  2108. HRESULT GetViewWindow(
  2109. [ out ] HWND *phwndView );
  2110. HRESULT GetBaseBrowserData(
  2111. [ out ] LPCBASEBROWSERDATA *pbbd );
  2112. LPBASEBROWSERDATA PutBaseBrowserData();
  2113. HRESULT InitializeTravelLog(
  2114. [ in ] ITravelLog *ptl,
  2115. DWORD dw );
  2116. HRESULT SetTopBrowser();
  2117. HRESULT Offline(
  2118. int iCmd );
  2119. HRESULT AllowViewResize(
  2120. BOOL f );
  2121. HRESULT SetActivateState(
  2122. UINT u );
  2123. HRESULT UpdateSecureLockIcon(
  2124. int eSecureLock );
  2125. HRESULT InitializeDownloadManager();
  2126. HRESULT InitializeTransitionSite();
  2127. HRESULT _Initialize(
  2128. [ in ] HWND hwnd,
  2129. [ in ] IUnknown *pauto );
  2130. HRESULT _CancelPendingNavigationAsync();
  2131. HRESULT _CancelPendingView();
  2132. HRESULT _MaySaveChanges();
  2133. HRESULT _PauseOrResumeView(
  2134. BOOL fPaused );
  2135. HRESULT _DisableModeless();
  2136. HRESULT _NavigateToPidl(
  2137. [ in ] LPCITEMIDLIST pidl,
  2138. DWORD grfHLNF,
  2139. DWORD dwFlags );
  2140. HRESULT _TryShell2Rename(
  2141. [ in ] IShellView *psv,
  2142. [ in ] LPCITEMIDLIST pidlNew );
  2143. HRESULT _SwitchActivationNow();
  2144. HRESULT _ExecChildren(
  2145. [ in ] IUnknown *punkBar,
  2146. BOOL fBroadcast,
  2147. [ in ] const GUID *pguidCmdGroup,
  2148. DWORD nCmdID,
  2149. DWORD nCmdexecopt,
  2150. [ in ] VARIANTARG *pvarargIn,
  2151. [ in, out ] VARIANTARG *pvarargOut );
  2152. HRESULT _SendChildren(
  2153. [ in ] HWND hwndBar,
  2154. BOOL fBroadcast,
  2155. UINT uMsg,
  2156. WPARAM wParam,
  2157. LPARAM lParam );
  2158. HRESULT GetFolderSetData(
  2159. [ out ] struct tagFolderSetData *pfsd );
  2160. HRESULT _OnFocusChange(
  2161. UINT itb );
  2162. HRESULT v_ShowHideChildWindows(
  2163. BOOL fChildOnly );
  2164. UINT _get_itbLastFocus();
  2165. HRESULT _put_itbLastFocus(
  2166. UINT itbLastFocus );
  2167. HRESULT _UIActivateView(
  2168. UINT uState );
  2169. HRESULT _GetViewBorderRect(
  2170. [ out ] RECT *prc );
  2171. HRESULT _UpdateViewRectSize();
  2172. HRESULT _ResizeNextBorder(
  2173. UINT itb );
  2174. HRESULT _ResizeView();
  2175. HRESULT _GetEffectiveClientArea(
  2176. [ out ] LPRECT lprectBorder,
  2177. [ in ] HMONITOR hmon );
  2178. IStream *v_GetViewStream(
  2179. [ in ] LPCITEMIDLIST pidl,
  2180. DWORD grfMode,
  2181. [ in ] LPCWSTR pwszName );
  2182. LRESULT ForwardViewMsg(
  2183. UINT uMsg,
  2184. WPARAM wParam,
  2185. LPARAM lParam );
  2186. HRESULT SetAcceleratorMenu(
  2187. [ in ] HACCEL hacc );
  2188. int _GetToolbarCount();
  2189. LPTOOLBARITEM _GetToolbarItem(
  2190. int itb );
  2191. HRESULT _SaveToolbars(
  2192. [ in ] IStream *pstm );
  2193. HRESULT _LoadToolbars(
  2194. [ in ] IStream *pstm );
  2195. HRESULT _CloseAndReleaseToolbars(
  2196. BOOL fClose );
  2197. HRESULT v_MayGetNextToolbarFocus(
  2198. [ in ] LPMSG lpMsg,
  2199. UINT itbNext,
  2200. int citb,
  2201. [ out ] LPTOOLBARITEM *pptbi,
  2202. [ out ] HWND *phwnd );
  2203. HRESULT _ResizeNextBorderHelper(
  2204. UINT itb,
  2205. BOOL bUseHmonitor );
  2206. UINT _FindTBar(
  2207. [ in ] IUnknown *punkSrc );
  2208. HRESULT _SetFocus(
  2209. [ in ] LPTOOLBARITEM ptbi,
  2210. [ in ] HWND hwnd,
  2211. [ in ] LPMSG lpMsg );
  2212. HRESULT v_MayTranslateAccelerator(
  2213. [ in ] MSG *pmsg );
  2214. HRESULT _GetBorderDWHelper(
  2215. [ in ] IUnknown *punkSrc,
  2216. [ out ] LPRECT lprectBorder,
  2217. BOOL bUseHmonitor );
  2218. HRESULT v_CheckZoneCrossing(
  2219. [ in ] LPCITEMIDLIST pidl );
  2220. }
  2221. /*****************************************************************************
  2222. * IShellBrowser3 interface
  2223. */
  2224. [
  2225. uuid( 27D7CE21-762D-48F3-86F3-40E2FD3749C4 ),
  2226. object,
  2227. pointer_default( unique ),
  2228. local
  2229. ]
  2230. interface IBrowserService3 : IBrowserService2
  2231. {
  2232. HRESULT _PositionViewWindow(
  2233. [ in ] HWND hwnd,
  2234. [ in ] LPRECT prc );
  2235. HRESULT IEParseDisplayNameEx(
  2236. UINT uiCP,
  2237. [ in ] LPCWSTR pwszPath,
  2238. DWORD dwFlags,
  2239. [ out ] LPITEMIDLIST *ppidlOut );
  2240. }
  2241. /*****************************************************************************
  2242. * IShellBrowser4 interface
  2243. */
  2244. [
  2245. uuid( 639f1bff-e135-4096-abd8-e0f504d649a4 ),
  2246. object,
  2247. pointer_default( unique ),
  2248. local
  2249. ]
  2250. interface IBrowserService4 : IBrowserService3
  2251. {
  2252. HRESULT ActivateView(
  2253. BOOL fPendingView );
  2254. HRESULT SaveViewState();
  2255. HRESULT _ResizeAllBorders();
  2256. }
  2257. cpp_quote( "#if (_WIN32_IE >= _WIN32_IE_IE60)" )
  2258. /*****************************************************************************
  2259. * ITrackShellMenu interface
  2260. */
  2261. [
  2262. uuid( 8278F932-2A3E-11d2-838F-00C04FD918D0 ),
  2263. object,
  2264. pointer_default( unique ),
  2265. local
  2266. ]
  2267. interface ITrackShellMenu : IShellMenu
  2268. {
  2269. HRESULT SetObscured(
  2270. [ in ] HWND hwndTB,
  2271. [ in ] IUnknown *punkBand,
  2272. DWORD dwSMSetFlags );
  2273. HRESULT Popup(
  2274. [ in ] HWND hwnd,
  2275. [ in ] POINTL *ppt,
  2276. [ in ] RECTL *prcExclude,
  2277. MP_POPUPFLAGS dwFlags );
  2278. };
  2279. cpp_quote( "#endif /* _WIN32_IE_IE60 */" )