UrlMon.Idl 126 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191
  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992-1999.
  5. //
  6. // File: urlmon.idl
  7. //
  8. // Contents: async moniker interfaces
  9. //
  10. // Classes:
  11. //
  12. // Functions:
  13. //
  14. //
  15. //----------------------------------------------------------------------------
  16. cpp_quote("//=--------------------------------------------------------------------------=")
  17. cpp_quote("// UrlMon.h")
  18. cpp_quote("//=--------------------------------------------------------------------------=")
  19. cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.")
  20. cpp_quote("//")
  21. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
  22. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  23. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  24. cpp_quote("// PARTICULAR PURPOSE.")
  25. cpp_quote("//=--------------------------------------------------------------------------=")
  26. cpp_quote("")
  27. cpp_quote("#pragma comment(lib,\"uuid.lib\")")
  28. cpp_quote("")
  29. cpp_quote("//---------------------------------------------------------------------------=")
  30. cpp_quote("// URL Moniker Interfaces.")
  31. cpp_quote("")
  32. #ifdef UNIX
  33. typedef unsigned long HANDLE_PTR;
  34. #endif /* UNIX */
  35. import "objidl.idl";
  36. import "oleidl.idl";
  37. import "servprov.idl";
  38. import "msxml.idl";
  39. interface IPersistMoniker;
  40. interface IBindProtocol;
  41. interface IBinding;
  42. interface IBindStatusCallback;
  43. interface IBindStatusCallbackMsg;
  44. interface IAuthenticate;
  45. interface IWindowForBindingUI;
  46. interface ICodeInstall;
  47. interface IHttpNegotiate;
  48. interface IHttpNegotiate2;
  49. cpp_quote("// Side-by-Side clsid")
  50. cpp_quote("EXTERN_C const IID CLSID_SBS_StdURLMoniker; ")
  51. cpp_quote("EXTERN_C const IID CLSID_SBS_HttpProtocol; ")
  52. cpp_quote("EXTERN_C const IID CLSID_SBS_FtpProtocol; ")
  53. cpp_quote("EXTERN_C const IID CLSID_SBS_GopherProtocol; ")
  54. cpp_quote("EXTERN_C const IID CLSID_SBS_HttpSProtocol; ")
  55. cpp_quote("EXTERN_C const IID CLSID_SBS_FileProtocol; ")
  56. cpp_quote("EXTERN_C const IID CLSID_SBS_MkProtocol; ")
  57. cpp_quote("EXTERN_C const IID CLSID_SBS_UrlMkBindCtx; ")
  58. cpp_quote("EXTERN_C const IID CLSID_SBS_SoftDistExt; ")
  59. cpp_quote("EXTERN_C const IID CLSID_SBS_StdEncodingFilterFac; ")
  60. cpp_quote("EXTERN_C const IID CLSID_SBS_DeCompMimeFilter; ")
  61. cpp_quote("EXTERN_C const IID CLSID_SBS_CdlProtocol; ")
  62. cpp_quote("EXTERN_C const IID CLSID_SBS_ClassInstallFilter; ")
  63. cpp_quote("EXTERN_C const IID CLSID_SBS_InternetSecurityManager; ")
  64. cpp_quote("EXTERN_C const IID CLSID_SBS_InternetZoneManager; ")
  65. cpp_quote("// END Side-by-Side clsid")
  66. cpp_quote("// These are for backwards compatibility with previous URLMON versions")
  67. cpp_quote("#define BINDF_DONTUSECACHE BINDF_GETNEWESTVERSION")
  68. cpp_quote("#define BINDF_DONTPUTINCACHE BINDF_NOWRITECACHE")
  69. cpp_quote("#define BINDF_NOCOPYDATA BINDF_PULLDATA")
  70. cpp_quote("#define INVALID_P_ROOT_SECURITY_ID ((BYTE*)-1)")
  71. cpp_quote("#define PI_DOCFILECLSIDLOOKUP PI_CLSIDLOOKUP")
  72. cpp_quote("EXTERN_C const IID IID_IAsyncMoniker; ")
  73. cpp_quote("EXTERN_C const IID CLSID_StdURLMoniker; ")
  74. cpp_quote("EXTERN_C const IID CLSID_HttpProtocol; ")
  75. cpp_quote("EXTERN_C const IID CLSID_FtpProtocol; ")
  76. cpp_quote("EXTERN_C const IID CLSID_GopherProtocol; ")
  77. cpp_quote("EXTERN_C const IID CLSID_HttpSProtocol; ")
  78. cpp_quote("EXTERN_C const IID CLSID_FileProtocol; ")
  79. cpp_quote("EXTERN_C const IID CLSID_MkProtocol; ")
  80. cpp_quote("EXTERN_C const IID CLSID_StdURLProtocol; ")
  81. cpp_quote("EXTERN_C const IID CLSID_UrlMkBindCtx; ")
  82. cpp_quote("EXTERN_C const IID CLSID_StdEncodingFilterFac; ")
  83. cpp_quote("EXTERN_C const IID CLSID_DeCompMimeFilter; ")
  84. cpp_quote("EXTERN_C const IID CLSID_CdlProtocol; ")
  85. cpp_quote("EXTERN_C const IID CLSID_ClassInstallFilter; ")
  86. cpp_quote("EXTERN_C const IID IID_IAsyncBindCtx; ")
  87. #pragma midl_echo(" ")
  88. #pragma midl_echo("#define SZ_URLCONTEXT OLESTR(\"URL Context\")")
  89. #pragma midl_echo("#define SZ_ASYNC_CALLEE OLESTR(\"AsyncCallee\")")
  90. #pragma midl_echo("#define MKSYS_URLMONIKER 6 ")
  91. #pragma midl_echo("#define URL_MK_LEGACY 0 ")
  92. #pragma midl_echo("#define URL_MK_UNIFORM 1 ")
  93. #pragma midl_echo("#define URL_MK_NO_CANONICALIZE 2 ")
  94. #pragma midl_echo(" ")
  95. #pragma midl_echo("STDAPI CreateURLMoniker(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER FAR * ppmk); ")
  96. #pragma midl_echo("STDAPI CreateURLMonikerEx(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER FAR * ppmk, DWORD dwFlags); ")
  97. #pragma midl_echo("STDAPI GetClassURL(LPCWSTR szURL, CLSID *pClsID); ")
  98. #pragma midl_echo("STDAPI CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *pBSCb, ")
  99. #pragma midl_echo(" IEnumFORMATETC *pEFetc, IBindCtx **ppBC); ")
  100. #pragma midl_echo("STDAPI CreateAsyncBindCtxEx(IBindCtx *pbc, DWORD dwOptions, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEnum, ")
  101. #pragma midl_echo(" IBindCtx **ppBC, DWORD reserved); ")
  102. #pragma midl_echo("STDAPI MkParseDisplayNameEx(IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten, ")
  103. #pragma midl_echo(" LPMONIKER *ppmk); ")
  104. #pragma midl_echo("STDAPI RegisterBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb, ")
  105. #pragma midl_echo(" IBindStatusCallback** ppBSCBPrev, DWORD dwReserved); ")
  106. #pragma midl_echo("STDAPI RevokeBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb); ")
  107. #pragma midl_echo("STDAPI GetClassFileOrMime(LPBC pBC, LPCWSTR szFilename, LPVOID pBuffer, DWORD cbSize, LPCWSTR szMime, DWORD dwReserved, CLSID *pclsid); ")
  108. #pragma midl_echo("STDAPI IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved); ")
  109. #pragma midl_echo("STDAPI CoGetClassObjectFromURL( REFCLSID rCLASSID,")
  110. #pragma midl_echo(" LPCWSTR szCODE, DWORD dwFileVersionMS, ")
  111. #pragma midl_echo(" DWORD dwFileVersionLS, LPCWSTR szTYPE,")
  112. #pragma midl_echo(" LPBINDCTX pBindCtx, DWORD dwClsContext,")
  113. #pragma midl_echo(" LPVOID pvReserved, REFIID riid, LPVOID * ppv);")
  114. #pragma midl_echo("STDAPI FaultInIEFeature( HWND hWnd,")
  115. #pragma midl_echo(" uCLSSPEC *pClassSpec,")
  116. #pragma midl_echo(" QUERYCONTEXT *pQuery, DWORD dwFlags); ")
  117. #pragma midl_echo("STDAPI GetComponentIDFromCLSSPEC(uCLSSPEC *pClassspec,")
  118. #pragma midl_echo(" LPSTR * ppszComponentID); ")
  119. #pragma midl_echo("// flags for FaultInIEFeature")
  120. #pragma midl_echo("#define FIEF_FLAG_FORCE_JITUI 0x1 // force JIT ui even if")
  121. #pragma midl_echo(" // previoulsy rejected by ")
  122. #pragma midl_echo(" // user in this session or")
  123. #pragma midl_echo(" // marked as Never Ask Again")
  124. #pragma midl_echo("#define FIEF_FLAG_PEEK 0x2 // just peek, don't faultin")
  125. #pragma midl_echo("#define FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK 0x4 // force JIT without checking local version")
  126. #pragma midl_echo(" ")
  127. #pragma midl_echo("//helper apis ")
  128. #pragma midl_echo("STDAPI IsAsyncMoniker(IMoniker* pmk); ")
  129. #pragma midl_echo("STDAPI CreateURLBinding(LPCWSTR lpszUrl, IBindCtx *pbc, IBinding **ppBdg); ")
  130. #pragma midl_echo(" ")
  131. #pragma midl_echo("STDAPI RegisterMediaTypes(UINT ctypes, const LPCSTR* rgszTypes, CLIPFORMAT* rgcfTypes); ")
  132. #pragma midl_echo("STDAPI FindMediaType(LPCSTR rgszTypes, CLIPFORMAT* rgcfTypes); ")
  133. #pragma midl_echo("STDAPI CreateFormatEnumerator( UINT cfmtetc, FORMATETC* rgfmtetc, IEnumFORMATETC** ppenumfmtetc); ")
  134. #pragma midl_echo("STDAPI RegisterFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved); ")
  135. #pragma midl_echo("STDAPI RevokeFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc); ")
  136. #pragma midl_echo("STDAPI RegisterMediaTypeClass(LPBC pBC,UINT ctypes, const LPCSTR* rgszTypes, CLSID *rgclsID, DWORD reserved); ")
  137. #pragma midl_echo("STDAPI FindMediaTypeClass(LPBC pBC, LPCSTR szType, CLSID *pclsID, DWORD reserved); ")
  138. #pragma midl_echo("STDAPI UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved); ")
  139. #pragma midl_echo("STDAPI UrlMkGetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD *pdwBufferLength, DWORD dwReserved); ")
  140. #pragma midl_echo("STDAPI FindMimeFromData( ")
  141. #pragma midl_echo(" LPBC pBC, // bind context - can be NULL ")
  142. #pragma midl_echo(" LPCWSTR pwzUrl, // url - can be null ")
  143. #pragma midl_echo(" LPVOID pBuffer, // buffer with data to sniff - can be null (pwzUrl must be valid) ")
  144. #pragma midl_echo(" DWORD cbSize, // size of buffer ")
  145. #pragma midl_echo(" LPCWSTR pwzMimeProposed, // proposed mime if - can be null ")
  146. #pragma midl_echo(" DWORD dwMimeFlags, // will be defined ")
  147. #pragma midl_echo(" LPWSTR *ppwzMimeOut, // the suggested mime ")
  148. #pragma midl_echo(" DWORD dwReserved); // must be 0 ")
  149. #pragma midl_echo("#define FMFD_DEFAULT 0x00000000 ")
  150. #pragma midl_echo("#define FMFD_URLASFILENAME 0x00000001 ")
  151. #pragma midl_echo("#define FMFD_ENABLEMIMESNIFFING 0x00000002 ")
  152. #pragma midl_echo("#define FMFD_IGNOREMIMETEXTPLAIN 0x00000004 ")
  153. #pragma midl_echo("STDAPI ObtainUserAgentString(DWORD dwOption, LPSTR pszUAOut, DWORD* cbSize); ")
  154. #pragma midl_echo("STDAPI CompareSecurityIds(BYTE* pbSecurityId1, DWORD dwLen1, BYTE* pbSecurityId2, DWORD dwLen2, DWORD dwReserved); ")
  155. #pragma midl_echo("STDAPI CompatFlagsFromClsid(CLSID *pclsid, LPDWORD pdwCompatFlags, LPDWORD pdwMiscStatusFlags); ")
  156. #pragma midl_echo(" ")
  157. #pragma midl_echo("// URLMON-specific defines for UrlMkSetSessionOption() above")
  158. #pragma midl_echo("#define URLMON_OPTION_USERAGENT 0x10000001")
  159. #pragma midl_echo("#define URLMON_OPTION_USERAGENT_REFRESH 0x10000002")
  160. #pragma midl_echo("#define URLMON_OPTION_URL_ENCODING 0x10000004")
  161. #pragma midl_echo("#define URLMON_OPTION_USE_BINDSTRINGCREDS 0x10000008")
  162. #pragma midl_echo(" ")
  163. #pragma midl_echo("#define CF_NULL 0 ")
  164. #pragma midl_echo("#define CFSTR_MIME_NULL NULL ")
  165. // 7 bit MIME Types
  166. #pragma midl_echo("#define CFSTR_MIME_TEXT (TEXT(\"text/plain\")) ")
  167. #pragma midl_echo("#define CFSTR_MIME_RICHTEXT (TEXT(\"text/richtext\")) ")
  168. #pragma midl_echo("#define CFSTR_MIME_X_BITMAP (TEXT(\"image/x-xbitmap\")) ")
  169. #pragma midl_echo("#define CFSTR_MIME_POSTSCRIPT (TEXT(\"application/postscript\")) ")
  170. // 8 bit MIME Types
  171. #pragma midl_echo("#define CFSTR_MIME_AIFF (TEXT(\"audio/aiff\")) ")
  172. #pragma midl_echo("#define CFSTR_MIME_BASICAUDIO (TEXT(\"audio/basic\")) ")
  173. #pragma midl_echo("#define CFSTR_MIME_WAV (TEXT(\"audio/wav\")) ")
  174. #pragma midl_echo("#define CFSTR_MIME_X_WAV (TEXT(\"audio/x-wav\")) ")
  175. #pragma midl_echo("#define CFSTR_MIME_GIF (TEXT(\"image/gif\")) ")
  176. #pragma midl_echo("#define CFSTR_MIME_PJPEG (TEXT(\"image/pjpeg\")) ")
  177. #pragma midl_echo("#define CFSTR_MIME_JPEG (TEXT(\"image/jpeg\")) ")
  178. #pragma midl_echo("#define CFSTR_MIME_TIFF (TEXT(\"image/tiff\")) ")
  179. #pragma midl_echo("#define CFSTR_MIME_X_PNG (TEXT(\"image/x-png\")) ")
  180. #pragma midl_echo("#define CFSTR_MIME_BMP (TEXT(\"image/bmp\")) ")
  181. #pragma midl_echo("#define CFSTR_MIME_X_ART (TEXT(\"image/x-jg\")) ")
  182. #pragma midl_echo("#define CFSTR_MIME_X_EMF (TEXT(\"image/x-emf\")) ")
  183. #pragma midl_echo("#define CFSTR_MIME_X_WMF (TEXT(\"image/x-wmf\")) ")
  184. #pragma midl_echo("#define CFSTR_MIME_AVI (TEXT(\"video/avi\")) ")
  185. #pragma midl_echo("#define CFSTR_MIME_MPEG (TEXT(\"video/mpeg\")) ")
  186. #pragma midl_echo("#define CFSTR_MIME_FRACTALS (TEXT(\"application/fractals\")) ")
  187. #pragma midl_echo("#define CFSTR_MIME_RAWDATA (TEXT(\"application/octet-stream\"))")
  188. #pragma midl_echo("#define CFSTR_MIME_RAWDATASTRM (TEXT(\"application/octet-stream\"))")
  189. #pragma midl_echo("#define CFSTR_MIME_PDF (TEXT(\"application/pdf\")) ")
  190. #pragma midl_echo("#define CFSTR_MIME_HTA (TEXT(\"application/hta\")) ")
  191. #pragma midl_echo("#define CFSTR_MIME_X_AIFF (TEXT(\"audio/x-aiff\")) ")
  192. #pragma midl_echo("#define CFSTR_MIME_X_REALAUDIO (TEXT(\"audio/x-pn-realaudio\")) ")
  193. #pragma midl_echo("#define CFSTR_MIME_XBM (TEXT(\"image/xbm\")) ")
  194. #pragma midl_echo("#define CFSTR_MIME_QUICKTIME (TEXT(\"video/quicktime\")) ")
  195. #pragma midl_echo("#define CFSTR_MIME_X_MSVIDEO (TEXT(\"video/x-msvideo\")) ")
  196. #pragma midl_echo("#define CFSTR_MIME_X_SGI_MOVIE (TEXT(\"video/x-sgi-movie\")) ")
  197. // 7 or 8 bit MIME Types
  198. #pragma midl_echo("#define CFSTR_MIME_HTML (TEXT(\"text/html\")) ")
  199. #pragma midl_echo("#define CFSTR_MIME_XML (TEXT(\"text/xml\")) ")
  200. #pragma midl_echo(" ")
  201. cpp_quote("// MessageId: MK_S_ASYNCHRONOUS ")
  202. cpp_quote("// MessageText: Operation is successful, but will complete asynchronously. ")
  203. cpp_quote("// ")
  204. cpp_quote("#define MK_S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x000401E8L) ")
  205. cpp_quote("#ifndef S_ASYNCHRONOUS ")
  206. cpp_quote("#define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS ")
  207. cpp_quote("#endif ")
  208. cpp_quote(" ")
  209. cpp_quote("#ifndef E_PENDING ")
  210. cpp_quote("#define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL) ")
  211. cpp_quote("#endif ")
  212. cpp_quote(" ")
  213. cpp_quote("// ")
  214. cpp_quote("// ")
  215. cpp_quote("// WinINet and protocol specific errors are mapped to one of the following ")
  216. cpp_quote("// error which are returned in IBSC::OnStopBinding ")
  217. cpp_quote("// ")
  218. cpp_quote("// ")
  219. cpp_quote("// Note: FACILITY C is split into ranges of 1k ")
  220. cpp_quote("// C0000 - C03FF INET_E_ (URLMON's original hresult) ")
  221. cpp_quote("// C0400 - C07FF INET_E_CLIENT_xxx ")
  222. cpp_quote("// C0800 - C0BFF INET_E_SERVER_xxx ")
  223. cpp_quote("// C0C00 - C0FFF INET_E_???? ")
  224. cpp_quote("// C1000 - C13FF INET_E_AGENT_xxx (info delivery agents) ")
  225. //
  226. // url could not be parsed
  227. //
  228. cpp_quote("#define INET_E_INVALID_URL _HRESULT_TYPEDEF_(0x800C0002L) ")
  229. //
  230. // InternetOpen failed - no session was established
  231. //
  232. cpp_quote("#define INET_E_NO_SESSION _HRESULT_TYPEDEF_(0x800C0003L) ")
  233. //
  234. // InternetConnect failed - no
  235. //
  236. cpp_quote("#define INET_E_CANNOT_CONNECT _HRESULT_TYPEDEF_(0x800C0004L) ")
  237. //
  238. // the server or proxy was not found
  239. //
  240. cpp_quote("#define INET_E_RESOURCE_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0005L) ")
  241. //
  242. // the actual object was not found - e.g. http: 404
  243. //
  244. cpp_quote("#define INET_E_OBJECT_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0006L) ")
  245. //
  246. // connection was established but data can not be retrieved
  247. // no filename from cache invalid etc.
  248. //
  249. cpp_quote("#define INET_E_DATA_NOT_AVAILABLE _HRESULT_TYPEDEF_(0x800C0007L) ")
  250. //
  251. // generic download failure - connection broke
  252. //
  253. cpp_quote("#define INET_E_DOWNLOAD_FAILURE _HRESULT_TYPEDEF_(0x800C0008L) ")
  254. //
  255. // to access to this object need authentication e.g. http: 401
  256. //
  257. cpp_quote("#define INET_E_AUTHENTICATION_REQUIRED _HRESULT_TYPEDEF_(0x800C0009L) ")
  258. //
  259. // the object is not available of the required type http: 403 no object
  260. //
  261. cpp_quote("#define INET_E_NO_VALID_MEDIA _HRESULT_TYPEDEF_(0x800C000AL) ")
  262. //
  263. // the internet connection timed out
  264. //
  265. cpp_quote("#define INET_E_CONNECTION_TIMEOUT _HRESULT_TYPEDEF_(0x800C000BL) ")
  266. //
  267. // the request was invalid
  268. //
  269. cpp_quote("#define INET_E_INVALID_REQUEST _HRESULT_TYPEDEF_(0x800C000CL) ")
  270. //
  271. // protocol is not know and no plugable protocol is registered
  272. //
  273. cpp_quote("#define INET_E_UNKNOWN_PROTOCOL _HRESULT_TYPEDEF_(0x800C000DL) ")
  274. //
  275. // security problem encountered
  276. //
  277. cpp_quote("#define INET_E_SECURITY_PROBLEM _HRESULT_TYPEDEF_(0x800C000EL) ")
  278. //
  279. // object could not be loaded; IPersistXXX::Load failed
  280. //
  281. cpp_quote("#define INET_E_CANNOT_LOAD_DATA _HRESULT_TYPEDEF_(0x800C000FL) ")
  282. //
  283. // CoCreateInstance failed.
  284. //
  285. cpp_quote("#define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010L) ")
  286. //
  287. // Redirect failed.
  288. //
  289. cpp_quote("#define INET_E_REDIRECT_FAILED _HRESULT_TYPEDEF_(0x800C0014L) ")
  290. //
  291. // Redirect to directory.
  292. //
  293. cpp_quote("#define INET_E_REDIRECT_TO_DIR _HRESULT_TYPEDEF_(0x800C0015L) ")
  294. //
  295. // HResult range returned in OnStopBinding
  296. //
  297. //
  298. // Data can not be locked
  299. //
  300. cpp_quote("#define INET_E_CANNOT_LOCK_REQUEST _HRESULT_TYPEDEF_(0x800C0016L) ")
  301. cpp_quote("#define INET_E_USE_EXTEND_BINDING _HRESULT_TYPEDEF_(0x800C0017L) ")
  302. cpp_quote("#define INET_E_TERMINATED_BIND _HRESULT_TYPEDEF_(0x800C0018L) ")
  303. cpp_quote("#define INET_E_ERROR_FIRST _HRESULT_TYPEDEF_(0x800C0002L) ")
  304. // User declined download of component
  305. cpp_quote("#define INET_E_CODE_DOWNLOAD_DECLINED _HRESULT_TYPEDEF_(0x800C0100L) ")
  306. cpp_quote("#define INET_E_RESULT_DISPATCHED _HRESULT_TYPEDEF_(0x800C0200L) ")
  307. // Exact code download version requested not found
  308. cpp_quote("#define INET_E_CANNOT_REPLACE_SFP_FILE _HRESULT_TYPEDEF_(0x800C0300L) ")
  309. // Authenticode prompt UI was not shown because the page is not in the ActiveX permissive state
  310. cpp_quote("#define INET_E_CODE_INSTALL_SUPPRESSED _HRESULT_TYPEDEF_(0x800C0400L) ")
  311. // NOTE: Please update INET_E_ERROR_LAST if you add an error code with a higher number:
  312. cpp_quote("#define INET_E_ERROR_LAST INET_E_CANNOT_REPLACE_SFP_FILE")
  313. //+---------------------------------------------------------------------------
  314. //
  315. // Copyright (C) Microsoft Corporation, 1995-1998.
  316. //
  317. // Contents: IPersistMoniker interface definition
  318. //
  319. //----------------------------------------------------------------------------
  320. cpp_quote("#ifndef _LPPERSISTMONIKER_DEFINED")
  321. cpp_quote("#define _LPPERSISTMONIKER_DEFINED")
  322. [
  323. object,
  324. uuid(79eac9c9-baf9-11ce-8c82-00aa004ba90b),
  325. pointer_default(unique)
  326. ]
  327. interface IPersistMoniker : IUnknown
  328. {
  329. typedef [unique] IPersistMoniker *LPPERSISTMONIKER;
  330. HRESULT GetClassID(
  331. [out] CLSID *pClassID
  332. );
  333. HRESULT IsDirty(void);
  334. HRESULT Load(
  335. [in] BOOL fFullyAvailable,
  336. [in] IMoniker * pimkName,
  337. [in] LPBC pibc,
  338. [in] DWORD grfMode
  339. );
  340. HRESULT Save(
  341. [in] IMoniker * pimkName,
  342. [in] LPBC pbc,
  343. [in] BOOL fRemember);
  344. HRESULT SaveCompleted(
  345. [in] IMoniker * pimkName,
  346. [in] LPBC pibc);
  347. HRESULT GetCurMoniker(
  348. [out] IMoniker ** ppimkName);
  349. }
  350. cpp_quote("#endif")
  351. //+---------------------------------------------------------------------------
  352. //
  353. // Copyright (C) Microsoft Corporation, 1995-1998.
  354. //
  355. // Contents: IMonikerProp interface definition
  356. //
  357. //----------------------------------------------------------------------------
  358. cpp_quote("#ifndef _LPMONIKERPROP_DEFINED")
  359. cpp_quote("#define _LPMONIKERPROP_DEFINED")
  360. [
  361. object,
  362. uuid(a5ca5f7f-1847-4d87-9c5b-918509f7511d),
  363. pointer_default(unique)
  364. ]
  365. interface IMonikerProp : IUnknown
  366. {
  367. typedef [unique] IMonikerProp *LPMONIKERPROP;
  368. typedef enum {
  369. MIMETYPEPROP = 0x00000000,
  370. USE_SRC_URL = 0X00000001,
  371. CLASSIDPROP = 0x00000002,
  372. TRUSTEDDOWNLOADPROP = 0x00000003,
  373. POPUPLEVELPROP = 0x00000004,
  374. } MONIKERPROPERTY;
  375. HRESULT PutProperty (
  376. [in] MONIKERPROPERTY mkp,
  377. [in] LPCWSTR val
  378. );
  379. }
  380. cpp_quote("#endif")
  381. //+---------------------------------------------------------------------------
  382. //
  383. // Copyright (C) Microsoft Corporation, 1995-1998.
  384. //
  385. // Contents: IBindProtocol interface definition
  386. //
  387. //----------------------------------------------------------------------------
  388. cpp_quote("#ifndef _LPBINDPROTOCOL_DEFINED")
  389. cpp_quote("#define _LPBINDPROTOCOL_DEFINED")
  390. [
  391. local,
  392. object,
  393. uuid(79eac9cd-baf9-11ce-8c82-00aa004ba90b),
  394. pointer_default(unique)
  395. ]
  396. interface IBindProtocol : IUnknown
  397. {
  398. typedef [unique] IBindProtocol *LPBINDPROTOCOL;
  399. HRESULT CreateBinding(
  400. [in] LPCWSTR szUrl,
  401. [in] IBindCtx *pbc,
  402. [out] IBinding ** ppb);
  403. }
  404. cpp_quote("#endif")
  405. //+---------------------------------------------------------------------------
  406. //
  407. // Copyright (C) Microsoft Corporation, 1995-1998.
  408. //
  409. // Contents: IBinding interface definition
  410. //
  411. //----------------------------------------------------------------------------
  412. cpp_quote("#ifndef _LPBINDING_DEFINED")
  413. cpp_quote("#define _LPBINDING_DEFINED")
  414. [
  415. object,
  416. uuid(79eac9c0-baf9-11ce-8c82-00aa004ba90b),
  417. pointer_default(unique)
  418. ]
  419. interface IBinding: IUnknown
  420. {
  421. typedef [unique] IBinding *LPBINDING;
  422. HRESULT Abort();
  423. HRESULT Suspend();
  424. HRESULT Resume();
  425. HRESULT SetPriority(
  426. [in] LONG nPriority);
  427. HRESULT GetPriority(
  428. [out] LONG * pnPriority);
  429. [local]
  430. HRESULT GetBindResult(
  431. [out] CLSID *pclsidProtocol,
  432. [out] DWORD *pdwResult,
  433. [out] LPOLESTR *pszResult,
  434. [in, out] DWORD *pdwReserved);
  435. [call_as(GetBindResult)]
  436. HRESULT RemoteGetBindResult(
  437. [out] CLSID *pclsidProtocol,
  438. [out] DWORD *pdwResult,
  439. [out] LPOLESTR *pszResult,
  440. [in] DWORD dwReserved);
  441. }
  442. cpp_quote("#endif")
  443. //+---------------------------------------------------------------------------
  444. //
  445. // Copyright (C) Microsoft Corporation, 1995-1998.
  446. //
  447. // Contents: IBindStatusCallback interface definition
  448. //
  449. //----------------------------------------------------------------------------
  450. cpp_quote("#ifndef _LPBINDSTATUSCALLBACK_DEFINED")
  451. cpp_quote("#define _LPBINDSTATUSCALLBACK_DEFINED")
  452. [
  453. object,
  454. uuid(79eac9c1-baf9-11ce-8c82-00aa004ba90b),
  455. pointer_default(unique)
  456. ]
  457. interface IBindStatusCallback: IUnknown
  458. {
  459. typedef [unique] IBindStatusCallback *LPBINDSTATUSCALLBACK;
  460. typedef enum
  461. {
  462. BINDVERB_GET = 0x00000000, // default action
  463. BINDVERB_POST = 0x00000001, // post verb
  464. BINDVERB_PUT = 0x00000002, // put verb
  465. BINDVERB_CUSTOM = 0x00000003, // custom verb
  466. } BINDVERB;
  467. typedef enum
  468. {
  469. BINDINFOF_URLENCODESTGMEDDATA = 0x00000001, // url encode the stgmed data
  470. BINDINFOF_URLENCODEDEXTRAINFO = 0x00000002, // url encode the extra info
  471. } BINDINFOF;
  472. // flags that describe the type of transaction that caller wants
  473. typedef enum
  474. {
  475. BINDF_ASYNCHRONOUS = 0x00000001
  476. ,BINDF_ASYNCSTORAGE = 0x00000002
  477. ,BINDF_NOPROGRESSIVERENDERING = 0x00000004
  478. ,BINDF_OFFLINEOPERATION = 0x00000008
  479. ,BINDF_GETNEWESTVERSION = 0x00000010
  480. ,BINDF_NOWRITECACHE = 0x00000020
  481. ,BINDF_NEEDFILE = 0x00000040
  482. ,BINDF_PULLDATA = 0x00000080
  483. ,BINDF_IGNORESECURITYPROBLEM = 0x00000100
  484. ,BINDF_RESYNCHRONIZE = 0x00000200
  485. ,BINDF_HYPERLINK = 0x00000400
  486. ,BINDF_NO_UI = 0x00000800
  487. ,BINDF_SILENTOPERATION = 0x00001000
  488. ,BINDF_PRAGMA_NO_CACHE = 0x00002000
  489. ,BINDF_GETCLASSOBJECT = 0x00004000
  490. ,BINDF_RESERVED_1 = 0x00008000
  491. // bindstatus callback from client is free threaded
  492. ,BINDF_FREE_THREADED = 0x00010000
  493. // client does not need to know excat size of data available
  494. // hence the read goes directly to e.g. socket
  495. ,BINDF_DIRECT_READ = 0x00020000
  496. // is the transaction a forms submit.
  497. ,BINDF_FORMS_SUBMIT = 0x00040000
  498. ,BINDF_GETFROMCACHE_IF_NET_FAIL = 0x00080000
  499. // binding is from UrlMoniker
  500. ,BINDF_FROMURLMON = 0x00100000
  501. ,BINDF_FWD_BACK = 0x00200000
  502. ,BINDF_PREFERDEFAULTHANDLER = 0x00400000
  503. ,BINDF_ENFORCERESTRICTED = 0x00800000
  504. // Note:
  505. // the highest byte 0x??000000 is used internally
  506. // see other documentation
  507. } BINDF;
  508. typedef enum
  509. {
  510. URL_ENCODING_NONE = 0x00000000
  511. ,URL_ENCODING_ENABLE_UTF8 = 0x10000000
  512. ,URL_ENCODING_DISABLE_UTF8 = 0x20000000
  513. } URL_ENCODING;
  514. typedef struct _tagBINDINFO
  515. {
  516. ULONG cbSize;
  517. LPWSTR szExtraInfo; // e.g. string added to the URL string [range byte]
  518. STGMEDIUM stgmedData; // e.g. put or post data
  519. DWORD grfBindInfoF; // e.g. how meddata should be treaded
  520. DWORD dwBindVerb; // e.g. put, post, ...
  521. LPWSTR szCustomVerb; // e.g. custom verb
  522. DWORD cbstgmedData; // size of data in stgmedData
  523. DWORD dwOptions; // additional option
  524. DWORD dwOptionsFlags; // options flags
  525. DWORD dwCodePage; // the code used to convert the url
  526. SECURITY_ATTRIBUTES securityAttributes;
  527. IID iid; // iid of pUnk
  528. IUnknown *pUnk; // pUnk - whatever
  529. DWORD dwReserved; // should be null
  530. } BINDINFO;
  531. typedef struct _REMSECURITY_ATTRIBUTES
  532. {
  533. DWORD nLength;
  534. DWORD lpSecurityDescriptor;
  535. BOOL bInheritHandle;
  536. } REMSECURITY_ATTRIBUTES, *PREMSECURITY_ATTRIBUTES, *LPREMSECURITY_ATTRIBUTES;
  537. typedef struct _tagRemBINDINFO
  538. {
  539. ULONG cbSize;
  540. LPWSTR szExtraInfo; // e.g. string added to the URL string [range byte]
  541. DWORD grfBindInfoF; // e.g. how meddata should be treaded
  542. DWORD dwBindVerb; // e.g. put, post, ...
  543. LPWSTR szCustomVerb; // e.g. custom verb
  544. DWORD cbstgmedData; // size of data in stgmedData
  545. DWORD dwOptions; // additional options
  546. DWORD dwOptionsFlags; // options flags
  547. DWORD dwCodePage; // the code used to convert the url
  548. REMSECURITY_ATTRIBUTES securityAttributes;
  549. IID iid; // iid of pUnk
  550. IUnknown *pUnk; // pUnk - whatever
  551. DWORD dwReserved; // should be null
  552. } RemBINDINFO;
  553. typedef struct tagRemFORMATETC {
  554. DWORD cfFormat;
  555. DWORD ptd;
  556. DWORD dwAspect;
  557. LONG lindex;
  558. DWORD tymed;
  559. } RemFORMATETC, *LPREMFORMATETC;
  560. // Options flag
  561. typedef enum
  562. {
  563. BINDINFO_OPTIONS_WININETFLAG = 0x00010000
  564. ,BINDINFO_OPTIONS_ENABLE_UTF8 = 0x00020000
  565. ,BINDINFO_OPTIONS_DISABLE_UTF8 = 0x00040000
  566. ,BINDINFO_OPTIONS_USE_IE_ENCODING = 0x00080000
  567. ,BINDINFO_OPTIONS_BINDTOOBJECT = 0x00100000
  568. ,BINDINFO_OPTIONS_SECURITYOPTOUT = 0x00200000
  569. ,BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 0x00400000
  570. ,BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 0x00800000
  571. ,BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 0x01000000
  572. ,BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = 0x80000000
  573. // Note:
  574. // the lowest byte 0xx0000???? is used extended binding
  575. } BINDINFO_OPTIONS;
  576. // Data notification flags
  577. typedef enum
  578. {
  579. BSCF_FIRSTDATANOTIFICATION = 0x00000001
  580. ,BSCF_INTERMEDIATEDATANOTIFICATION = 0x00000002
  581. ,BSCF_LASTDATANOTIFICATION = 0x00000004
  582. ,BSCF_DATAFULLYAVAILABLE = 0x00000008
  583. ,BSCF_AVAILABLEDATASIZEUNKNOWN = 0x00000010
  584. } BSCF;
  585. typedef enum tagBINDSTATUS
  586. {
  587. BINDSTATUS_FINDINGRESOURCE = 1
  588. ,BINDSTATUS_CONNECTING
  589. ,BINDSTATUS_REDIRECTING
  590. ,BINDSTATUS_BEGINDOWNLOADDATA
  591. ,BINDSTATUS_DOWNLOADINGDATA
  592. ,BINDSTATUS_ENDDOWNLOADDATA
  593. ,BINDSTATUS_BEGINDOWNLOADCOMPONENTS
  594. ,BINDSTATUS_INSTALLINGCOMPONENTS
  595. ,BINDSTATUS_ENDDOWNLOADCOMPONENTS
  596. ,BINDSTATUS_USINGCACHEDCOPY
  597. ,BINDSTATUS_SENDINGREQUEST
  598. ,BINDSTATUS_CLASSIDAVAILABLE
  599. ,BINDSTATUS_MIMETYPEAVAILABLE
  600. ,BINDSTATUS_CACHEFILENAMEAVAILABLE
  601. ,BINDSTATUS_BEGINSYNCOPERATION
  602. ,BINDSTATUS_ENDSYNCOPERATION
  603. ,BINDSTATUS_BEGINUPLOADDATA
  604. ,BINDSTATUS_UPLOADINGDATA
  605. ,BINDSTATUS_ENDUPLOADDATA
  606. ,BINDSTATUS_PROTOCOLCLASSID
  607. ,BINDSTATUS_ENCODING
  608. ,BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE
  609. ,BINDSTATUS_CLASSINSTALLLOCATION
  610. ,BINDSTATUS_DECODING
  611. ,BINDSTATUS_LOADINGMIMEHANDLER
  612. ,BINDSTATUS_CONTENTDISPOSITIONATTACH
  613. ,BINDSTATUS_FILTERREPORTMIMETYPE
  614. ,BINDSTATUS_CLSIDCANINSTANTIATE
  615. ,BINDSTATUS_IUNKNOWNAVAILABLE
  616. ,BINDSTATUS_DIRECTBIND
  617. ,BINDSTATUS_RAWMIMETYPE
  618. ,BINDSTATUS_PROXYDETECTING
  619. ,BINDSTATUS_ACCEPTRANGES
  620. ,BINDSTATUS_COOKIE_SENT
  621. ,BINDSTATUS_COMPACT_POLICY_RECEIVED
  622. ,BINDSTATUS_COOKIE_SUPPRESSED
  623. ,BINDSTATUS_COOKIE_STATE_UNKNOWN
  624. ,BINDSTATUS_COOKIE_STATE_ACCEPT
  625. ,BINDSTATUS_COOKIE_STATE_REJECT
  626. ,BINDSTATUS_COOKIE_STATE_PROMPT
  627. ,BINDSTATUS_COOKIE_STATE_LEASH
  628. ,BINDSTATUS_COOKIE_STATE_DOWNGRADE
  629. ,BINDSTATUS_POLICY_HREF
  630. ,BINDSTATUS_P3P_HEADER
  631. ,BINDSTATUS_SESSION_COOKIE_RECEIVED
  632. ,BINDSTATUS_PERSISTENT_COOKIE_RECEIVED
  633. ,BINDSTATUS_SESSION_COOKIES_ALLOWED
  634. ,BINDSTATUS_CACHECONTROL
  635. ,BINDSTATUS_CONTENTDISPOSITIONFILENAME
  636. ,BINDSTATUS_MIMETEXTPLAINMISMATCH
  637. ,BINDSTATUS_PUBLISHERAVAILABLE
  638. ,BINDSTATUS_DISPLAYNAMEAVAILABLE
  639. } BINDSTATUS;
  640. HRESULT OnStartBinding(
  641. [in] DWORD dwReserved,
  642. [in] IBinding * pib);
  643. HRESULT GetPriority(
  644. [out] LONG * pnPriority);
  645. HRESULT OnLowResource(
  646. [in] DWORD reserved);
  647. HRESULT OnProgress(
  648. [in] ULONG ulProgress,
  649. [in] ULONG ulProgressMax,
  650. [in] ULONG ulStatusCode,
  651. [in] LPCWSTR szStatusText);
  652. HRESULT OnStopBinding(
  653. [in] HRESULT hresult,
  654. [in, unique] LPCWSTR szError
  655. );
  656. [local]
  657. HRESULT GetBindInfo(
  658. [out] DWORD *grfBINDF,
  659. [in, out, unique] BINDINFO * pbindinfo
  660. );
  661. [call_as(GetBindInfo)]
  662. HRESULT RemoteGetBindInfo(
  663. [out] DWORD *grfBINDF,
  664. [in, out, unique] RemBINDINFO * pbindinfo,
  665. [in, out, unique] RemSTGMEDIUM* pstgmed
  666. );
  667. [local]
  668. HRESULT OnDataAvailable(
  669. [in] DWORD grfBSCF,
  670. [in] DWORD dwSize,
  671. [in] FORMATETC* pformatetc,
  672. [in] STGMEDIUM* pstgmed
  673. );
  674. [call_as(OnDataAvailable)]
  675. HRESULT RemoteOnDataAvailable(
  676. [in] DWORD grfBSCF,
  677. [in] DWORD dwSize,
  678. [in] RemFORMATETC *pformatetc,
  679. [in] RemSTGMEDIUM* pstgmed
  680. );
  681. HRESULT OnObjectAvailable(
  682. [in] REFIID riid,
  683. [in, iid_is(riid)] IUnknown* punk
  684. );
  685. }
  686. cpp_quote("#endif")
  687. //+---------------------------------------------------------------------------
  688. //
  689. // Copyright (C) Microsoft Corporation, 1995-1998.
  690. //
  691. // Contents: IAuthenticate interface definition
  692. //
  693. //----------------------------------------------------------------------------
  694. cpp_quote("#ifndef _LPAUTHENTICATION_DEFINED")
  695. cpp_quote("#define _LPAUTHENTICATION_DEFINED")
  696. [
  697. object,
  698. uuid(79eac9d0-baf9-11ce-8c82-00aa004ba90b),
  699. pointer_default(unique)
  700. ]
  701. interface IAuthenticate : IUnknown
  702. {
  703. typedef [unique] IAuthenticate *LPAUTHENTICATION;
  704. HRESULT Authenticate(
  705. [out] HWND* phwnd,
  706. [out] LPWSTR *pszUsername,
  707. [out] LPWSTR *pszPassword
  708. );
  709. }
  710. cpp_quote("#endif")
  711. //+---------------------------------------------------------------------------
  712. //
  713. // Copyright (C) Microsoft Corporation, 1995-1998.
  714. //
  715. // Contents: IHttpNegotiate interface definition
  716. //
  717. //----------------------------------------------------------------------------
  718. cpp_quote("#ifndef _LPHTTPNEGOTIATE_DEFINED")
  719. cpp_quote("#define _LPHTTPNEGOTIATE_DEFINED")
  720. [
  721. object,
  722. uuid(79eac9d2-baf9-11ce-8c82-00aa004ba90b),
  723. pointer_default(unique)
  724. ]
  725. interface IHttpNegotiate : IUnknown
  726. {
  727. typedef [unique] IHttpNegotiate *LPHTTPNEGOTIATE;
  728. HRESULT BeginningTransaction(
  729. [in] LPCWSTR szURL,
  730. [in, unique] LPCWSTR szHeaders,
  731. [in] DWORD dwReserved,
  732. [out] LPWSTR *pszAdditionalHeaders
  733. );
  734. HRESULT OnResponse(
  735. [in] DWORD dwResponseCode,
  736. [in, unique] LPCWSTR szResponseHeaders,
  737. [in, unique] LPCWSTR szRequestHeaders,
  738. [out] LPWSTR *pszAdditionalRequestHeaders
  739. );
  740. }
  741. cpp_quote("#endif")
  742. //+---------------------------------------------------------------------------
  743. //
  744. // Copyright (C) Microsoft Corporation, 1995-1998.
  745. //
  746. // Contents: IHttpNegotiate2 interface definition
  747. //
  748. //----------------------------------------------------------------------------
  749. cpp_quote("#ifndef _LPHTTPNEGOTIATE2_DEFINED")
  750. cpp_quote("#define _LPHTTPNEGOTIATE2_DEFINED")
  751. [
  752. object,
  753. uuid(4F9F9FCB-E0F4-48eb-B7AB-FA2EA9365CB4),
  754. pointer_default(unique)
  755. ]
  756. interface IHttpNegotiate2 : IHttpNegotiate
  757. {
  758. typedef [unique] IHttpNegotiate2 *LPHTTPNEGOTIATE2;
  759. HRESULT GetRootSecurityId
  760. (
  761. [out, size_is(*pcbSecurityId)]
  762. BYTE* pbSecurityId,
  763. [in, out]
  764. DWORD* pcbSecurityId,
  765. [in] DWORD_PTR dwReserved
  766. );
  767. }
  768. cpp_quote("#endif")
  769. //+---------------------------------------------------------------------------
  770. //
  771. // Copyright (C) Microsoft Corporation, 1995-1998.
  772. //
  773. // Contents: IWindowForBindingUI interface definition
  774. //
  775. //----------------------------------------------------------------------------
  776. cpp_quote("#ifndef _LPWINDOWFORBINDINGUI_DEFINED")
  777. cpp_quote("#define _LPWINDOWFORBINDINGUI_DEFINED")
  778. [
  779. local,
  780. object,
  781. uuid(79eac9d5-bafa-11ce-8c82-00aa004ba90b),
  782. pointer_default(unique)
  783. ]
  784. interface IWindowForBindingUI : IUnknown
  785. {
  786. typedef [unique] IWindowForBindingUI *LPWINDOWFORBINDINGUI;
  787. HRESULT GetWindow(
  788. [in] REFGUID rguidReason,
  789. [out] HWND* phwnd);
  790. }
  791. cpp_quote("#endif")
  792. //+---------------------------------------------------------------------------
  793. //
  794. // Copyright (C) Microsoft Corporation, 1995-1998.
  795. //
  796. // Contents: ICodeDownloadClient interface definition
  797. //
  798. //----------------------------------------------------------------------------
  799. cpp_quote("#ifndef _LPCODEINSTALL_DEFINED")
  800. cpp_quote("#define _LPCODEINSTALL_DEFINED")
  801. [
  802. local,
  803. object,
  804. uuid(79eac9d1-baf9-11ce-8c82-00aa004ba90b),
  805. pointer_default(unique)
  806. ]
  807. interface ICodeInstall : IWindowForBindingUI
  808. {
  809. typedef [unique] ICodeInstall *LPCODEINSTALL;
  810. typedef enum {
  811. CIP_DISK_FULL,
  812. CIP_ACCESS_DENIED,
  813. CIP_NEWER_VERSION_EXISTS,
  814. CIP_OLDER_VERSION_EXISTS,
  815. CIP_NAME_CONFLICT,
  816. CIP_TRUST_VERIFICATION_COMPONENT_MISSING,
  817. CIP_EXE_SELF_REGISTERATION_TIMEOUT,
  818. CIP_UNSAFE_TO_ABORT,
  819. CIP_NEED_REBOOT,
  820. CIP_NEED_REBOOT_UI_PERMISSION
  821. } CIP_STATUS;
  822. HRESULT OnCodeInstallProblem(
  823. [in] ULONG ulStatusCode, // contingency status
  824. [in, unique] LPCWSTR szDestination, // file that needs to be updated
  825. [in, unique] LPCWSTR szSource, // new version from 'net (a temp file)
  826. [in] DWORD dwReserved
  827. );
  828. }
  829. cpp_quote("#endif")
  830. //+---------------------------------------------------------------------------
  831. //
  832. // Copyright (C) Microsoft Corporation, 1995-1998.
  833. //
  834. // Contents: IWinInetInfo interface definition
  835. //
  836. //----------------------------------------------------------------------------
  837. cpp_quote("#ifndef _LPWININETINFO_DEFINED")
  838. cpp_quote("#define _LPWININETINFO_DEFINED")
  839. [
  840. object,
  841. uuid(79eac9d6-bafa-11ce-8c82-00aa004ba90b),
  842. pointer_default(unique)
  843. ]
  844. interface IWinInetInfo : IUnknown
  845. {
  846. typedef [unique] IWinInetInfo *LPWININETINFO;
  847. [local]
  848. HRESULT QueryOption(
  849. [in] DWORD dwOption,
  850. [in, out, size_is(*pcbBuf)] LPVOID pBuffer,
  851. [in, out] DWORD *pcbBuf);
  852. [call_as(QueryOption)]
  853. HRESULT RemoteQueryOption(
  854. [in] DWORD dwOption,
  855. [in, out, size_is(*pcbBuf)] BYTE *pBuffer,
  856. [in, out] DWORD *pcbBuf);
  857. }
  858. cpp_quote("#endif")
  859. cpp_quote("#define WININETINFO_OPTION_LOCK_HANDLE 65534")
  860. //+---------------------------------------------------------------------------
  861. //
  862. // Copyright (C) Microsoft Corporation, 1995-1998.
  863. //
  864. // Contents: IHttpSecurity interface definition
  865. //
  866. //----------------------------------------------------------------------------
  867. cpp_quote("#ifndef _LPHTTPSECURITY_DEFINED")
  868. cpp_quote("#define _LPHTTPSECURITY_DEFINED")
  869. [
  870. local,
  871. object,
  872. uuid(79eac9d7-bafa-11ce-8c82-00aa004ba90b),
  873. pointer_default(unique)
  874. ]
  875. interface IHttpSecurity : IWindowForBindingUI
  876. {
  877. typedef [unique] IHttpSecurity *LPHTTPSECURITY;
  878. HRESULT OnSecurityProblem(
  879. [in] DWORD dwProblem);
  880. }
  881. cpp_quote("#endif")
  882. //+---------------------------------------------------------------------------
  883. //
  884. // Copyright (C) Microsoft Corporation, 1995-1998.
  885. //
  886. // Contents: IWinInetHttpInfo interface definition
  887. //
  888. //----------------------------------------------------------------------------
  889. cpp_quote("#ifndef _LPWININETHTTPINFO_DEFINED")
  890. cpp_quote("#define _LPWININETHTTPINFO_DEFINED")
  891. [
  892. object,
  893. uuid(79eac9d8-bafa-11ce-8c82-00aa004ba90b),
  894. pointer_default(unique)
  895. ]
  896. interface IWinInetHttpInfo : IWinInetInfo
  897. {
  898. typedef [unique] IWinInetHttpInfo *LPWININETHTTPINFO;
  899. [local]
  900. HRESULT QueryInfo(
  901. [in] DWORD dwOption,
  902. [in, out,size_is(*pcbBuf)] LPVOID pBuffer,
  903. [in, out] DWORD *pcbBuf,
  904. [in, out] DWORD *pdwFlags,
  905. [in, out] DWORD *pdwReserved
  906. );
  907. [call_as(QueryInfo)]
  908. HRESULT RemoteQueryInfo(
  909. [in] DWORD dwOption,
  910. [in,out,size_is(*pcbBuf)] BYTE *pBuffer,
  911. [in, out] DWORD *pcbBuf,
  912. [in, out] DWORD *pdwFlags,
  913. [in, out] DWORD *pdwReserved
  914. );
  915. }
  916. cpp_quote("#endif")
  917. //+---------------------------------------------------------------------------
  918. //
  919. // Copyright (C) Microsoft Corporation, 1995-1998.
  920. //
  921. // Contents: IWinInetCacheHints interface definition
  922. //
  923. //----------------------------------------------------------------------------
  924. cpp_quote("#ifndef _LPWININETCACHEHINTS_DEFINED")
  925. cpp_quote("#define _LPWININETCACHEHINTS_DEFINED")
  926. [
  927. local,
  928. object,
  929. uuid(DD1EC3B3-8391-4fdb-A9E6-347C3CAAA7DD),
  930. pointer_default(unique)
  931. ]
  932. interface IWinInetCacheHints : IUnknown
  933. {
  934. typedef [unique] IWinInetCacheHints *LPWININETCACHEHINTS;
  935. HRESULT SetCacheExtension(
  936. [in] LPCWSTR pwzExt,
  937. [in,out,size_is(*pcbCacheFile)] LPVOID pszCacheFile,
  938. [in, out] DWORD* pcbCacheFile,
  939. [in, out] DWORD* pdwWinInetError,
  940. [in, out] DWORD* pdwReserved
  941. );
  942. }
  943. cpp_quote("#endif")
  944. cpp_quote("#define SID_IBindHost IID_IBindHost")
  945. cpp_quote("#define SID_SBindHost IID_IBindHost")
  946. //+---------------------------------------------------------------------------
  947. //
  948. // Copyright (C) Microsoft Corporation, 1995-1998.
  949. //
  950. // Contents: IBindHost definition
  951. //
  952. //---------------------------------------------------------------------------
  953. cpp_quote("#ifndef _LPBINDHOST_DEFINED")
  954. cpp_quote("#define _LPBINDHOST_DEFINED")
  955. cpp_quote("EXTERN_C const GUID SID_BindHost;")
  956. [
  957. object,
  958. uuid(fc4801a1-2ba9-11cf-a229-00aa003d7352),
  959. pointer_default(unique)
  960. ]
  961. interface IBindHost : IUnknown
  962. {
  963. typedef [unique] IBindHost *LPBINDHOST;
  964. HRESULT CreateMoniker(
  965. [in] LPOLESTR szName,
  966. [in] IBindCtx *pBC,
  967. [out] IMoniker** ppmk,
  968. [in] DWORD dwReserved);
  969. [local]
  970. HRESULT MonikerBindToStorage(
  971. [in] IMoniker *pMk,
  972. [in] IBindCtx *pBC,
  973. [in] IBindStatusCallback *pBSC,
  974. [in] REFIID riid,
  975. [out] void **ppvObj);
  976. [call_as(MonikerBindToStorage)]
  977. HRESULT RemoteMonikerBindToStorage(
  978. [in, unique] IMoniker *pMk,
  979. [in, unique] IBindCtx *pBC,
  980. [in, unique] IBindStatusCallback *pBSC,
  981. [in] REFIID riid,
  982. [out, iid_is(riid)] IUnknown **ppvObj);
  983. [local]
  984. HRESULT MonikerBindToObject(
  985. [in] IMoniker *pMk,
  986. [in] IBindCtx *pBC,
  987. [in] IBindStatusCallback *pBSC,
  988. [in] REFIID riid,
  989. [out] void **ppvObj);
  990. [call_as(MonikerBindToObject)]
  991. HRESULT RemoteMonikerBindToObject(
  992. [in, unique] IMoniker *pMk,
  993. [in, unique] IBindCtx *pBC,
  994. [in, unique] IBindStatusCallback *pBSC,
  995. [in] REFIID riid,
  996. [out, iid_is(riid)] IUnknown **ppvObj);
  997. }
  998. cpp_quote("#endif")
  999. // urlhlink stuff
  1000. #pragma midl_echo(" ")
  1001. cpp_quote("// These are for backwards compatibility with previous URLMON versions")
  1002. #pragma midl_echo("// Flags for the UrlDownloadToCacheFile ")
  1003. #pragma midl_echo("#define URLOSTRM_USECACHEDCOPY_ONLY 0x1 // Only get from cache ")
  1004. #pragma midl_echo("#define URLOSTRM_USECACHEDCOPY 0x2 // Get from cache if available else download ")
  1005. #pragma midl_echo("#define URLOSTRM_GETNEWESTVERSION 0x3 // Get new version only. But put it in cache too ")
  1006. #pragma midl_echo(" ")
  1007. #pragma midl_echo(" ")
  1008. #pragma midl_echo("struct IBindStatusCallback; ")
  1009. #pragma midl_echo("STDAPI HlinkSimpleNavigateToString( ")
  1010. #pragma midl_echo(" /* [in] */ LPCWSTR szTarget, // required - target document - null if local jump w/in doc ")
  1011. #pragma midl_echo(" /* [in] */ LPCWSTR szLocation, // optional, for navigation into middle of a doc ")
  1012. #pragma midl_echo(" /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets ")
  1013. #pragma midl_echo(" /* [in] */ IUnknown *pUnk, // required - we'll search this for other necessary interfaces ")
  1014. #pragma midl_echo(" /* [in] */ IBindCtx *pbc, // optional. caller may register an IBSC in this ")
  1015. #pragma midl_echo(" /* [in] */ IBindStatusCallback *, ")
  1016. #pragma midl_echo(" /* [in] */ DWORD grfHLNF, // flags ")
  1017. #pragma midl_echo(" /* [in] */ DWORD dwReserved // for future use, must be NULL ")
  1018. #pragma midl_echo("); ")
  1019. #pragma midl_echo(" ")
  1020. #pragma midl_echo("STDAPI HlinkSimpleNavigateToMoniker( ")
  1021. #pragma midl_echo(" /* [in] */ IMoniker *pmkTarget, // required - target document - (may be null ")
  1022. #pragma midl_echo(" /* [in] */ LPCWSTR szLocation, // optional, for navigation into middle of a doc ")
  1023. #pragma midl_echo(" /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets ")
  1024. #pragma midl_echo(" /* [in] */ IUnknown *pUnk, // required - we'll search this for other necessary interfaces ")
  1025. #pragma midl_echo(" /* [in] */ IBindCtx *pbc, // optional. caller may register an IBSC in this ")
  1026. #pragma midl_echo(" /* [in] */ IBindStatusCallback *, ")
  1027. #pragma midl_echo(" /* [in] */ DWORD grfHLNF, // flags ")
  1028. #pragma midl_echo(" /* [in] */ DWORD dwReserved // for future use, must be NULL ")
  1029. #pragma midl_echo("); ")
  1030. //#pragma midl_echo("typedef HRESULT (STDAPICALLTYPE *LPFNUOSCALLBACK)(LPBINDSTATUSCALLBACK); ")
  1031. #pragma midl_echo(" ")
  1032. #pragma midl_echo("STDAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); ")
  1033. #pragma midl_echo("STDAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); ")
  1034. #pragma midl_echo("STDAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); ")
  1035. #pragma midl_echo("STDAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); ")
  1036. #pragma midl_echo("STDAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); ")
  1037. #pragma midl_echo("STDAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); ")
  1038. #pragma midl_echo("STDAPI URLDownloadToCacheFileA(LPUNKNOWN,LPCSTR,LPTSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK); ")
  1039. #pragma midl_echo("STDAPI URLDownloadToCacheFileW(LPUNKNOWN,LPCWSTR,LPWSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK); ")
  1040. #pragma midl_echo("STDAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK); ")
  1041. #pragma midl_echo("STDAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK); ")
  1042. #pragma midl_echo(" ")
  1043. #pragma midl_echo("#ifdef UNICODE ")
  1044. #pragma midl_echo("#define URLOpenStream URLOpenStreamW ")
  1045. #pragma midl_echo("#define URLOpenPullStream URLOpenPullStreamW ")
  1046. #pragma midl_echo("#define URLDownloadToFile URLDownloadToFileW ")
  1047. #pragma midl_echo("#define URLDownloadToCacheFile URLDownloadToCacheFileW ")
  1048. #pragma midl_echo("#define URLOpenBlockingStream URLOpenBlockingStreamW ")
  1049. #pragma midl_echo("#else ")
  1050. #pragma midl_echo("#define URLOpenStream URLOpenStreamA ")
  1051. #pragma midl_echo("#define URLOpenPullStream URLOpenPullStreamA ")
  1052. #pragma midl_echo("#define URLDownloadToFile URLDownloadToFileA ")
  1053. #pragma midl_echo("#define URLDownloadToCacheFile URLDownloadToCacheFileA ")
  1054. #pragma midl_echo("#define URLOpenBlockingStream URLOpenBlockingStreamA ")
  1055. #pragma midl_echo("#endif // !UNICODE ")
  1056. #pragma midl_echo(" ")
  1057. #pragma midl_echo(" ")
  1058. #pragma midl_echo("STDAPI HlinkGoBack(IUnknown *pUnk); ")
  1059. #pragma midl_echo("STDAPI HlinkGoForward(IUnknown *pUnk); ")
  1060. #pragma midl_echo("STDAPI HlinkNavigateString(IUnknown *pUnk, LPCWSTR szTarget); ")
  1061. #pragma midl_echo("STDAPI HlinkNavigateMoniker(IUnknown *pUnk, IMoniker *pmkTarget); ")
  1062. #pragma midl_echo(" ")
  1063. // urlhlink end
  1064. //
  1065. // Some components to not want the new async plugable protocol interfaces (e.g OLE)
  1066. //
  1067. #pragma midl_echo("#ifndef _URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_ ")
  1068. interface IInternet;
  1069. interface IInternetBindInfo;
  1070. interface IInternetProtocolRoot;
  1071. interface IInternetProtocol;
  1072. interface IInternetProtocolSink;
  1073. interface IInternetProtocolInfo;
  1074. interface IInternetSession;
  1075. interface IInternetProtocolSinkStackable;
  1076. //+---------------------------------------------------------------------------
  1077. //
  1078. // Copyright (C) Microsoft Corporation, 1995-1998.
  1079. //
  1080. // Contents: IInternet interface definition
  1081. //
  1082. //----------------------------------------------------------------------------
  1083. cpp_quote("#ifndef _LPIINTERNET")
  1084. cpp_quote("#define _LPIINTERNET")
  1085. [
  1086. local,
  1087. object,
  1088. uuid(79eac9e0-baf9-11ce-8c82-00aa004ba90b),
  1089. pointer_default(unique)
  1090. ]
  1091. interface IInternet : IUnknown
  1092. {
  1093. typedef [unique] IInternet *LPIINTERNET;
  1094. }
  1095. cpp_quote("#endif")
  1096. //+---------------------------------------------------------------------------
  1097. //
  1098. // Copyright (C) Microsoft Corporation, 1995-1998.
  1099. //
  1100. // Contents: IInternetBindInfo interface definition
  1101. //
  1102. //----------------------------------------------------------------------------
  1103. cpp_quote("#ifndef _LPIINTERNETBINDINFO")
  1104. cpp_quote("#define _LPIINTERNETBINDINFO")
  1105. [
  1106. local,
  1107. object,
  1108. uuid(79eac9e1-baf9-11ce-8c82-00aa004ba90b),
  1109. pointer_default(unique)
  1110. ]
  1111. interface IInternetBindInfo : IUnknown
  1112. {
  1113. typedef [unique] IInternetBindInfo *LPIINTERNETBINDINFO;
  1114. typedef enum tagBINDSTRING
  1115. {
  1116. BINDSTRING_HEADERS = 1
  1117. ,BINDSTRING_ACCEPT_MIMES
  1118. ,BINDSTRING_EXTRA_URL
  1119. ,BINDSTRING_LANGUAGE
  1120. ,BINDSTRING_USERNAME
  1121. ,BINDSTRING_PASSWORD
  1122. ,BINDSTRING_UA_PIXELS
  1123. ,BINDSTRING_UA_COLOR
  1124. ,BINDSTRING_OS
  1125. ,BINDSTRING_USER_AGENT
  1126. ,BINDSTRING_ACCEPT_ENCODINGS
  1127. ,BINDSTRING_POST_COOKIE
  1128. ,BINDSTRING_POST_DATA_MIME
  1129. ,BINDSTRING_URL
  1130. ,BINDSTRING_IID
  1131. ,BINDSTRING_FLAG_BIND_TO_OBJECT
  1132. ,BINDSTRING_PTR_BIND_CONTEXT
  1133. } BINDSTRING;
  1134. HRESULT GetBindInfo(
  1135. [out] DWORD *grfBINDF,
  1136. [in, out, unique] BINDINFO * pbindinfo
  1137. );
  1138. HRESULT GetBindString(
  1139. [in] ULONG ulStringType,
  1140. [in, out] LPOLESTR *ppwzStr,
  1141. [in] ULONG cEl,
  1142. [in, out] ULONG *pcElFetched
  1143. );
  1144. }
  1145. cpp_quote("#endif")
  1146. //+---------------------------------------------------------------------------
  1147. //
  1148. // Copyright (C) Microsoft Corporation, 1995-1998.
  1149. //
  1150. // Contents: IInternetProtocolRoot interface definition
  1151. //
  1152. //----------------------------------------------------------------------------
  1153. cpp_quote("#ifndef _LPIINTERNETPROTOCOLROOT_DEFINED")
  1154. cpp_quote("#define _LPIINTERNETPROTOCOLROOT_DEFINED")
  1155. [
  1156. local,
  1157. object,
  1158. uuid(79eac9e3-baf9-11ce-8c82-00aa004ba90b),
  1159. pointer_default(unique)
  1160. ]
  1161. interface IInternetProtocolRoot : IUnknown
  1162. {
  1163. typedef [unique] IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT;
  1164. typedef enum _tagPI_FLAGS
  1165. {
  1166. PI_PARSE_URL = 0x00000001
  1167. ,PI_FILTER_MODE = 0x00000002
  1168. ,PI_FORCE_ASYNC = 0x00000004
  1169. ,PI_USE_WORKERTHREAD = 0x00000008
  1170. ,PI_MIMEVERIFICATION = 0x00000010
  1171. ,PI_CLSIDLOOKUP = 0x00000020
  1172. ,PI_DATAPROGRESS = 0x00000040
  1173. ,PI_SYNCHRONOUS = 0x00000080
  1174. ,PI_APARTMENTTHREADED = 0x00000100
  1175. ,PI_CLASSINSTALL = 0x00000200
  1176. // new flags to deal with mime handler
  1177. // and to load app directly
  1178. ,PI_PASSONBINDCTX = 0x00002000
  1179. ,PI_NOMIMEHANDLER = 0x00008000
  1180. ,PI_LOADAPPDIRECT = 0x00004000
  1181. // flags used in the protocol data on switch
  1182. ,PD_FORCE_SWITCH = 0x00010000
  1183. ,PI_PREFERDEFAULTHANDLER = 0x00020000
  1184. } PI_FLAGS;
  1185. typedef struct _tagPROTOCOLDATA
  1186. {
  1187. DWORD grfFlags;
  1188. DWORD dwState;
  1189. LPVOID pData;
  1190. ULONG cbData;
  1191. } PROTOCOLDATA;
  1192. typedef struct _tagStartParam
  1193. {
  1194. IID iid;
  1195. IBindCtx *pIBindCtx;
  1196. IUnknown *pItf;
  1197. } StartParam;
  1198. HRESULT Start(
  1199. [in] LPCWSTR szUrl,
  1200. [in] IInternetProtocolSink *pOIProtSink,
  1201. [in] IInternetBindInfo *pOIBindInfo,
  1202. [in] DWORD grfPI,
  1203. [in] HANDLE_PTR dwReserved
  1204. );
  1205. HRESULT Continue(
  1206. [in] PROTOCOLDATA *pProtocolData
  1207. );
  1208. HRESULT Abort(
  1209. [in] HRESULT hrReason,
  1210. [in] DWORD dwOptions
  1211. );
  1212. HRESULT Terminate(
  1213. [in] DWORD dwOptions
  1214. );
  1215. HRESULT Suspend();
  1216. HRESULT Resume();
  1217. }
  1218. cpp_quote("#endif")
  1219. //+---------------------------------------------------------------------------
  1220. //
  1221. // Copyright (C) Microsoft Corporation, 1995-1998.
  1222. //
  1223. // Contents: IInternetProtocol interface definition
  1224. //
  1225. //----------------------------------------------------------------------------
  1226. cpp_quote("#ifndef _LPIINTERNETPROTOCOL_DEFINED")
  1227. cpp_quote("#define _LPIINTERNETPROTOCOL_DEFINED")
  1228. [
  1229. local,
  1230. object,
  1231. uuid(79eac9e4-baf9-11ce-8c82-00aa004ba90b),
  1232. pointer_default(unique)
  1233. ]
  1234. interface IInternetProtocol : IInternetProtocolRoot
  1235. {
  1236. typedef [unique] IInternetProtocol *LPIINTERNETPROTOCOL;
  1237. HRESULT Read(
  1238. [in,out, size_is(cb), length_is(*pcbRead)]
  1239. void *pv,
  1240. [in] ULONG cb,
  1241. [out] ULONG *pcbRead);
  1242. HRESULT Seek(
  1243. [in] LARGE_INTEGER dlibMove,
  1244. [in] DWORD dwOrigin,
  1245. [out] ULARGE_INTEGER *plibNewPosition);
  1246. HRESULT LockRequest(
  1247. [in] DWORD dwOptions
  1248. );
  1249. HRESULT UnlockRequest();
  1250. }
  1251. cpp_quote("#endif")
  1252. //+---------------------------------------------------------------------------
  1253. //
  1254. // Copyright (C) Microsoft Corporation, 1995-1998.
  1255. //
  1256. // Contents: IInternetProtocolSink interface definition
  1257. //
  1258. //----------------------------------------------------------------------------
  1259. cpp_quote("#ifndef _LPIINTERNETPROTOCOLSINK_DEFINED")
  1260. cpp_quote("#define _LPIINTERNETPROTOCOLSINK_DEFINED")
  1261. [
  1262. local,
  1263. object,
  1264. uuid(79eac9e5-baf9-11ce-8c82-00aa004ba90b),
  1265. pointer_default(unique)
  1266. ]
  1267. interface IInternetProtocolSink : IUnknown
  1268. {
  1269. typedef [unique] IInternetProtocolSink *LPIINTERNETPROTOCOLSINK;
  1270. HRESULT Switch(
  1271. [in] PROTOCOLDATA *pProtocolData
  1272. );
  1273. HRESULT ReportProgress(
  1274. [in] ULONG ulStatusCode,
  1275. [in] LPCWSTR szStatusText
  1276. );
  1277. HRESULT ReportData(
  1278. [in] DWORD grfBSCF,
  1279. [in] ULONG ulProgress,
  1280. [in] ULONG ulProgressMax
  1281. );
  1282. HRESULT ReportResult(
  1283. [in] HRESULT hrResult,
  1284. [in] DWORD dwError,
  1285. [in] LPCWSTR szResult
  1286. );
  1287. }
  1288. cpp_quote("#endif")
  1289. //+---------------------------------------------------------------------------
  1290. //
  1291. // Copyright (C) Microsoft Corporation, 1995-1998.
  1292. //
  1293. // Contents: IInternetProtocolSinkStackable interface definition
  1294. //
  1295. //----------------------------------------------------------------------------
  1296. cpp_quote("#ifndef _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED")
  1297. cpp_quote("#define _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED")
  1298. [
  1299. local,
  1300. object,
  1301. uuid(79eac9f0-baf9-11ce-8c82-00aa004ba90b),
  1302. pointer_default(unique)
  1303. ]
  1304. interface IInternetProtocolSinkStackable : IUnknown
  1305. {
  1306. typedef [unique] IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable;
  1307. HRESULT SwitchSink(
  1308. [in] IInternetProtocolSink *pOIProtSink
  1309. );
  1310. HRESULT CommitSwitch();
  1311. HRESULT RollbackSwitch();
  1312. }
  1313. cpp_quote("#endif")
  1314. //+---------------------------------------------------------------------------
  1315. //
  1316. // Copyright (C) Microsoft Corporation, 1995 - 1997.
  1317. //
  1318. // Contents: IInternetSession interface definition
  1319. //
  1320. //----------------------------------------------------------------------------
  1321. cpp_quote("#ifndef _LPIINTERNETSESSION_DEFINED")
  1322. cpp_quote("#define _LPIINTERNETSESSION_DEFINED")
  1323. [
  1324. local,
  1325. object,
  1326. uuid(79eac9e7-baf9-11ce-8c82-00aa004ba90b),
  1327. pointer_default(unique)
  1328. ]
  1329. interface IInternetSession : IUnknown
  1330. {
  1331. typedef [unique] IInternetSession *LPIINTERNETSESSION;
  1332. typedef enum _tagOIBDG_FLAGS
  1333. {
  1334. // default is free threaded
  1335. OIBDG_APARTMENTTHREADED = 0x00000100
  1336. ,OIBDG_DATAONLY = 0x00001000
  1337. } OIBDG_FLAGS;
  1338. HRESULT RegisterNameSpace(
  1339. [in] IClassFactory *pCF,
  1340. [in] REFCLSID rclsid,
  1341. [in] LPCWSTR pwzProtocol,
  1342. [in] ULONG cPatterns,
  1343. [in] const LPCWSTR *ppwzPatterns,
  1344. [in] DWORD dwReserved
  1345. );
  1346. HRESULT UnregisterNameSpace(
  1347. [in] IClassFactory *pCF,
  1348. [in] LPCWSTR pszProtocol
  1349. );
  1350. HRESULT RegisterMimeFilter(
  1351. [in] IClassFactory *pCF,
  1352. [in] REFCLSID rclsid,
  1353. [in] LPCWSTR pwzType
  1354. );
  1355. HRESULT UnregisterMimeFilter(
  1356. [in] IClassFactory *pCF,
  1357. [in] LPCWSTR pwzType
  1358. );
  1359. HRESULT CreateBinding(
  1360. [in] LPBC pBC,
  1361. [in] LPCWSTR szUrl,
  1362. [in] IUnknown *pUnkOuter,
  1363. [out, unique] IUnknown **ppUnk,
  1364. [out, unique] IInternetProtocol **ppOInetProt,
  1365. [in] DWORD dwOption
  1366. );
  1367. HRESULT SetSessionOption(
  1368. [in] DWORD dwOption,
  1369. [in] LPVOID pBuffer,
  1370. [in] DWORD dwBufferLength,
  1371. [in] DWORD dwReserved
  1372. );
  1373. HRESULT GetSessionOption(
  1374. [in] DWORD dwOption,
  1375. [in, out] LPVOID pBuffer,
  1376. [in, out] DWORD *pdwBufferLength,
  1377. [in] DWORD dwReserved
  1378. );
  1379. }
  1380. cpp_quote("#endif")
  1381. //+---------------------------------------------------------------------------
  1382. //
  1383. // Copyright (C) Microsoft Corporation, 1995-1998.
  1384. //
  1385. // Contents: IInternetThreadSwitch interface definition
  1386. //
  1387. //----------------------------------------------------------------------------
  1388. cpp_quote("#ifndef _LPIINTERNETTHREADSWITCH_DEFINED")
  1389. cpp_quote("#define _LPIINTERNETTHREADSWITCH_DEFINED")
  1390. [
  1391. local,
  1392. object,
  1393. uuid(79eac9e8-baf9-11ce-8c82-00aa004ba90b),
  1394. pointer_default(unique)
  1395. ]
  1396. interface IInternetThreadSwitch : IUnknown
  1397. {
  1398. typedef [unique] IInternetThreadSwitch *LPIINTERNETTHREADSWITCH;
  1399. HRESULT Prepare();
  1400. HRESULT Continue();
  1401. }
  1402. cpp_quote("#endif")
  1403. //+---------------------------------------------------------------------------
  1404. //
  1405. // Copyright (C) Microsoft Corporation, 1995-1998.
  1406. //
  1407. // Contents: IInternetPriority interface definition
  1408. //
  1409. //----------------------------------------------------------------------------
  1410. cpp_quote("#ifndef _LPIINTERNETPRIORITY_DEFINED")
  1411. cpp_quote("#define _LPIINTERNETPRIORITY_DEFINED")
  1412. [
  1413. local,
  1414. object,
  1415. uuid(79eac9eb-baf9-11ce-8c82-00aa004ba90b),
  1416. pointer_default(unique)
  1417. ]
  1418. interface IInternetPriority : IUnknown
  1419. {
  1420. typedef [unique] IInternetPriority *LPIINTERNETPRIORITY;
  1421. HRESULT SetPriority(
  1422. [in] LONG nPriority
  1423. );
  1424. HRESULT GetPriority(
  1425. [out] LONG * pnPriority
  1426. );
  1427. }
  1428. cpp_quote("#endif")
  1429. //+---------------------------------------------------------------------------
  1430. //
  1431. // Copyright (C) Microsoft Corporation, 1995-1998.
  1432. //
  1433. // Contents: IInternetProtocolInfo interface definition
  1434. //
  1435. //----------------------------------------------------------------------------
  1436. cpp_quote("#ifndef _LPIINTERNETPROTOCOLINFO_DEFINED")
  1437. cpp_quote("#define _LPIINTERNETPROTOCOLINFO_DEFINED")
  1438. [
  1439. local,
  1440. object,
  1441. uuid(79eac9ec-baf9-11ce-8c82-00aa004ba90b),
  1442. pointer_default(unique)
  1443. ]
  1444. interface IInternetProtocolInfo : IUnknown
  1445. {
  1446. typedef [unique] IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
  1447. typedef enum _tagPARSEACTION
  1448. {
  1449. PARSE_CANONICALIZE = 1 // compute canonical URL
  1450. ,PARSE_FRIENDLY // get user friendly name from URL
  1451. ,PARSE_SECURITY_URL // get security URL.
  1452. ,PARSE_ROOTDOCUMENT // returns URL of root document for site
  1453. ,PARSE_DOCUMENT // Strips of #anchor
  1454. ,PARSE_ANCHOR // Strips of everything before #anchor
  1455. ,PARSE_ENCODE // encode the url
  1456. ,PARSE_DECODE // decode the url
  1457. ,PARSE_PATH_FROM_URL // get the path if apply
  1458. ,PARSE_URL_FROM_PATH // create a url from the path
  1459. ,PARSE_MIME // return mime of this url
  1460. ,PARSE_SERVER // return server
  1461. ,PARSE_SCHEMA
  1462. ,PARSE_SITE
  1463. ,PARSE_DOMAIN
  1464. ,PARSE_LOCATION
  1465. ,PARSE_SECURITY_DOMAIN // returns the canonical security form of the URL.
  1466. ,PARSE_ESCAPE // encode the url
  1467. ,PARSE_UNESCAPE // decode the url
  1468. } PARSEACTION;
  1469. // Actions for CoInternetGetSecurityURL function.
  1470. typedef enum _tagPSUACTION
  1471. {
  1472. PSU_DEFAULT = 1 // gets security URL and returns its domain.
  1473. ,PSU_SECURITY_URL_ONLY // gets just the security URL
  1474. } PSUACTION;
  1475. //
  1476. // Query options - needs more work on possible options
  1477. //
  1478. typedef enum _tagQUERYOPTION
  1479. {
  1480. QUERY_EXPIRATION_DATE = 1 // the expiration date in form of systemtime
  1481. ,QUERY_TIME_OF_LAST_CHANGE // time of last change in form of systemtime
  1482. ,QUERY_CONTENT_ENCODING // the content concoding schema
  1483. ,QUERY_CONTENT_TYPE // the content type header (mime and charset)
  1484. ,QUERY_REFRESH // the refresh
  1485. ,QUERY_RECOMBINE // combine the page URL with the nearest base if TRUE
  1486. ,QUERY_CAN_NAVIGATE // does the protocol navigate (unlike mailto)
  1487. ,QUERY_USES_NETWORK // will URL hit network
  1488. ,QUERY_IS_CACHED // is data cached locally?
  1489. ,QUERY_IS_INSTALLEDENTRY // Is the entry installed locally (on cdrom)
  1490. ,QUERY_IS_CACHED_OR_MAPPED // is the entry in cache or is it on a mapped drive
  1491. // It may be mapped but may not actually be present
  1492. ,QUERY_USES_CACHE // does the protocol use the internet cache
  1493. ,QUERY_IS_SECURE // is the protocol encrypted
  1494. ,QUERY_IS_SAFE // the protocol serves only trusted (e.g. local resource) content
  1495. } QUERYOPTION;
  1496. //
  1497. // returns:
  1498. // S_OK on success
  1499. // S_FALSE on success but buffer is too small
  1500. // INET_E_DEFAULT_ACTION if action is not know should be handled be default implementation
  1501. //
  1502. HRESULT ParseUrl(
  1503. [in] LPCWSTR pwzUrl,
  1504. [in] PARSEACTION ParseAction,
  1505. [in] DWORD dwParseFlags,
  1506. [out] LPWSTR pwzResult,
  1507. [in] DWORD cchResult,
  1508. [out] DWORD *pcchResult,
  1509. [in] DWORD dwReserved
  1510. );
  1511. //
  1512. // returns:
  1513. // S_OK on success
  1514. // S_FALSE on success but buffer is too small
  1515. // INET_E_DEFAULT_ACTION if action is not know should be handled be default implementation
  1516. //
  1517. HRESULT CombineUrl(
  1518. [in] LPCWSTR pwzBaseUrl,
  1519. [in] LPCWSTR pwzRelativeUrl,
  1520. [in] DWORD dwCombineFlags,
  1521. [out] LPWSTR pwzResult,
  1522. [in] DWORD cchResult,
  1523. [out] DWORD *pcchResult,
  1524. [in] DWORD dwReserved
  1525. );
  1526. //
  1527. // returns:
  1528. // S_OK if equal
  1529. // S_FALSE otherwise
  1530. //
  1531. HRESULT CompareUrl(
  1532. [in] LPCWSTR pwzUrl1,
  1533. [in] LPCWSTR pwzUrl2,
  1534. [in] DWORD dwCompareFlags
  1535. );
  1536. //
  1537. // returns:
  1538. // S_OK on success
  1539. // S_FALSE on success but buffer is too small
  1540. // INET_E_QUERYOPTION_UNKNOWN
  1541. //
  1542. HRESULT QueryInfo(
  1543. [in] LPCWSTR pwzUrl,
  1544. [in] QUERYOPTION OueryOption,
  1545. [in] DWORD dwQueryFlags,
  1546. [in, out,size_is(*pcbBuf)] LPVOID pBuffer,
  1547. [in] DWORD cbBuffer,
  1548. [in, out] DWORD *pcbBuf,
  1549. [in] DWORD dwReserved
  1550. );
  1551. }
  1552. cpp_quote("#endif")
  1553. //
  1554. // compatablility defines
  1555. //
  1556. cpp_quote("#define IOInet IInternet ")
  1557. cpp_quote("#define IOInetBindInfo IInternetBindInfo ")
  1558. cpp_quote("#define IOInetProtocolRoot IInternetProtocolRoot")
  1559. cpp_quote("#define IOInetProtocol IInternetProtocol ")
  1560. cpp_quote("#define IOInetProtocolSink IInternetProtocolSink")
  1561. cpp_quote("#define IOInetProtocolInfo IInternetProtocolInfo")
  1562. cpp_quote("#define IOInetSession IInternetSession ")
  1563. cpp_quote("#define IOInetPriority IInternetPriority ")
  1564. cpp_quote("#define IOInetThreadSwitch IInternetThreadSwitch")
  1565. cpp_quote("#define IOInetProtocolSinkStackable IInternetProtocolSinkStackable")
  1566. cpp_quote("#define LPOINET LPIINTERNET ")
  1567. cpp_quote("#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO ")
  1568. cpp_quote("#define LPOINETBINDINFO LPIINTERNETBINDINFO ")
  1569. cpp_quote("#define LPOINETPROTOCOLROOT LPIINTERNETPROTOCOLROOT ")
  1570. cpp_quote("#define LPOINETPROTOCOL LPIINTERNETPROTOCOL ")
  1571. cpp_quote("#define LPOINETPROTOCOLSINK LPIINTERNETPROTOCOLSINK ")
  1572. cpp_quote("#define LPOINETSESSION LPIINTERNETSESSION ")
  1573. cpp_quote("#define LPOINETTHREADSWITCH LPIINTERNETTHREADSWITCH ")
  1574. cpp_quote("#define LPOINETPRIORITY LPIINTERNETPRIORITY ")
  1575. cpp_quote("#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO ")
  1576. cpp_quote("#define LPOINETPROTOCOLSINKSTACKABLE LPIINTERNETPROTOCOLSINKSTACKABLE ")
  1577. cpp_quote("#define IID_IOInet IID_IInternet ")
  1578. cpp_quote("#define IID_IOInetBindInfo IID_IInternetBindInfo ")
  1579. cpp_quote("#define IID_IOInetProtocolRoot IID_IInternetProtocolRoot")
  1580. cpp_quote("#define IID_IOInetProtocol IID_IInternetProtocol ")
  1581. cpp_quote("#define IID_IOInetProtocolSink IID_IInternetProtocolSink")
  1582. cpp_quote("#define IID_IOInetProtocolInfo IID_IInternetProtocolInfo")
  1583. cpp_quote("#define IID_IOInetSession IID_IInternetSession ")
  1584. cpp_quote("#define IID_IOInetPriority IID_IInternetPriority ")
  1585. cpp_quote("#define IID_IOInetThreadSwitch IID_IInternetThreadSwitch")
  1586. cpp_quote("#define IID_IOInetProtocolSinkStackable IID_IInternetProtocolSinkStackable")
  1587. //
  1588. // OInet helper functions for url parsing
  1589. //
  1590. #pragma midl_echo("STDAPI CoInternetParseUrl( ")
  1591. #pragma midl_echo(" LPCWSTR pwzUrl, ")
  1592. #pragma midl_echo(" PARSEACTION ParseAction, ")
  1593. #pragma midl_echo(" DWORD dwFlags, ")
  1594. #pragma midl_echo(" LPWSTR pszResult, ")
  1595. #pragma midl_echo(" DWORD cchResult, ")
  1596. #pragma midl_echo(" DWORD *pcchResult, ")
  1597. #pragma midl_echo(" DWORD dwReserved ")
  1598. #pragma midl_echo(" ); ")
  1599. #pragma midl_echo("STDAPI CoInternetCombineUrl( ")
  1600. #pragma midl_echo(" LPCWSTR pwzBaseUrl, ")
  1601. #pragma midl_echo(" LPCWSTR pwzRelativeUrl, ")
  1602. #pragma midl_echo(" DWORD dwCombineFlags, ")
  1603. #pragma midl_echo(" LPWSTR pszResult, ")
  1604. #pragma midl_echo(" DWORD cchResult, ")
  1605. #pragma midl_echo(" DWORD *pcchResult, ")
  1606. #pragma midl_echo(" DWORD dwReserved ")
  1607. #pragma midl_echo(" ); ")
  1608. #pragma midl_echo("STDAPI CoInternetCompareUrl( ")
  1609. #pragma midl_echo(" LPCWSTR pwzUrl1, ")
  1610. #pragma midl_echo(" LPCWSTR pwzUrl2, ")
  1611. #pragma midl_echo(" DWORD dwFlags ")
  1612. #pragma midl_echo(" ); ")
  1613. #pragma midl_echo("STDAPI CoInternetGetProtocolFlags( ")
  1614. #pragma midl_echo(" LPCWSTR pwzUrl, ")
  1615. #pragma midl_echo(" DWORD *pdwFlags, ")
  1616. #pragma midl_echo(" DWORD dwReserved ")
  1617. #pragma midl_echo(" ); ")
  1618. #pragma midl_echo("STDAPI CoInternetQueryInfo( ")
  1619. #pragma midl_echo(" LPCWSTR pwzUrl, ")
  1620. #pragma midl_echo(" QUERYOPTION QueryOptions, ")
  1621. #pragma midl_echo(" DWORD dwQueryFlags, ")
  1622. #pragma midl_echo(" LPVOID pvBuffer, ")
  1623. #pragma midl_echo(" DWORD cbBuffer, ")
  1624. #pragma midl_echo(" DWORD *pcbBuffer, ")
  1625. #pragma midl_echo(" DWORD dwReserved ")
  1626. #pragma midl_echo(" ); ")
  1627. #pragma midl_echo("STDAPI CoInternetGetSession( ")
  1628. #pragma midl_echo(" DWORD dwSessionMode, ")
  1629. #pragma midl_echo(" IInternetSession **ppIInternetSession,")
  1630. #pragma midl_echo(" DWORD dwReserved ")
  1631. #pragma midl_echo(" ); ")
  1632. #pragma midl_echo("STDAPI CoInternetGetSecurityUrl( ")
  1633. #pragma midl_echo(" LPCWSTR pwzUrl, ")
  1634. #pragma midl_echo(" LPWSTR *ppwzSecUrl, ")
  1635. #pragma midl_echo(" PSUACTION psuAction, ")
  1636. #pragma midl_echo(" DWORD dwReserved ")
  1637. #pragma midl_echo(" ); ")
  1638. #pragma midl_echo("STDAPI AsyncInstallDistributionUnit( ")
  1639. #pragma midl_echo(" LPCWSTR szDistUnit, ")
  1640. #pragma midl_echo(" LPCWSTR szTYPE, ")
  1641. #pragma midl_echo(" LPCWSTR szExt, ")
  1642. #pragma midl_echo(" DWORD dwFileVersionMS, ")
  1643. #pragma midl_echo(" DWORD dwFileVersionLS, ")
  1644. #pragma midl_echo(" LPCWSTR szURL, ")
  1645. #pragma midl_echo(" IBindCtx *pbc, ")
  1646. #pragma midl_echo(" LPVOID pvReserved, ")
  1647. #pragma midl_echo(" DWORD flags ")
  1648. #pragma midl_echo(" ); ")
  1649. //
  1650. // Feature options, primarily for Springboard
  1651. //
  1652. cpp_quote("#ifndef _INTERNETFEATURELIST_DEFINED")
  1653. cpp_quote("#define _INTERNETFEATURELIST_DEFINED")
  1654. typedef enum _tagINTERNETFEATURELIST
  1655. {
  1656. FEATURE_OBJECT_CACHING = 0,
  1657. FEATURE_ZONE_ELEVATION,
  1658. FEATURE_MIME_HANDLING,
  1659. FEATURE_MIME_SNIFFING,
  1660. FEATURE_WINDOW_RESTRICTIONS,
  1661. FEATURE_WEBOC_POPUPMANAGEMENT,
  1662. FEATURE_BEHAVIORS,
  1663. FEATURE_DISABLE_MK_PROTOCOL,
  1664. FEATURE_LOCALMACHINE_LOCKDOWN,
  1665. FEATURE_SECURITYBAND,
  1666. FEATURE_RESTRICT_ACTIVEXINSTALL,
  1667. FEATURE_VALIDATE_NAVIGATE_URL,
  1668. FEATURE_RESTRICT_FILEDOWNLOAD,
  1669. FEATURE_ADDON_MANAGEMENT,
  1670. FEATURE_PROTOCOL_LOCKDOWN,
  1671. FEATURE_HTTP_USERNAME_PASSWORD_DISABLE,
  1672. FEATURE_SAFE_BINDTOOBJECT,
  1673. FEATURE_UNC_SAVEDFILECHECK,
  1674. FEATURE_GET_URL_DOM_FILEPATH_UNENCODED,
  1675. FEATURE_ENTRY_COUNT, // This should be the last item
  1676. } INTERNETFEATURELIST;
  1677. cpp_quote("")
  1678. cpp_quote("// CoInternetSetFeatureEnabled can be used to set/reset features. ")
  1679. cpp_quote("// The following flags control where the feature is set")
  1680. cpp_quote("")
  1681. cpp_quote("#define SET_FEATURE_ON_THREAD 0x00000001")
  1682. cpp_quote("#define SET_FEATURE_ON_PROCESS 0x00000002")
  1683. cpp_quote("#define SET_FEATURE_IN_REGISTRY 0x00000004")
  1684. cpp_quote("#define SET_FEATURE_ON_THREAD_LOCALMACHINE 0x00000008")
  1685. cpp_quote("#define SET_FEATURE_ON_THREAD_INTRANET 0x00000010")
  1686. cpp_quote("#define SET_FEATURE_ON_THREAD_TRUSTED 0x00000020")
  1687. cpp_quote("#define SET_FEATURE_ON_THREAD_INTERNET 0x00000040")
  1688. cpp_quote("#define SET_FEATURE_ON_THREAD_RESTRICTED 0x00000080")
  1689. cpp_quote("")
  1690. cpp_quote("// CoInternetIsFeatureEnabled can be used to get features. ")
  1691. cpp_quote("// The following flags control where the feature is obtained from")
  1692. cpp_quote("// default is from process")
  1693. cpp_quote("")
  1694. cpp_quote("#define GET_FEATURE_FROM_THREAD 0x00000001")
  1695. cpp_quote("#define GET_FEATURE_FROM_PROCESS 0x00000002")
  1696. cpp_quote("#define GET_FEATURE_FROM_REGISTRY 0x00000004")
  1697. cpp_quote("#define GET_FEATURE_FROM_THREAD_LOCALMACHINE 0x00000008")
  1698. cpp_quote("#define GET_FEATURE_FROM_THREAD_INTRANET 0x00000010")
  1699. cpp_quote("#define GET_FEATURE_FROM_THREAD_TRUSTED 0x00000020")
  1700. cpp_quote("#define GET_FEATURE_FROM_THREAD_INTERNET 0x00000040")
  1701. cpp_quote("#define GET_FEATURE_FROM_THREAD_RESTRICTED 0x00000080")
  1702. cpp_quote("#endif")
  1703. //
  1704. // OInet helper functions for looking up if features are enabled
  1705. //
  1706. #pragma midl_echo("STDAPI CoInternetSetFeatureEnabled( ")
  1707. #pragma midl_echo(" INTERNETFEATURELIST FeatureEntry, ")
  1708. #pragma midl_echo(" DWORD dwFlags, ")
  1709. #pragma midl_echo(" BOOL fEnable ")
  1710. #pragma midl_echo(" ); ")
  1711. #pragma midl_echo("STDAPI CoInternetIsFeatureEnabled( ")
  1712. #pragma midl_echo(" INTERNETFEATURELIST FeatureEntry, ")
  1713. #pragma midl_echo(" DWORD dwFlags ")
  1714. #pragma midl_echo(" ); ")
  1715. #pragma midl_echo("STDAPI CoInternetIsFeatureEnabledForUrl( ")
  1716. #pragma midl_echo(" INTERNETFEATURELIST FeatureEntry, ")
  1717. #pragma midl_echo(" DWORD dwFlags, ")
  1718. #pragma midl_echo(" LPCWSTR szURL, ")
  1719. #pragma midl_echo(" IInternetSecurityManager *pSecMgr ")
  1720. #pragma midl_echo(" ); ")
  1721. #pragma midl_echo("STDAPI CoInternetIsFeatureZoneElevationEnabled( ")
  1722. #pragma midl_echo(" LPCWSTR szFromURL, ")
  1723. #pragma midl_echo(" LPCWSTR szToURL, ")
  1724. #pragma midl_echo(" IInternetSecurityManager *pSecMgr, ")
  1725. #pragma midl_echo(" DWORD dwFlags ")
  1726. #pragma midl_echo(" ); ")
  1727. //
  1728. // STGMEDIUMs and BINDINFO helper utils
  1729. //
  1730. #pragma midl_echo(" ")
  1731. #pragma midl_echo("STDAPI CopyStgMedium(const STGMEDIUM * pcstgmedSrc, ")
  1732. #pragma midl_echo(" STGMEDIUM * pstgmedDest); ")
  1733. #pragma midl_echo("STDAPI CopyBindInfo( const BINDINFO * pcbiSrc, ")
  1734. #pragma midl_echo(" BINDINFO * pbiDest ); ")
  1735. #pragma midl_echo("STDAPI_(void) ReleaseBindInfo( BINDINFO * pbindinfo ); ")
  1736. #pragma midl_echo(" ")
  1737. cpp_quote("#define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011L) ")
  1738. cpp_quote("#define INET_E_USE_DEFAULT_SETTING _HRESULT_TYPEDEF_(0x800C0012L) ")
  1739. cpp_quote("#define INET_E_DEFAULT_ACTION INET_E_USE_DEFAULT_PROTOCOLHANDLER ")
  1740. cpp_quote("#define INET_E_QUERYOPTION_UNKNOWN _HRESULT_TYPEDEF_(0x800C0013L) ")
  1741. cpp_quote("#define INET_E_REDIRECTING _HRESULT_TYPEDEF_(0x800C0014L) ")
  1742. cpp_quote("#define OInetParseUrl CoInternetParseUrl ")
  1743. cpp_quote("#define OInetCombineUrl CoInternetCombineUrl ")
  1744. cpp_quote("#define OInetCompareUrl CoInternetCompareUrl ")
  1745. cpp_quote("#define OInetQueryInfo CoInternetQueryInfo ")
  1746. cpp_quote("#define OInetGetSession CoInternetGetSession ")
  1747. #pragma midl_echo("#endif // !_URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_ ")
  1748. cpp_quote("//")
  1749. cpp_quote("// Static Protocol flags")
  1750. cpp_quote("//")
  1751. cpp_quote("#define PROTOCOLFLAG_NO_PICS_CHECK 0x00000001")
  1752. cpp_quote("")
  1753. cpp_quote("// Creates the security manager object. The first argument is the Service provider")
  1754. cpp_quote("// to allow for delegation")
  1755. cpp_quote("STDAPI CoInternetCreateSecurityManager(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved);")
  1756. cpp_quote("")
  1757. cpp_quote("STDAPI CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved);")
  1758. cpp_quote("")
  1759. cpp_quote("")
  1760. cpp_quote("// Security manager CLSID's")
  1761. cpp_quote("EXTERN_C const IID CLSID_InternetSecurityManager; ")
  1762. cpp_quote("EXTERN_C const IID CLSID_InternetZoneManager; ")
  1763. cpp_quote("EXTERN_C const IID CLSID_PersistentZoneIdentifier; ")
  1764. cpp_quote("// This service is used for delegation support on the Security Manager interface")
  1765. cpp_quote("#define SID_SInternetSecurityManager IID_IInternetSecurityManager")
  1766. cpp_quote("")
  1767. cpp_quote("#define SID_SInternetSecurityManagerEx IID_IInternetSecurityManagerEx")
  1768. cpp_quote("")
  1769. cpp_quote("#define SID_SInternetHostSecurityManager IID_IInternetHostSecurityManager")
  1770. cpp_quote("")
  1771. cpp_quote("#ifndef _LPINTERNETSECURITYMGRSITE_DEFINED")
  1772. cpp_quote("#define _LPINTERNETSECURITYMGRSITE_DEFINED")
  1773. [
  1774. local,
  1775. object,
  1776. uuid(79eac9ed-baf9-11ce-8c82-00aa004ba90b),
  1777. helpstring("IInternetSecurityMgrSite Interface"),
  1778. pointer_default(unique)
  1779. ]
  1780. interface IInternetSecurityMgrSite : IUnknown
  1781. {
  1782. HRESULT GetWindow (
  1783. [out] HWND* phwnd);
  1784. HRESULT EnableModeless (
  1785. [in] BOOL fEnable);
  1786. };
  1787. cpp_quote("#endif")
  1788. cpp_quote("#ifndef _LPINTERNETSECURITYMANANGEREX_DEFINED")
  1789. cpp_quote("#define _LPINTERNETSECURITYMANANGEREX_DEFINED")
  1790. [
  1791. uuid(F164EDF1-CC7C-4f0d-9A94-34222625C393),
  1792. helpstring("IInternetSecurityManagerEx Interface"),
  1793. pointer_default(unique)
  1794. ]
  1795. interface IInternetSecurityManagerEx : IInternetSecurityManager
  1796. {
  1797. HRESULT ProcessUrlActionEx
  1798. (
  1799. [in] LPCWSTR pwszUrl,
  1800. [in] DWORD dwAction,
  1801. [out, size_is(cbPolicy)]
  1802. BYTE* pPolicy, // output buffer pointer
  1803. [in] DWORD cbPolicy, // output buffer size
  1804. [in] BYTE* pContext, // context (used by the delegation routines)
  1805. [in] DWORD cbContext, // size of the Context
  1806. [in] DWORD dwFlags, // See enum PUAF for details.
  1807. [in] DWORD dwReserved,
  1808. [out] DWORD *pdwOutFlags //See enum PUAF for details
  1809. );
  1810. cpp_quote("// This is the wrapper function that most clients will use.")
  1811. cpp_quote("// It figures out the current Policy for the passed in Action,")
  1812. cpp_quote("// and puts up UI if the current Policy indicates that the user")
  1813. cpp_quote("// should be queried. It returns back the Policy which the caller")
  1814. cpp_quote("// will use to determine if the action should be allowed")
  1815. }
  1816. cpp_quote("#endif")
  1817. cpp_quote("#ifndef _LPINTERNETSECURITYMANANGER_DEFINED")
  1818. cpp_quote("#define _LPINTERNETSECURITYMANANGER_DEFINED")
  1819. [
  1820. uuid(79eac9ee-baf9-11ce-8c82-00aa004ba90b),
  1821. helpstring("IInternetSecurityManager Interface"),
  1822. pointer_default(unique)
  1823. ]
  1824. interface IInternetSecurityManager : IUnknown
  1825. {
  1826. HRESULT SetSecuritySite
  1827. (
  1828. [in,unique] IInternetSecurityMgrSite *pSite
  1829. );
  1830. HRESULT GetSecuritySite
  1831. (
  1832. [out] IInternetSecurityMgrSite **ppSite
  1833. );
  1834. cpp_quote("#define MUTZ_NOSAVEDFILECHECK 0x00000001 // don't check file: for saved file comment")
  1835. cpp_quote("#define MUTZ_ISFILE 0x00000002 // Assume URL if File, url does not need file://")
  1836. cpp_quote("#define MUTZ_ACCEPT_WILDCARD_SCHEME 0x00000080 // Accept a wildcard scheme")
  1837. cpp_quote("#define MUTZ_ENFORCERESTRICTED 0x00000100 // enforce restricted zone independent of URL")
  1838. cpp_quote("#define MUTZ_REQUIRESAVEDFILECHECK 0x00000400 // always check the file for MOTW (overriding FEATURE_UNC_SAVEDFILECHECK)")
  1839. HRESULT MapUrlToZone
  1840. (
  1841. [in] LPCWSTR pwszUrl,
  1842. [out] DWORD* pdwZone,
  1843. [in] DWORD dwFlags
  1844. );
  1845. cpp_quote("// MapUrlToZone returns the zone index given a URL")
  1846. cpp_quote("#define MAX_SIZE_SECURITY_ID 512 // bytes")
  1847. HRESULT GetSecurityId
  1848. (
  1849. [in] LPCWSTR pwszUrl,
  1850. [out, size_is(*pcbSecurityId)]
  1851. BYTE* pbSecurityId,
  1852. [in, out]
  1853. DWORD* pcbSecurityId,
  1854. [in] DWORD_PTR dwReserved
  1855. );
  1856. // Flags passed into ProcessUrlAction.
  1857. typedef enum
  1858. {
  1859. PUAF_DEFAULT = 0x00000000,
  1860. PUAF_NOUI = 0x00000001,
  1861. PUAF_ISFILE = 0x00000002, // Assume URL if File, url does not need file://
  1862. PUAF_WARN_IF_DENIED = 0x00000004,
  1863. PUAF_FORCEUI_FOREGROUND = 0x00000008,
  1864. PUAF_CHECK_TIFS = 0x00000010,
  1865. PUAF_DONTCHECKBOXINDIALOG = 0x00000020,
  1866. PUAF_TRUSTED = 0x00000040,
  1867. PUAF_ACCEPT_WILDCARD_SCHEME = 0x00000080,
  1868. PUAF_ENFORCERESTRICTED = 0x00000100,
  1869. PUAF_NOSAVEDFILECHECK = 0x00000200, // don't check file: for saved comment
  1870. PUAF_REQUIRESAVEDFILECHECK = 0x00000400, // always check the file for MOTW (overriding FEATURE_UNC_SAVEDFILECHECK)
  1871. PUAF_LMZ_UNLOCKED = 0x00010000, // flag to retrieve local machine policies when LMZL is on
  1872. PUAF_LMZ_LOCKED = 0x00020000, // flag to force retrieving locked down local machine policies when LMZL is on
  1873. PUAF_DEFAULTZONEPOL = 0x00040000, // flag to retrieve Default Security Zone policies when NPL is on
  1874. PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 0x00080000, // flag to tell urlmon that trident wants to use locked zones if needed.
  1875. PUAF_NOUIIFLOCKED = 0x00100000 // flag to turn off UI if Urlmon figures it is using the locked zone.
  1876. } PUAF ;
  1877. typedef enum
  1878. {
  1879. PUAFOUT_DEFAULT = 0x00000000,
  1880. PUAFOUT_ISLOCKZONEPOLICY = 0x00000001
  1881. } PUAFOUT ;
  1882. HRESULT ProcessUrlAction
  1883. (
  1884. [in] LPCWSTR pwszUrl,
  1885. [in] DWORD dwAction,
  1886. [out, size_is(cbPolicy)]
  1887. BYTE* pPolicy, // output buffer pointer
  1888. [in] DWORD cbPolicy, // output buffer size
  1889. [in] BYTE* pContext, // context (used by the delegation routines)
  1890. [in] DWORD cbContext, // size of the Context
  1891. [in] DWORD dwFlags, // See enum PUAF for details.
  1892. [in] DWORD dwReserved
  1893. );
  1894. cpp_quote("// This is the wrapper function that most clients will use.")
  1895. cpp_quote("// It figures out the current Policy for the passed in Action,")
  1896. cpp_quote("// and puts up UI if the current Policy indicates that the user")
  1897. cpp_quote("// should be queried. It returns back the Policy which the caller")
  1898. cpp_quote("// will use to determine if the action should be allowed")
  1899. HRESULT QueryCustomPolicy
  1900. (
  1901. [in] LPCWSTR pwszUrl,
  1902. [in] REFGUID guidKey,
  1903. [out, size_is(,*pcbPolicy)] // allocation via IMemAlloc; caller frees
  1904. BYTE** ppPolicy, // pointer to output buffer pointer
  1905. [out] DWORD* pcbPolicy, // pointer to output buffer size
  1906. [in] BYTE* pContext, // context (used by the delegation routines)
  1907. [in] DWORD cbContext, // size of the Context
  1908. [in] DWORD dwReserved
  1909. );
  1910. cpp_quote("// This is the wrapper function to conveniently read a custom policy.")
  1911. // create/enumerate mappings
  1912. typedef enum
  1913. {
  1914. SZM_CREATE = 0x00000000, // create new mapping, error's if mapping already exists.
  1915. SZM_DELETE = 0x00000001, // delete the mapping
  1916. }
  1917. SZM_FLAGS;
  1918. HRESULT SetZoneMapping
  1919. (
  1920. [in] DWORD dwZone, // absolute zone index
  1921. [in] LPCWSTR lpszPattern, // URL pattern with limited wildcarding
  1922. [in] DWORD dwFlags // add, change, delete
  1923. );
  1924. cpp_quote("// SetZoneMapping")
  1925. cpp_quote("// lpszPattern: string denoting a URL pattern")
  1926. cpp_quote("// Examples of valid patterns: ")
  1927. cpp_quote("// *://*.msn.com ")
  1928. cpp_quote("// http://*.sony.co.jp ")
  1929. cpp_quote("// *://et.msn.com ")
  1930. cpp_quote("// ftp://157.54.23.41/ ")
  1931. cpp_quote("// https://localsvr ")
  1932. cpp_quote("// file:\\localsvr\share ")
  1933. cpp_quote("// *://157.54.100-200.* ")
  1934. cpp_quote("// Examples of invalid patterns: ")
  1935. cpp_quote("// http://*.lcs.mit.edu ")
  1936. cpp_quote("// ftp://* ")
  1937. cpp_quote("// dwFlags: SZM_FLAGS values ")
  1938. HRESULT GetZoneMappings
  1939. (
  1940. [in] DWORD dwZone, // absolute zone index
  1941. [out] IEnumString **ppenumString, // output buffer size
  1942. [in] DWORD dwFlags // reserved, pass 0
  1943. );
  1944. // Returns an enumerator of strings for the mappings of a zone.
  1945. // dwFlags is for future use; pass in 0.
  1946. };
  1947. // implmented by CLSID_ PersistentZoneIdentifier (along with IPersistFile)
  1948. // to access or change the Zone attached to a local file
  1949. [
  1950. local,
  1951. object,
  1952. uuid(cd45f185-1b21-48e2-967b-ead743a8914e),
  1953. pointer_default(unique)
  1954. ]
  1955. interface IZoneIdentifier : IUnknown
  1956. {
  1957. HRESULT GetId([out] DWORD *pdwZone);
  1958. HRESULT SetId([in] DWORD dwZone);
  1959. HRESULT Remove();
  1960. };
  1961. cpp_quote("#endif")
  1962. cpp_quote("#ifndef _LPINTERNETHOSTSECURITYMANANGER_DEFINED")
  1963. cpp_quote("#define _LPINTERNETHOSTSECURITYMANANGER_DEFINED")
  1964. cpp_quote("//This is the interface MSHTML exposes to its clients")
  1965. cpp_quote("//The clients need not pass in a URL to these functions")
  1966. cpp_quote("//since MSHTML maintains the notion of the current URL")
  1967. [
  1968. local,
  1969. object,
  1970. uuid(3af280b6-cb3f-11d0-891e-00c04fb6bfc4),
  1971. helpstring("IInternetHostSecurityManager Interface"),
  1972. pointer_default(unique)
  1973. ]
  1974. interface IInternetHostSecurityManager : IUnknown
  1975. {
  1976. HRESULT GetSecurityId
  1977. (
  1978. [out, size_is(*pcbSecurityId)]
  1979. BYTE* pbSecurityId,
  1980. [in, out]
  1981. DWORD* pcbSecurityId,
  1982. [in] DWORD_PTR dwReserved
  1983. );
  1984. HRESULT ProcessUrlAction
  1985. (
  1986. [in] DWORD dwAction,
  1987. [out, size_is(cbPolicy)]
  1988. BYTE* pPolicy, // output buffer pointer
  1989. [in] DWORD cbPolicy, // output buffer size
  1990. [in] BYTE* pContext, // context (used by the delegation routines)
  1991. [in] DWORD cbContext, // size of the Context
  1992. [in] DWORD dwFlags, // See enum PUAF for details.
  1993. [in] DWORD dwReserved
  1994. );
  1995. HRESULT QueryCustomPolicy
  1996. (
  1997. [in] REFGUID guidKey,
  1998. [out, size_is(,*pcbPolicy)] // allocation via IMemAlloc; caller frees
  1999. BYTE** ppPolicy, // pointer to output buffer pointer
  2000. [out] DWORD* pcbPolicy, // pointer to output buffer size
  2001. [in] BYTE* pContext, // context (used by the delegation routines)
  2002. [in] DWORD cbContext, // size of the Context
  2003. [in] DWORD dwReserved
  2004. );
  2005. };
  2006. cpp_quote("#endif")
  2007. cpp_quote("")
  2008. cpp_quote("// The zone manager maintains policies for a set of standard actions. ")
  2009. cpp_quote("// These actions are identified by integral values (called action indexes)")
  2010. cpp_quote("// specified below.")
  2011. cpp_quote("")
  2012. cpp_quote("// Minimum legal value for an action ")
  2013. cpp_quote("#define URLACTION_MIN 0x00001000")
  2014. cpp_quote("")
  2015. cpp_quote("#define URLACTION_DOWNLOAD_MIN 0x00001000")
  2016. cpp_quote("#define URLACTION_DOWNLOAD_SIGNED_ACTIVEX 0x00001001")
  2017. cpp_quote("#define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX 0x00001004")
  2018. cpp_quote("#define URLACTION_DOWNLOAD_CURR_MAX 0x00001004")
  2019. cpp_quote("#define URLACTION_DOWNLOAD_MAX 0x000011FF")
  2020. cpp_quote("")
  2021. cpp_quote("#define URLACTION_ACTIVEX_MIN 0x00001200")
  2022. cpp_quote("#define URLACTION_ACTIVEX_RUN 0x00001200")
  2023. cpp_quote("#define URLPOLICY_ACTIVEX_CHECK_LIST 0x00010000")
  2024. cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY 0x00001201 // aggregate next four")
  2025. cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY 0x00001202 //")
  2026. cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY 0x00001203 //")
  2027. cpp_quote("#define URLACTION_SCRIPT_OVERRIDE_SAFETY 0x00001401 //")
  2028. cpp_quote("#define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY 0x00001204 //")
  2029. cpp_quote("#define URLACTION_ACTIVEX_TREATASUNTRUSTED 0x00001205")
  2030. cpp_quote("#define URLACTION_ACTIVEX_NO_WEBOC_SCRIPT 0x00001206")
  2031. cpp_quote("#define URLACTION_ACTIVEX_CURR_MAX 0x00001206")
  2032. cpp_quote("#define URLACTION_ACTIVEX_MAX 0x000013ff")
  2033. cpp_quote("")
  2034. cpp_quote("#define URLACTION_SCRIPT_MIN 0x00001400")
  2035. cpp_quote("#define URLACTION_SCRIPT_RUN 0x00001400")
  2036. cpp_quote("#define URLACTION_SCRIPT_JAVA_USE 0x00001402")
  2037. cpp_quote("#define URLACTION_SCRIPT_SAFE_ACTIVEX 0x00001405")
  2038. cpp_quote("#define URLACTION_CROSS_DOMAIN_DATA 0x00001406")
  2039. cpp_quote("#define URLACTION_SCRIPT_PASTE 0x00001407")
  2040. cpp_quote("#define URLACTION_SCRIPT_CURR_MAX 0x00001407")
  2041. cpp_quote("#define URLACTION_SCRIPT_MAX 0x000015ff")
  2042. cpp_quote("")
  2043. cpp_quote("#define URLACTION_HTML_MIN 0x00001600")
  2044. cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS 0x00001601 // aggregate next two")
  2045. cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS_FROM 0x00001602 //")
  2046. cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS_TO 0x00001603 //")
  2047. cpp_quote("#define URLACTION_HTML_FONT_DOWNLOAD 0x00001604")
  2048. cpp_quote("#define URLACTION_HTML_JAVA_RUN 0x00001605 // derive from Java custom policy")
  2049. cpp_quote("#define URLACTION_HTML_USERDATA_SAVE 0x00001606")
  2050. cpp_quote("#define URLACTION_HTML_SUBFRAME_NAVIGATE 0x00001607")
  2051. cpp_quote("#define URLACTION_HTML_META_REFRESH 0x00001608")
  2052. cpp_quote("#define URLACTION_HTML_MIXED_CONTENT 0x00001609")
  2053. //cpp_quote("#define URLACTION_HTML_CURR_MAX 0x00001609")
  2054. cpp_quote("#define URLACTION_HTML_MAX 0x000017ff")
  2055. cpp_quote("")
  2056. cpp_quote("#define URLACTION_SHELL_MIN 0x00001800")
  2057. cpp_quote("#define URLACTION_SHELL_INSTALL_DTITEMS 0x00001800")
  2058. cpp_quote("#define URLACTION_SHELL_MOVE_OR_COPY 0x00001802")
  2059. cpp_quote("#define URLACTION_SHELL_FILE_DOWNLOAD 0x00001803")
  2060. cpp_quote("#define URLACTION_SHELL_VERB 0x00001804")
  2061. cpp_quote("#define URLACTION_SHELL_WEBVIEW_VERB 0x00001805")
  2062. cpp_quote("#define URLACTION_SHELL_SHELLEXECUTE 0x00001806")
  2063. // URLACTION_SHELL_SHELLEXECUTE and URLACTION_SHELL_EXECUTE_HIGHRISK are deliberately the same value
  2064. cpp_quote("#define URLACTION_SHELL_EXECUTE_HIGHRISK 0x00001806")
  2065. cpp_quote("#define URLACTION_SHELL_EXECUTE_MODRISK 0x00001807")
  2066. cpp_quote("#define URLACTION_SHELL_EXECUTE_LOWRISK 0x00001808")
  2067. cpp_quote("#define URLACTION_SHELL_POPUPMGR 0x00001809")
  2068. cpp_quote("#define URLACTION_SHELL_CURR_MAX 0x00001809")
  2069. cpp_quote("#define URLACTION_SHELL_MAX 0x000019ff")
  2070. cpp_quote("")
  2071. cpp_quote("#define URLACTION_NETWORK_MIN 0x00001A00")
  2072. cpp_quote("")
  2073. cpp_quote("#define URLACTION_CREDENTIALS_USE 0x00001A00")
  2074. cpp_quote("#define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK 0x00000000")
  2075. cpp_quote("#define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER 0x00010000")
  2076. cpp_quote("#define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT 0x00020000")
  2077. cpp_quote("#define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY 0x00030000")
  2078. cpp_quote("")
  2079. cpp_quote("#define URLACTION_AUTHENTICATE_CLIENT 0x00001A01")
  2080. cpp_quote("#define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK 0x00000000")
  2081. cpp_quote("#define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE 0x00010000")
  2082. cpp_quote("#define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY 0x00030000")
  2083. cpp_quote("")
  2084. cpp_quote("")
  2085. cpp_quote("#define URLACTION_COOKIES 0x00001A02")
  2086. cpp_quote("#define URLACTION_COOKIES_SESSION 0x00001A03")
  2087. cpp_quote("")
  2088. cpp_quote("#define URLACTION_CLIENT_CERT_PROMPT 0x00001A04")
  2089. cpp_quote("")
  2090. cpp_quote("#define URLACTION_COOKIES_THIRD_PARTY 0x00001A05")
  2091. cpp_quote("#define URLACTION_COOKIES_SESSION_THIRD_PARTY 0x00001A06")
  2092. cpp_quote("")
  2093. cpp_quote("#define URLACTION_COOKIES_ENABLED 0x00001A10")
  2094. cpp_quote("")
  2095. cpp_quote("#define URLACTION_NETWORK_CURR_MAX 0x00001A10")
  2096. cpp_quote("#define URLACTION_NETWORK_MAX 0x00001Bff")
  2097. cpp_quote("")
  2098. cpp_quote("")
  2099. cpp_quote("#define URLACTION_JAVA_MIN 0x00001C00")
  2100. cpp_quote("#define URLACTION_JAVA_PERMISSIONS 0x00001C00")
  2101. cpp_quote("#define URLPOLICY_JAVA_PROHIBIT 0x00000000")
  2102. cpp_quote("#define URLPOLICY_JAVA_HIGH 0x00010000")
  2103. cpp_quote("#define URLPOLICY_JAVA_MEDIUM 0x00020000")
  2104. cpp_quote("#define URLPOLICY_JAVA_LOW 0x00030000")
  2105. cpp_quote("#define URLPOLICY_JAVA_CUSTOM 0x00800000")
  2106. cpp_quote("#define URLACTION_JAVA_CURR_MAX 0x00001C00")
  2107. cpp_quote("#define URLACTION_JAVA_MAX 0x00001Cff")
  2108. cpp_quote("")
  2109. cpp_quote("")
  2110. cpp_quote("// The following Infodelivery actions should have no default policies")
  2111. cpp_quote("// in the registry. They assume that no default policy means fall")
  2112. cpp_quote("// back to the global restriction. If an admin sets a policy per")
  2113. cpp_quote("// zone, then it overrides the global restriction.")
  2114. cpp_quote("")
  2115. cpp_quote("#define URLACTION_INFODELIVERY_MIN 0x00001D00")
  2116. cpp_quote("#define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS 0x00001D00")
  2117. cpp_quote("#define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS 0x00001D01")
  2118. cpp_quote("#define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS 0x00001D02")
  2119. cpp_quote("#define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS 0x00001D03")
  2120. cpp_quote("#define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS 0x00001D04")
  2121. cpp_quote("#define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS 0x00001D05")
  2122. cpp_quote("#define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING 0x00001D06")
  2123. cpp_quote("#define URLACTION_INFODELIVERY_CURR_MAX 0x00001D06")
  2124. cpp_quote("#define URLACTION_INFODELIVERY_MAX 0x00001Dff")
  2125. cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_MIN 0x00001E00")
  2126. cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS 0x00001E05")
  2127. cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT 0x00010000")
  2128. cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE 0x00020000")
  2129. cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL 0x00030000")
  2130. cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_MAX 0x00001Eff")
  2131. cpp_quote("#define URLACTION_BEHAVIOR_MIN 0x00002000")
  2132. cpp_quote("#define URLACTION_BEHAVIOR_RUN 0x00002000")
  2133. cpp_quote("#define URLPOLICY_BEHAVIOR_CHECK_LIST 0x00010000")
  2134. cpp_quote("")
  2135. cpp_quote("// The following actions correspond to the Feature options above." )
  2136. cpp_quote("// However, they are NOT in the same order." )
  2137. cpp_quote("#define URLACTION_FEATURE_MIN 0x00002100")
  2138. cpp_quote("#define URLACTION_FEATURE_MIME_SNIFFING 0x00002100")
  2139. cpp_quote("#define URLACTION_FEATURE_ZONE_ELEVATION 0x00002101")
  2140. cpp_quote("#define URLACTION_FEATURE_WINDOW_RESTRICTIONS 0x00002102")
  2141. cpp_quote("")
  2142. cpp_quote("#define URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN 0x00002200")
  2143. cpp_quote("#define URLACTION_AUTOMATIC_DOWNLOAD_UI 0x00002200")
  2144. cpp_quote("#define URLACTION_AUTOMATIC_ACTIVEX_UI 0x00002201")
  2145. cpp_quote("")
  2146. cpp_quote("#define URLACTION_ALLOW_RESTRICTEDPROTOCOLS 0x00002300")
  2147. cpp_quote("")
  2148. cpp_quote("// For each action specified above the system maintains")
  2149. cpp_quote("// a set of policies for the action. ")
  2150. cpp_quote("// The only policies supported currently are permissions (i.e. is something allowed)")
  2151. cpp_quote("// and logging status. ")
  2152. cpp_quote("// IMPORTANT: If you are defining your own policies don't overload the meaning of the")
  2153. cpp_quote("// loword of the policy. You can use the hiword to store any policy bits which are only")
  2154. cpp_quote("// meaningful to your action.")
  2155. cpp_quote("// For an example of how to do this look at the URLPOLICY_JAVA above")
  2156. cpp_quote("")
  2157. cpp_quote("// Permissions ")
  2158. cpp_quote("#define URLPOLICY_ALLOW 0x00")
  2159. cpp_quote("#define URLPOLICY_QUERY 0x01")
  2160. cpp_quote("#define URLPOLICY_DISALLOW 0x03")
  2161. cpp_quote("")
  2162. cpp_quote("// Notifications are not done when user already queried.") // CUT
  2163. cpp_quote("#define URLPOLICY_NOTIFY_ON_ALLOW 0x10")
  2164. cpp_quote("#define URLPOLICY_NOTIFY_ON_DISALLOW 0x20")
  2165. cpp_quote("")
  2166. cpp_quote("// Logging is done regardless of whether user was queried.") // CUT
  2167. cpp_quote("#define URLPOLICY_LOG_ON_ALLOW 0x40")
  2168. cpp_quote("#define URLPOLICY_LOG_ON_DISALLOW 0x80")
  2169. cpp_quote("")
  2170. cpp_quote("#define URLPOLICY_MASK_PERMISSIONS 0x0f")
  2171. cpp_quote("#define GetUrlPolicyPermissions(dw) (dw & URLPOLICY_MASK_PERMISSIONS)")
  2172. cpp_quote("#define SetUrlPolicyPermissions(dw,dw2) ((dw) = ((dw) & ~(URLPOLICY_MASK_PERMISSIONS)) | (dw2))")
  2173. cpp_quote("")
  2174. cpp_quote("")
  2175. cpp_quote("#define URLPOLICY_DONTCHECKDLGBOX 0x100")
  2176. cpp_quote("// The ordinal #'s that define the predefined zones internet explorer knows about. ")
  2177. cpp_quote("// When we support user-defined zones their zone numbers should be between ")
  2178. cpp_quote("// URLZONE_USER_MIN and URLZONE_USER_MAX")
  2179. cpp_quote("// Custom policy to query whether the local machine zone")
  2180. cpp_quote("// has been unlocked for current document.")
  2181. cpp_quote("EXTERN_C const GUID GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED; ")
  2182. //+---------------------------------------------------------------------------
  2183. //
  2184. // Copyright (C) Microsoft Corporation, 1995-1998.
  2185. //
  2186. // Contents: IInternetZoneManager interface definition
  2187. //
  2188. //----------------------------------------------------------------------------
  2189. cpp_quote("#ifndef _LPINTERNETZONEMANAGER_DEFINED")
  2190. cpp_quote("#define _LPINTERNETZONEMANAGER_DEFINED")
  2191. [
  2192. local,
  2193. object,
  2194. uuid(79eac9ef-baf9-11ce-8c82-00aa004ba90b),
  2195. helpstring("IInternetZoneManager Interface"),
  2196. pointer_default(unique)
  2197. ]
  2198. interface IInternetZoneManager : IUnknown
  2199. {
  2200. typedef [unique] IInternetZoneManager *LPURLZONEMANAGER;
  2201. typedef enum tagURLZONE
  2202. {
  2203. URLZONE_PREDEFINED_MIN = 0,
  2204. URLZONE_LOCAL_MACHINE = 0, // local machine zone is not exposed in UI
  2205. URLZONE_INTRANET, // My Intranet zone
  2206. URLZONE_TRUSTED, // Trusted Web sites zone
  2207. URLZONE_INTERNET, // The Internet zone
  2208. URLZONE_UNTRUSTED, // Untrusted sites zone
  2209. URLZONE_PREDEFINED_MAX = 999,
  2210. URLZONE_USER_MIN = 1000,
  2211. URLZONE_USER_MAX = 10000,
  2212. } URLZONE;
  2213. typedef enum tagURLTEMPLATE
  2214. {
  2215. // This value is just used to indicate the current set
  2216. // of policies are not based on any template.
  2217. URLTEMPLATE_CUSTOM = 0x000000,
  2218. URLTEMPLATE_PREDEFINED_MIN = 0x10000,
  2219. URLTEMPLATE_LOW = 0x10000,
  2220. URLTEMPLATE_MEDLOW = 0x10500,
  2221. URLTEMPLATE_MEDIUM = 0x11000,
  2222. URLTEMPLATE_HIGH = 0x12000,
  2223. URLTEMPLATE_PREDEFINED_MAX = 0x20000
  2224. } URLTEMPLATE ;
  2225. enum { MAX_ZONE_PATH = 260, MAX_ZONE_DESCRIPTION = 200 };
  2226. typedef enum {
  2227. ZAFLAGS_CUSTOM_EDIT = 0x00000001,
  2228. ZAFLAGS_ADD_SITES = 0x00000002,
  2229. ZAFLAGS_REQUIRE_VERIFICATION = 0x00000004,
  2230. ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x00000008, // Intranet only.
  2231. ZAFLAGS_INCLUDE_INTRANET_SITES = 0x00000010, // Intranet only.
  2232. ZAFLAGS_NO_UI = 0x00000020, // Don't display UI (used for local machine)
  2233. ZAFLAGS_SUPPORTS_VERIFICATION = 0x00000040, // Supports server verification.
  2234. ZAFLAGS_UNC_AS_INTRANET = 0x00000080,
  2235. // Locked/Unlocked state specific flags.
  2236. ZAFLAGS_USE_LOCKED_ZONES = 0x00010000,
  2237. } ZAFLAGS ;
  2238. typedef struct _ZONEATTRIBUTES
  2239. {
  2240. ULONG cbSize;
  2241. WCHAR szDisplayName[MAX_ZONE_PATH];
  2242. WCHAR szDescription[MAX_ZONE_DESCRIPTION];
  2243. WCHAR szIconPath[MAX_ZONE_PATH];
  2244. DWORD dwTemplateMinLevel;
  2245. DWORD dwTemplateRecommended;
  2246. DWORD dwTemplateCurrentLevel;
  2247. DWORD dwFlags; // ZAFLAGS.
  2248. } ZONEATTRIBUTES, *LPZONEATTRIBUTES;
  2249. HRESULT GetZoneAttributes
  2250. (
  2251. [in] DWORD dwZone,
  2252. [in, out, unique]
  2253. ZONEATTRIBUTES* pZoneAttributes
  2254. );
  2255. cpp_quote("// Gets the zone attributes (information in registry other than actual security")
  2256. cpp_quote("// policies associated with the zone). Zone attributes are fixed as:")
  2257. HRESULT SetZoneAttributes
  2258. (
  2259. [in] DWORD dwZone,
  2260. [in] ZONEATTRIBUTES* pZoneAttributes
  2261. );
  2262. cpp_quote("// Sets the zone attributes (information in registry other than actual security")
  2263. cpp_quote("// policies associated with the zone). Zone attributes as above.")
  2264. cpp_quote("// Returns S_OK or ??? if failed to write the zone attributes.")
  2265. cpp_quote("/* Registry Flags")
  2266. cpp_quote("")
  2267. cpp_quote(" When reading, default behavior is:")
  2268. cpp_quote(" If HKLM allows override and HKCU value exists")
  2269. cpp_quote(" Then use HKCU value")
  2270. cpp_quote(" Else use HKLM value")
  2271. cpp_quote(" When writing, default behavior is same as HKCU")
  2272. cpp_quote(" If HKLM allows override")
  2273. cpp_quote(" Then Write to HKCU")
  2274. cpp_quote(" Else Fail")
  2275. cpp_quote("*/")
  2276. typedef enum _URLZONEREG
  2277. {
  2278. URLZONEREG_DEFAULT=0,
  2279. URLZONEREG_HKLM,
  2280. URLZONEREG_HKCU
  2281. } URLZONEREG;
  2282. HRESULT GetZoneCustomPolicy
  2283. (
  2284. [in] DWORD dwZone, // zone index
  2285. [in] REFGUID guidKey, // key to lookup value
  2286. [out, size_is(,*pcbPolicy)] // allocation via IMemAlloc; caller frees
  2287. BYTE** ppPolicy, // pointer to output buffer pointer
  2288. [out] DWORD* pcbPolicy, // pointer to output buffer size
  2289. [in] URLZONEREG urlZoneReg // effective, HKCU, or HKLM
  2290. );
  2291. cpp_quote("// Gets a named custom policy associated with a zone;")
  2292. cpp_quote("// e.g. the Java VM settings can be defined with a unique key such as 'Java'.")
  2293. cpp_quote("// Custom policy support is intended to allow extensibility from the predefined")
  2294. cpp_quote("// set of policies that IE4 has built in.")
  2295. cpp_quote("// ")
  2296. cpp_quote("// pwszKey is the string name designating the custom policy. Components are")
  2297. cpp_quote("// responsible for having unique names.")
  2298. cpp_quote("// ppPolicy is the callee allocated buffer for the policy byte blob; caller is")
  2299. cpp_quote("// responsible for freeing this buffer eventually.")
  2300. cpp_quote("// pcbPolicy is the size of the byte blob returned.")
  2301. cpp_quote("// dwRegFlags determines how registry is accessed (see above).")
  2302. cpp_quote("// Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced).")
  2303. HRESULT SetZoneCustomPolicy
  2304. (
  2305. [in] DWORD dwZone, // zone index
  2306. [in] REFGUID guidKey, // key to lookup value
  2307. [in, size_is(cbPolicy)]
  2308. BYTE* pPolicy, // input buffer pointer
  2309. [in] DWORD cbPolicy, // input data size
  2310. [in] URLZONEREG urlZoneReg // default, HKCU, or HKLM
  2311. );
  2312. cpp_quote("// Sets a named custom policy associated with a zone;")
  2313. cpp_quote("// e.g. the Java VM settings can be defined with a unique key such as 'Java'.")
  2314. cpp_quote("// Custom policy support is intended to allow extensibility from the predefined")
  2315. cpp_quote("// set of policies that IE4 has built in. ")
  2316. cpp_quote("// ")
  2317. cpp_quote("// pwszKey is the string name designating the custom policy. Components are")
  2318. cpp_quote("// responsible for having unique names.")
  2319. cpp_quote("// ppPolicy is the caller allocated buffer for the policy byte blob.")
  2320. cpp_quote("// pcbPolicy is the size of the byte blob to be set.")
  2321. cpp_quote("// dwRegFlags determines if HTCU or HKLM is set.")
  2322. cpp_quote("// Returns S_OK or ??? if failed to write the zone custom policy.")
  2323. HRESULT GetZoneActionPolicy
  2324. (
  2325. [in] DWORD dwZone, // zone index
  2326. [in] DWORD dwAction, // index number of action
  2327. [out, size_is(cbPolicy)]
  2328. BYTE* pPolicy, // output buffer pointer
  2329. [in] DWORD cbPolicy, // output buffer size
  2330. [in] URLZONEREG urlZoneReg // effective, HKCU, or HKLM
  2331. );
  2332. cpp_quote("// Gets action policy associated with a zone, the builtin, fixed-length policies info.")
  2333. cpp_quote("")
  2334. cpp_quote("// dwAction is the action code for the action as defined above.")
  2335. cpp_quote("// pPolicy is the caller allocated buffer for the policy data.")
  2336. cpp_quote("// cbPolicy is the size of the caller allocated buffer.")
  2337. cpp_quote("// dwRegFlags determines how registry is accessed (see above).")
  2338. cpp_quote("// Returns S_OK if action is valid; ??? if action is not valid.")
  2339. HRESULT SetZoneActionPolicy
  2340. (
  2341. [in] DWORD dwZone, // zone index
  2342. [in] DWORD dwAction, // index number of action
  2343. [in, size_is(cbPolicy)]
  2344. BYTE* pPolicy, // input buffer pointer
  2345. [in] DWORD cbPolicy, // input data size
  2346. [in] URLZONEREG urlZoneReg // HKCU, or HKLM
  2347. );
  2348. // Sets action policy associated with a zone, the builtin, fixed-length policies info.
  2349. //
  2350. // dwAction is the action code as defined above.
  2351. // pPolicy is the caller allocated buffer for the policy data.
  2352. // cbPolicy is the size of the caller allocated buffer.
  2353. // dwRegFlags determines how registry is accessed (see above).
  2354. // Returns S_OK if action is valid; ??? if action is not valid.
  2355. // UI, logging, and wrapper for both
  2356. // This function is not implemented yet.
  2357. HRESULT PromptAction
  2358. (
  2359. [in] DWORD dwAction, // action type
  2360. [in] HWND hwndParent, // parent window handle
  2361. [in] LPCWSTR pwszUrl, // URL to display
  2362. [in] LPCWSTR pwszText, // dialog text
  2363. [in] DWORD dwPromptFlags // reserved, pass 0
  2364. );
  2365. // This method presents UI to ask user about specified action
  2366. // This function is not implemented.
  2367. HRESULT LogAction
  2368. (
  2369. [in] DWORD dwAction, // action type
  2370. [in] LPCWSTR pwszUrl, // URL to log
  2371. [in] LPCWSTR pwszText, // associated text
  2372. [in] DWORD dwLogFlags // reserved, pass 0
  2373. );
  2374. // zone enumeration
  2375. HRESULT CreateZoneEnumerator
  2376. (
  2377. [out] DWORD* pdwEnum, // enum handle
  2378. [out] DWORD* pdwCount, // # of elements in the list.
  2379. [in] DWORD dwFlags // reserved, pass 0
  2380. );
  2381. // Returns enumerator handle needed to enumerate defined zones.
  2382. // The zone enumeration corresponds to a snap-shot of the zones when
  2383. // the Create call is made.
  2384. HRESULT GetZoneAt
  2385. (
  2386. [in] DWORD dwEnum, // returned by CreateZoneEnumerator
  2387. [in] DWORD dwIndex, // 0-based
  2388. [out] DWORD* pdwZone // absolute zone index.
  2389. );
  2390. HRESULT DestroyZoneEnumerator
  2391. (
  2392. [in] DWORD dwEnum // enum handle
  2393. );
  2394. // Destroys resources associated with an enumerator
  2395. HRESULT CopyTemplatePoliciesToZone
  2396. (
  2397. [in] DWORD dwTemplate, // High, medium or low
  2398. [in] DWORD dwZone, // Zone to copy policies to.
  2399. [in] DWORD dwReserved
  2400. );
  2401. }
  2402. cpp_quote("#endif")
  2403. //+---------------------------------------------------------------------------
  2404. //
  2405. // Copyright (C) Microsoft Corporation, 1995-2004.
  2406. //
  2407. // Contents: IInternetZoneManagerEx interface definition
  2408. //
  2409. //----------------------------------------------------------------------------
  2410. cpp_quote("#ifndef _LPINTERNETZONEMANAGEREX_DEFINED")
  2411. cpp_quote("#define _LPINTERNETZONEMANAGEREX_DEFINED")
  2412. [
  2413. local,
  2414. object,
  2415. uuid(A4C23339-8E06-431e-9BF4-7E711C085648),
  2416. helpstring("IInternetZoneManagerEx Interface"),
  2417. pointer_default(unique)
  2418. ]
  2419. interface IInternetZoneManagerEx : IInternetZoneManager
  2420. {
  2421. HRESULT GetZoneActionPolicyEx
  2422. (
  2423. [in] DWORD dwZone, // zone index
  2424. [in] DWORD dwAction, // index number of action
  2425. [out, size_is(cbPolicy)]
  2426. BYTE* pPolicy, // output buffer pointer
  2427. [in] DWORD cbPolicy, // output buffer size
  2428. [in] URLZONEREG urlZoneReg, // effective, HKCU, or HKLM
  2429. [in] DWORD dwFlags //Lockdown Zones or Normal Zones via ZAFLAGS
  2430. );
  2431. cpp_quote("// Gets action policy associated with a zone, the builtin, fixed-length policies info.")
  2432. cpp_quote("")
  2433. cpp_quote("// dwAction is the action code for the action as defined above.")
  2434. cpp_quote("// pPolicy is the caller allocated buffer for the policy data.")
  2435. cpp_quote("// cbPolicy is the size of the caller allocated buffer.")
  2436. cpp_quote("// dwRegFlags determines how registry is accessed (see above).")
  2437. cpp_quote("// dwFlags determine which registry policies are accessed (see above).")
  2438. cpp_quote("// Returns S_OK if action is valid; ??? if action is not valid.")
  2439. HRESULT SetZoneActionPolicyEx
  2440. (
  2441. [in] DWORD dwZone, // zone index
  2442. [in] DWORD dwAction, // index number of action
  2443. [in, size_is(cbPolicy)]
  2444. BYTE* pPolicy, // input buffer pointer
  2445. [in] DWORD cbPolicy, // input data size
  2446. [in] URLZONEREG urlZoneReg, // HKCU, or HKLM
  2447. [in] DWORD dwFlags //Lockdown Zones or Normal Zones via ZAFLAGS
  2448. );
  2449. // Sets action policy associated with a zone, the builtin, fixed-length policies info.
  2450. //
  2451. // dwAction is the action code as defined above.
  2452. // pPolicy is the caller allocated buffer for the policy data.
  2453. // cbPolicy is the size of the caller allocated buffer.
  2454. // urlZoneReg determines how registry is accessed (see above).
  2455. // dwFlags determine which registry policies are accessed (see above).
  2456. // Returns S_OK if action is valid; ??? if action is not valid.
  2457. }
  2458. cpp_quote("#endif")
  2459. cpp_quote("EXTERN_C const IID CLSID_SoftDistExt; ")
  2460. //+---------------------------------------------------------------------------
  2461. //
  2462. // Copyright (C) Microsoft Corporation, 1995-1998.
  2463. //
  2464. // Contents: ISoftDistExt interface definition
  2465. //
  2466. //----------------------------------------------------------------------------
  2467. cpp_quote("#ifndef _LPSOFTDISTEXT_DEFINED")
  2468. cpp_quote("#define _LPSOFTDISTEXT_DEFINED")
  2469. cpp_quote("")
  2470. cpp_quote("#define SOFTDIST_FLAG_USAGE_EMAIL 0x00000001")
  2471. cpp_quote("#define SOFTDIST_FLAG_USAGE_PRECACHE 0x00000002")
  2472. cpp_quote("#define SOFTDIST_FLAG_USAGE_AUTOINSTALL 0x00000004")
  2473. cpp_quote("#define SOFTDIST_FLAG_DELETE_SUBSCRIPTION 0x00000008")
  2474. cpp_quote("")
  2475. cpp_quote("")
  2476. cpp_quote("#define SOFTDIST_ADSTATE_NONE 0x00000000")
  2477. cpp_quote("#define SOFTDIST_ADSTATE_AVAILABLE 0x00000001")
  2478. cpp_quote("#define SOFTDIST_ADSTATE_DOWNLOADED 0x00000002")
  2479. cpp_quote("#define SOFTDIST_ADSTATE_INSTALLED 0x00000003")
  2480. cpp_quote("")
  2481. typedef struct _tagCODEBASEHOLD
  2482. {
  2483. ULONG cbSize;
  2484. LPWSTR szDistUnit;
  2485. LPWSTR szCodeBase;
  2486. DWORD dwVersionMS;
  2487. DWORD dwVersionLS;
  2488. DWORD dwStyle;
  2489. } CODEBASEHOLD, *LPCODEBASEHOLD;
  2490. typedef struct _tagSOFTDISTINFO
  2491. {
  2492. ULONG cbSize;
  2493. DWORD dwFlags;
  2494. DWORD dwAdState;
  2495. LPWSTR szTitle;
  2496. LPWSTR szAbstract;
  2497. LPWSTR szHREF;
  2498. DWORD dwInstalledVersionMS;
  2499. DWORD dwInstalledVersionLS;
  2500. DWORD dwUpdateVersionMS;
  2501. DWORD dwUpdateVersionLS;
  2502. DWORD dwAdvertisedVersionMS;
  2503. DWORD dwAdvertisedVersionLS;
  2504. DWORD dwReserved;
  2505. } SOFTDISTINFO, *LPSOFTDISTINFO;
  2506. [
  2507. local,
  2508. object,
  2509. uuid(B15B8DC1-C7E1-11d0-8680-00AA00BDCB71),
  2510. helpstring("ISoftDistExt Interface"),
  2511. pointer_default(unique)
  2512. ]
  2513. interface ISoftDistExt : IUnknown
  2514. {
  2515. HRESULT ProcessSoftDist
  2516. (
  2517. [in] LPCWSTR szCDFURL,
  2518. [in] IXMLElement *pSoftDistElement,
  2519. [in, out] LPSOFTDISTINFO lpsdi
  2520. );
  2521. HRESULT GetFirstCodeBase
  2522. (
  2523. [in] LPWSTR *szCodeBase,
  2524. [in] LPDWORD dwMaxSize
  2525. );
  2526. HRESULT GetNextCodeBase
  2527. (
  2528. [in] LPWSTR *szCodeBase,
  2529. [in] LPDWORD dwMaxSize
  2530. );
  2531. HRESULT AsyncInstallDistributionUnit
  2532. (
  2533. [in] IBindCtx *pbc,
  2534. [in] LPVOID pvReserved,
  2535. [in] DWORD flags,
  2536. [in] LPCODEBASEHOLD lpcbh
  2537. );
  2538. }
  2539. cpp_quote("STDAPI GetSoftwareUpdateInfo( LPCWSTR szDistUnit, LPSOFTDISTINFO psdi );")
  2540. cpp_quote("STDAPI SetSoftwareUpdateAdvertisementState( LPCWSTR szDistUnit, DWORD dwAdState, DWORD dwAdvertisedVersionMS, DWORD dwAdvertisedVersionLS );")
  2541. cpp_quote("#endif")
  2542. //+---------------------------------------------------------------------------
  2543. //
  2544. // Copyright (C) Microsoft Corporation, 1995-1998.
  2545. //
  2546. // Contents: ICatalogFileInfo interface definition
  2547. //
  2548. //----------------------------------------------------------------------------
  2549. cpp_quote("#ifndef _LPCATALOGFILEINFO_DEFINED")
  2550. cpp_quote("#define _LPCATALOGFILEINFO_DEFINED")
  2551. [
  2552. local,
  2553. object,
  2554. uuid(711C7600-6B48-11d1-B403-00AA00B92AF1),
  2555. pointer_default(unique)
  2556. ]
  2557. interface ICatalogFileInfo : IUnknown
  2558. {
  2559. typedef [unique] ICatalogFileInfo *LPCATALOGFILEINFO;
  2560. HRESULT GetCatalogFile(
  2561. [out] LPSTR *ppszCatalogFile // Catalog file path
  2562. );
  2563. HRESULT GetJavaTrust(
  2564. [out] void **ppJavaTrust // Java Trust structure
  2565. );
  2566. }
  2567. cpp_quote("#endif")
  2568. //+---------------------------------------------------------------------------
  2569. //
  2570. // Copyright (C) Microsoft Corporation, 1995-1998.
  2571. //
  2572. // Contents: IDataFilter definition
  2573. //
  2574. //---------------------------------------------------------------------------
  2575. cpp_quote("#ifndef _LPDATAFILTER_DEFINED")
  2576. cpp_quote("#define _LPDATAFILTER_DEFINED")
  2577. [
  2578. object,
  2579. uuid(69d14c80-c18e-11d0-a9ce-006097942311),
  2580. pointer_default(unique)
  2581. ]
  2582. interface IDataFilter: IUnknown
  2583. {
  2584. typedef [unique] IDataFilter *LPDATAFILTER;
  2585. HRESULT DoEncode(
  2586. [in] DWORD dwFlags,
  2587. [in] LONG lInBufferSize,
  2588. [in, size_is(lInBufferSize)]
  2589. BYTE* pbInBuffer,
  2590. [in] LONG lOutBufferSize,
  2591. [out, size_is(lOutBufferSize)]
  2592. BYTE* pbOutBuffer,
  2593. [in] LONG lInBytesAvailable,
  2594. [out] LONG* plInBytesRead,
  2595. [out] LONG* plOutBytesWritten,
  2596. [in] DWORD dwReserved
  2597. );
  2598. HRESULT DoDecode(
  2599. [in] DWORD dwFlags,
  2600. [in] LONG lInBufferSize,
  2601. [in, size_is(lInBufferSize)]
  2602. BYTE* pbInBuffer,
  2603. [in] LONG lOutBufferSize,
  2604. [out, size_is(lOutBufferSize)]
  2605. BYTE* pbOutBuffer,
  2606. [in] LONG lInBytesAvailable,
  2607. [out] LONG* plInBytesRead,
  2608. [out] LONG* plOutBytesWritten,
  2609. [in] DWORD dwReserved
  2610. );
  2611. HRESULT SetEncodingLevel(
  2612. [in] DWORD dwEncLevel
  2613. );
  2614. }
  2615. cpp_quote("#endif")
  2616. //+---------------------------------------------------------------------------
  2617. //
  2618. // Copyright (C) Microsoft Corporation, 1995-1998.
  2619. //
  2620. // Contents: IEncodingFilterFactory definition
  2621. //
  2622. //---------------------------------------------------------------------------
  2623. cpp_quote("#ifndef _LPENCODINGFILTERFACTORY_DEFINED")
  2624. cpp_quote("#define _LPENCODINGFILTERFACTORY_DEFINED")
  2625. typedef struct _tagPROTOCOLFILTERDATA
  2626. {
  2627. DWORD cbSize;
  2628. IInternetProtocolSink *pProtocolSink; // out parameter
  2629. IInternetProtocol *pProtocol; // in parameter
  2630. IUnknown *pUnk;
  2631. DWORD dwFilterFlags;
  2632. } PROTOCOLFILTERDATA;
  2633. [
  2634. local,
  2635. object,
  2636. uuid(70bdde00-c18e-11d0-a9ce-006097942311),
  2637. pointer_default(unique)
  2638. ]
  2639. interface IEncodingFilterFactory : IUnknown
  2640. {
  2641. typedef [unique] IEncodingFilterFactory *LPENCODINGFILTERFACTORY;
  2642. typedef struct _tagDATAINFO
  2643. {
  2644. ULONG ulTotalSize;
  2645. ULONG ulavrPacketSize;
  2646. ULONG ulConnectSpeed;
  2647. ULONG ulProcessorSpeed;
  2648. } DATAINFO ;
  2649. HRESULT FindBestFilter(
  2650. [in] LPCWSTR pwzCodeIn,
  2651. [in] LPCWSTR pwzCodeOut,
  2652. [in] DATAINFO info,
  2653. [out] IDataFilter** ppDF
  2654. );
  2655. HRESULT GetDefaultFilter(
  2656. [in] LPCWSTR pwzCodeIn,
  2657. [in] LPCWSTR pwzCodeOut,
  2658. [out] IDataFilter** ppDF
  2659. );
  2660. }
  2661. cpp_quote("#endif")
  2662. //+---------------------------------------------------------------------------
  2663. //
  2664. // Copyright (C) Microsoft Corporation, 1995-1998.
  2665. //
  2666. // Contents: Hit Logging Apis definition
  2667. //
  2668. //---------------------------------------------------------------------------
  2669. cpp_quote("#ifndef _HITLOGGING_DEFINED")
  2670. cpp_quote("#define _HITLOGGING_DEFINED")
  2671. cpp_quote("// Logging-specific apis")
  2672. #pragma midl_echo("BOOL WINAPI IsLoggingEnabledA(IN LPCSTR pszUrl); ")
  2673. #pragma midl_echo("BOOL WINAPI IsLoggingEnabledW(IN LPCWSTR pwszUrl); ")
  2674. cpp_quote("#ifdef UNICODE ")
  2675. cpp_quote("#define IsLoggingEnabled IsLoggingEnabledW ")
  2676. cpp_quote("#else ")
  2677. cpp_quote("#define IsLoggingEnabled IsLoggingEnabledA ")
  2678. cpp_quote("#endif // !UNICODE ")
  2679. // HIT_LOGGING_INFO
  2680. typedef struct _tagHIT_LOGGING_INFO {
  2681. DWORD dwStructSize;
  2682. LPSTR lpszLoggedUrlName;
  2683. SYSTEMTIME StartTime;
  2684. SYSTEMTIME EndTime;
  2685. LPSTR lpszExtendedInfo;
  2686. } HIT_LOGGING_INFO, * LPHIT_LOGGING_INFO;
  2687. #pragma midl_echo("BOOL WINAPI WriteHitLogging(IN LPHIT_LOGGING_INFO lpLogginginfo); ")
  2688. cpp_quote("#define CONFIRMSAFETYACTION_LOADOBJECT 0x00000001")
  2689. struct CONFIRMSAFETY
  2690. {
  2691. CLSID clsid;
  2692. IUnknown * pUnk;
  2693. DWORD dwFlags;
  2694. };
  2695. cpp_quote("EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY; ")
  2696. cpp_quote("#endif")
  2697. //+---------------------------------------------------------------------------
  2698. //
  2699. // Copyright (C) Microsoft Corporation, 2000.
  2700. //
  2701. // Contents: IWrappedProtocol definition
  2702. //
  2703. //---------------------------------------------------------------------------
  2704. cpp_quote("#ifndef _LPIWRAPPEDPROTOCOL_DEFINED")
  2705. cpp_quote("#define _LPIWRAPPEDPROTOCOL_DEFINED")
  2706. [
  2707. local,
  2708. object,
  2709. uuid(53c84785-8425-4dc5-971b-e58d9c19f9b6),
  2710. pointer_default(unique)
  2711. ]
  2712. interface IWrappedProtocol : IUnknown
  2713. {
  2714. typedef [unique] IWrappedProtocol *LPIWRAPPEDPROTOCOL;
  2715. HRESULT GetWrapperCode(
  2716. [out] LONG * pnCode,
  2717. [in] DWORD_PTR dwReserved
  2718. );
  2719. }
  2720. cpp_quote("#endif")