IeConst.pas 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556
  1. (*******************************
  2. * IECONST 1.4 (Oct 16, 2001) *
  3. *******************************)
  4. unit IeConst;
  5. interface
  6. uses Sysutils, ShlObj, Activex, Windows, Urlmon;
  7. const
  8. STATURL_QUERYFLAG_ISCACHED = $00010000;
  9. STATURL_QUERYFLAG_NOURL = $00020000;
  10. STATURL_QUERYFLAG_NOTITLE = $00040000;
  11. STATURL_QUERYFLAG_TOPLEVEL = $00080000;
  12. STATURLFLAG_ISCACHED = $00000001;
  13. STATURLFLAG_ISTOPLEVEL = $00000002;
  14. IID_IDownloadManager: TGUID =
  15. (D1: $988934A4; D2: $064B; D3: $11D3; D4: ($BB, $80, $0, $10, $4B, $35, $E7, $F9));
  16. SID_SDownloadManager = '{988934A4-064B-11D3-BB80-00104B35E7F9}';
  17. IID_IEnumStatUrl: TGUID = (D1: $3C374A42; D2: $BAE4; D3: $11CF; D4: ($BF, $7D, $00, $AA, $00, $69, $46, $EE));
  18. IID_IUrlHistoryStg: TGUID = (D1: $3C374A41; D2: $BAE4; D3: $11CF; D4: ($BF, $7D, $00, $AA, $00, $69, $46, $EE));
  19. IID_IUrlHistoryStg2: TGUID = (D1: $AFA0DC11; D2: $C313; D3: $831A; D4: ($83, $1A, $00, $C0, $4F, $D5, $AE, $38));
  20. IID_IUrlHistoryNotify: TGUID = (D1: $BC40BEC1; D2: $C493; D3: $11D0; D4: ($83, $1B, $00, $C0, $4F, $D5, $AE, $38));
  21. SID_IEnumStatUrl = '{3C374A42-BAE4-11CF-BF7D-00AA006946EE}';
  22. SID_IUrlHistoryStg = '{3C374A41-BAE4-11CF-BF7D-00AA006946EE}';
  23. SID_IUrlHistoryStg2 = '{AFA0DC11-C313-11d0-831A-00C04FD5AE38}';
  24. SID_IURLHistoryNotify = '{BC40BEC1-C493-11d0-831B-00C04FD5AE38}';
  25. CLSID_CUrlHistory: TGUID = '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}';
  26. IID_IDocHostUIHandler: TGUID = '{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}';
  27. IID_IDocHostUIHandler2: TGUID = '{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}';
  28. IID_IDocHostShowUI: TGUID = '{c4d244b0-d43e-11cf-893b-00aa00bdce1a}';
  29. GUID_TriEditCommandGroup: TGUID = '{2582F1C0-084E-11d1-9A0E-006097C9B344}';
  30. CMDSETID_Forms3: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}';
  31. IID_IQueryInfo: TGUID = (D1: $00021500; D2: $0000; D3: $0000; D4: ($C0, $00, $00, $00, $00, $00, $00, $46));
  32. CGID_DocHostCommandHandler: TGUID = (D1: $F38BC242; D2: $B950; D3: $11D1; D4: ($89, $18, $00, $C0, $4F, $C2, $C8, $36));
  33. MSOCMDF_SUPPORTED = OLECMDF_SUPPORTED;
  34. MSOCMDF_ENABLED = OLECMDF_ENABLED;
  35. MSOCMDEXECOPT_PROMPTUSER = OLECMDEXECOPT_PROMPTUSER;
  36. MSOCMDEXECOPT_DONTPROMPTUSER = OLECMDEXECOPT_DONTPROMPTUSER;
  37. InchToMetric = 25.4;
  38. NO_COMMAND = 0;
  39. VIEW_COMMAND = 1;
  40. EXPLORE_COMMAND = 2;
  41. FIND_COMMAND = 3;
  42. ISDigit = ['0'..'9', '-', '+'];
  43. CONTEXT_MENU_DEFAULT = 0;
  44. CONTEXT_MENU_IMAGE = 1;
  45. CONTEXT_MENU_CONTROL = 2;
  46. CONTEXT_MENU_TABLE = 3;
  47. // in browse mode
  48. CONTEXT_MENU_TEXTSELECT = 4;
  49. CONTEXT_MENU_ANCHOR = 5;
  50. CONTEXT_MENU_UNKNOWN = 6;
  51. // These 2 are mapped to IMAGE for the public")
  52. CONTEXT_MENU_IMGDYNSRC = 7;
  53. CONTEXT_MENU_IMGART = 8;
  54. CONTEXT_MENU_DEBUG = 9;
  55. CONTEXT_MENU_VSCROLL = 10;
  56. CONTEXT_MENU_HSCROLL = 11;
  57. DISPID_AMBIENT_DLCONTROL = (-5512);
  58. DISPID_AMBIENT_USERAGENT = (-5513);
  59. HTMLID_FIND = 1;
  60. HTMLID_VIEWSOURCE = 2;
  61. HTMLID_OPTIONS = 3;
  62. DOCHOSTUITYPE_BROWSE = 0;
  63. DOCHOSTUITYPE_AUTHOR = 1;
  64. DOCHOSTUIDBLCLK_DEFAULT = 0;
  65. DOCHOSTUIDBLCLK_SHOWPROPERTIES = 1;
  66. DOCHOSTUIDBLCLK_SHOWCODE = 2;
  67. DOCHOSTUIFLAG_DIALOG = $0001;
  68. DOCHOSTUIFLAG_DISABLE_HELP_MENU = $0002;
  69. DOCHOSTUIFLAG_NO3DBORDER = $0004;
  70. DOCHOSTUIFLAG_SCROLL_NO = $0008;
  71. DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = $0010;
  72. DOCHOSTUIFLAG_OPENNEWWIN = $0020;
  73. DOCHOSTUIFLAG_DISABLE_OFFSCREEN = $0040;
  74. DOCHOSTUIFLAG_FLAT_SCROLLBAR = $0080;
  75. DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = $0100;
  76. DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = $0200;
  77. DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = $0400;
  78. DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = $0800;
  79. DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = $1000;
  80. DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = $2000;
  81. DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = $4000;
  82. DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = $10000;
  83. DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = $20000;
  84. IDM_UNKNOWN = 0;
  85. IDM_ALIGNBOTTOM = 1;
  86. IDM_ALIGNHORIZONTALCENTERS = 2;
  87. IDM_ALIGNLEFT = 3;
  88. IDM_ALIGNRIGHT = 4;
  89. IDM_ALIGNTOGRID = 5;
  90. IDM_ALIGNTOP = 6;
  91. IDM_ALIGNVERTICALCENTERS = 7;
  92. IDM_ARRANGEBOTTOM = 8;
  93. IDM_ARRANGERIGHT = 9;
  94. IDM_BRINGFORWARD = 10;
  95. IDM_BRINGTOFRONT = 11;
  96. IDM_CENTERHORIZONTALLY = 12;
  97. IDM_CENTERVERTICALLY = 13;
  98. IDM_CODE = 14;
  99. IDM_DELETE = 17;
  100. IDM_FONTNAME = 18;
  101. IDM_FONTSIZE = 19;
  102. IDM_GROUP = 20;
  103. IDM_HORIZSPACECONCATENATE = 21;
  104. IDM_HORIZSPACEDECREASE = 22;
  105. IDM_HORIZSPACEINCREASE = 23;
  106. IDM_HORIZSPACEMAKEEQUAL = 24;
  107. IDM_INSERTOBJECT = 25;
  108. IDM_MULTILEVELREDO = 30;
  109. IDM_SENDBACKWARD = 32;
  110. IDM_SENDTOBACK = 33;
  111. IDM_SHOWTABLE = 34;
  112. IDM_SIZETOCONTROL = 35;
  113. IDM_SIZETOCONTROLHEIGHT = 36;
  114. IDM_SIZETOCONTROLWIDTH = 37;
  115. IDM_SIZETOFIT = 38;
  116. IDM_SIZETOGRID = 39;
  117. IDM_SNAPTOGRID = 40;
  118. IDM_TABORDER = 41;
  119. IDM_TOOLBOX = 42;
  120. IDM_MULTILEVELUNDO = 44;
  121. IDM_UNGROUP = 45;
  122. IDM_VERTSPACECONCATENATE = 46;
  123. IDM_VERTSPACEDECREASE = 47;
  124. IDM_VERTSPACEINCREASE = 48;
  125. IDM_VERTSPACEMAKEEQUAL = 49;
  126. IDM_JUSTIFYFULL = 50;
  127. IDM_BACKCOLOR = 51;
  128. IDM_BOLD = 52;
  129. IDM_BORDERCOLOR = 53;
  130. IDM_FLAT = 54;
  131. IDM_FORECOLOR = 55;
  132. IDM_ITALIC = 56;
  133. IDM_JUSTIFYCENTER = 57;
  134. IDM_JUSTIFYGENERAL = 58;
  135. IDM_JUSTIFYLEFT = 59;
  136. IDM_JUSTIFYRIGHT = 60;
  137. IDM_RAISED = 61;
  138. IDM_SUNKEN = 62;
  139. IDM_UNDERLINE = 63;
  140. IDM_CHISELED = 64;
  141. IDM_ETCHED = 65;
  142. IDM_SHADOWED = 66;
  143. IDM_FIND = 67;
  144. IDM_SHOWGRID = 69;
  145. IDM_OBJECTVERBLIST0 = 72;
  146. IDM_OBJECTVERBLIST1 = 73;
  147. IDM_OBJECTVERBLIST2 = 74;
  148. IDM_OBJECTVERBLIST3 = 75;
  149. IDM_OBJECTVERBLIST4 = 76;
  150. IDM_OBJECTVERBLIST5 = 77;
  151. IDM_OBJECTVERBLIST6 = 78;
  152. IDM_OBJECTVERBLIST7 = 79;
  153. IDM_OBJECTVERBLIST8 = 80;
  154. IDM_OBJECTVERBLIST9 = 81;
  155. IDM_CONVERTOBJECT = 82;
  156. IDM_CUSTOMCONTROL = 83;
  157. IDM_CUSTOMIZEITEM = 84;
  158. IDM_RENAME = 85;
  159. IDM_IMPORT = 86;
  160. IDM_NEWPAGE = 87;
  161. IDM_MOVE = 88;
  162. IDM_CANCEL = 89;
  163. IDM_FONT = 90;
  164. IDM_STRIKETHROUGH = 91;
  165. IDM_DELETEWORD = 92;
  166. IDM_FOLLOW_ANCHOR = 2008;
  167. IDM_INSINPUTIMAGE = 2114;
  168. IDM_INSINPUTBUTTON = 2115;
  169. IDM_INSINPUTRESET = 2116;
  170. IDM_INSINPUTSUBMIT = 2117;
  171. IDM_INSINPUTUPLOAD = 2118;
  172. IDM_INSFIELDSET = 2119;
  173. IDM_PASTEINSERT = 2120;
  174. IDM_REPLACE = 2121;
  175. IDM_EDITSOURCE = 2122;
  176. IDM_BOOKMARK = 2123;
  177. IDM_HYPERLINK = 2124;
  178. IDM_UNLINK = 2125;
  179. IDM_BROWSEMODE = 2126;
  180. IDM_EDITMODE = 2127;
  181. IDM_UNBOOKMARK = 2128;
  182. IDM_TOOLBARS = 2130;
  183. IDM_STATUSBAR = 2131;
  184. IDM_FORMATMARK = 2132;
  185. IDM_TEXTONLY = 2133;
  186. IDM_OPTIONS = 2135;
  187. IDM_FOLLOWLINKC = 2136;
  188. IDM_FOLLOWLINKN = 2137;
  189. IDM_VIEWSOURCE = 2139;
  190. IDM_ZOOMPOPUP = 2140;
  191. // IDM_BASELINEFONT1, IDM_BASELINEFONT2, IDM_BASELINEFONT3, IDM_BASELINEFONT4,
  192. // and IDM_BASELINEFONT5 should be consecutive integers;
  193. //
  194. IDM_BASELINEFONT1 = 2141;
  195. IDM_BASELINEFONT2 = 2142;
  196. IDM_BASELINEFONT3 = 2143;
  197. IDM_BASELINEFONT4 = 2144;
  198. IDM_BASELINEFONT5 = 2145;
  199. IDM_HORIZONTALLINE = 2150;
  200. IDM_LINEBREAKNORMAL = 2151;
  201. IDM_LINEBREAKLEFT = 2152;
  202. IDM_LINEBREAKRIGHT = 2153;
  203. IDM_LINEBREAKBOTH = 2154;
  204. IDM_NONBREAK = 2155;
  205. IDM_SPECIALCHAR = 2156;
  206. IDM_HTMLSOURCE = 2157;
  207. IDM_IFRAME = 2158;
  208. IDM_HTMLCONTAIN = 2159;
  209. IDM_TEXTBOX = 2161;
  210. IDM_TEXTAREA = 2162;
  211. IDM_CHECKBOX = 2163;
  212. IDM_RADIOBUTTON = 2164;
  213. IDM_DROPDOWNBOX = 2165;
  214. IDM_LISTBOX = 2166;
  215. IDM_BUTTON = 2167;
  216. IDM_IMAGE = 2168;
  217. IDM_OBJECT = 2169;
  218. IDM_1D = 2170;
  219. IDM_IMAGEMAP = 2171;
  220. IDM_FILE = 2172;
  221. IDM_COMMENT = 2173;
  222. IDM_SCRIPT = 2174;
  223. IDM_JAVAAPPLET = 2175;
  224. IDM_PLUGIN = 2176;
  225. IDM_PAGEBREAK = 2177;
  226. IDM_PARAGRAPH = 2180;
  227. IDM_FORM = 2181;
  228. IDM_MARQUEE = 2182;
  229. IDM_LIST = 2183;
  230. IDM_ORDERLIST = 2184;
  231. IDM_UNORDERLIST = 2185;
  232. IDM_INDENT = 2186;
  233. IDM_OUTDENT = 2187;
  234. IDM_PREFORMATTED = 2188;
  235. IDM_ADDRESS = 2189;
  236. IDM_BLINK = 2190;
  237. IDM_DIV = 2191;
  238. IDM_TABLEINSERT = 2200;
  239. IDM_RCINSERT = 2201;
  240. IDM_CELLINSERT = 2202;
  241. IDM_CAPTIONINSERT = 2203;
  242. IDM_CELLMERGE = 2204;
  243. IDM_CELLSPLIT = 2205;
  244. IDM_CELLSELECT = 2206;
  245. IDM_ROWSELECT = 2207;
  246. IDM_COLUMNSELECT = 2208;
  247. IDM_TABLESELECT = 2209;
  248. IDM_TABLEPROPERTIES = 2210;
  249. IDM_CELLPROPERTIES = 2211;
  250. IDM_ROWINSERT = 2212;
  251. IDM_COLUMNINSERT = 2213;
  252. IDM_HELP_CONTENT = 2220;
  253. IDM_HELP_ABOUT = 2221;
  254. IDM_HELP_README = 2222;
  255. IDM_REMOVEFORMAT = 2230;
  256. IDM_PAGEINFO = 2231;
  257. IDM_TELETYPE = 2232;
  258. IDM_GETBLOCKFMTS = 2233;
  259. IDM_BLOCKFMT = 2234;
  260. IDM_SHOWHIDE_CODE = 2235;
  261. IDM_TABLE = 2236;
  262. IDM_COPYFORMAT = 2237;
  263. IDM_PASTEFORMAT = 2238;
  264. IDM_GOTO = 2239;
  265. IDM_CHANGEFONT = 2240;
  266. IDM_CHANGEFONTSIZE = 2241;
  267. IDM_INCFONTSIZE = 2242;
  268. IDM_DECFONTSIZE = 2243;
  269. IDM_INCFONTSIZE1PT = 2244;
  270. IDM_DECFONTSIZE1PT = 2245;
  271. IDM_CHANGECASE = 2246;
  272. IDM_SUBSCRIPT = 2247;
  273. IDM_SUPERSCRIPT = 2248;
  274. IDM_SHOWSPECIALCHAR = 2249;
  275. IDM_CENTERALIGNPARA = 2250;
  276. IDM_LEFTALIGNPARA = 2251;
  277. IDM_RIGHTALIGNPARA = 2252;
  278. IDM_REMOVEPARAFORMAT = 2253;
  279. IDM_APPLYNORMAL = 2254;
  280. IDM_APPLYHEADING1 = 2255;
  281. IDM_APPLYHEADING2 = 2256;
  282. IDM_APPLYHEADING3 = 2257;
  283. IDM_DOCPROPERTIES = 2260;
  284. IDM_ADDFAVORITES = 2261;
  285. IDM_COPYSHORTCUT = 2262;
  286. IDM_SAVEBACKGROUND = 2263;
  287. IDM_SETWALLPAPER = 2264;
  288. IDM_COPYBACKGROUND = 2265;
  289. IDM_CREATESHORTCUT = 2266;
  290. IDM_PAGE = 2267;
  291. IDM_SAVETARGET = 2268;
  292. IDM_SHOWPICTURE = 2269;
  293. IDM_SAVEPICTURE = 2270;
  294. IDM_DYNSRCPLAY = 2271;
  295. IDM_DYNSRCSTOP = 2272;
  296. IDM_PRINTTARGET = 2273;
  297. IDM_IMGARTPLAY = 2274;
  298. IDM_IMGARTSTOP = 2275;
  299. IDM_IMGARTREWIND = 2276;
  300. IDM_PRINTQUERYJOBSPENDING = 2277;
  301. IDM_CONTEXTMENU = 2280;
  302. IDM_GOBACKWARD = 2282;
  303. IDM_GOFORWARD = 2283;
  304. IDM_PRESTOP = 2284;
  305. IDM_CREATELINK = 2290;
  306. IDM_COPYCONTENT = 2291;
  307. IDM_LANGUAGE = 2292;
  308. IDM_REFRESH = 2300;
  309. IDM_STOPDOWNLOAD = 2301;
  310. IDM_ENABLE_INTERACTION = 2302;
  311. IDM_LAUNCHDEBUGGER = 2310;
  312. IDM_BREAKATNEXT = 2311;
  313. IDM_INSINPUTHIDDEN = 2312;
  314. IDM_INSINPUTPASSWORD = 2313;
  315. IDM_OVERWRITE = 2314;
  316. IDM_PARSECOMPLETE = 2315;
  317. IDM_HTMLEDITMODE = 2316;
  318. IDM_REGISTRYREFRESH = 2317;
  319. IDM_COMPOSESETTINGS = 2318;
  320. IDM_SHOWALLTAGS = 2320;
  321. IDM_SHOWALIGNEDSITETAGS = 2321;
  322. IDM_SHOWSCRIPTTAGS = 2322;
  323. IDM_SHOWSTYLETAGS = 2323;
  324. IDM_SHOWCOMMENTTAGS = 2324;
  325. IDM_SHOWAREATAGS = 2325;
  326. IDM_SHOWUNKNOWNTAGS = 2326;
  327. IDM_SHOWMISCTAGS = 2327;
  328. IDM_SHOWZEROBORDERATDESIGNTIME = 2328;
  329. IDM_AUTODETECT = 2329;
  330. IDM_SCRIPTDEBUGGER = 2330;
  331. IDM_GETBYTESDOWNLOADED = 2331;
  332. IDM_NOACTIVATENORMALOLECONTROLS = 2332;
  333. IDM_NOACTIVATEDESIGNTIMECONTROLS = 2333;
  334. IDM_NOACTIVATEJAVAAPPLETS = 2334;
  335. IDM_SHOWWBRTAGS = 2340;
  336. IDM_PERSISTSTREAMSYNC = 2341;
  337. IDM_SETDIRTY = 2342;
  338. IDM_MIMECSET__FIRST__ = 3609;
  339. IDM_MIMECSET__LAST__ = 3640;
  340. IDM_MENUEXT_FIRST__ = 3700;
  341. IDM_MENUEXT_LAST__ = 3732;
  342. IDM_MENUEXT_COUNT = 3733;
  343. ID_EDITMODE = 32801;
  344. IDM_OPEN = 2000;
  345. IDM_NEW = 2001;
  346. IDM_SAVE = 70;
  347. IDM_SAVEAS = 71;
  348. IDM_SAVECOPYAS = 2002;
  349. IDM_PRINTPREVIEW = 2003;
  350. IDM_PRINT = 27;
  351. IDM_PAGESETUP = 2004;
  352. IDM_SPELL = 2005;
  353. IDM_PASTESPECIAL = 2006;
  354. IDM_CLEARSELECTION = 2007;
  355. IDM_PROPERTIES = 28;
  356. IDM_REDO = 29;
  357. IDM_UNDO = 43;
  358. IDM_SELECTALL = 31;
  359. IDM_ZOOMPERCENT = 50;
  360. IDM_GETZOOM = 68;
  361. IDM_STOP = 2138;
  362. IDM_COPY = 15;
  363. IDM_CUT = 16;
  364. IDM_PASTE = 26;
  365. IDM_TRIED_IS_1D_ELEMENT = 0; //[out,VT_BOOL]
  366. IDM_TRIED_IS_2D_ELEMENT = 1; //[out,VT_BOOL]
  367. IDM_TRIED_NUDGE_ELEMENT = 2; //[in,VT_BYREF VARIANT.byref=LPPOINT]
  368. IDM_TRIED_SET_ALIGNMENT = 3; //[in,VT_BYREF VARIANT.byref=LPPOINT]
  369. IDM_TRIED_MAKE_ABSOLUTE = 4;
  370. IDM_TRIED_LOCK_ELEMENT = 5;
  371. IDM_TRIED_SEND_TO_BACK = 6;
  372. IDM_TRIED_SEND_TO_FRONT = 7;
  373. IDM_TRIED_SEND_BACKWARD = 8;
  374. IDM_TRIED_SEND_FORWARD = 9;
  375. IDM_TRIED_SEND_BEHIND_1D = 10;
  376. IDM_TRIED_SEND_FRONT_1D = 11;
  377. IDM_TRIED_CONSTRAIN = 12; //[in,VT_BOOL]
  378. IDM_TRIED_SET_2D_DROP_MODE = 13; //[in,VT_BOOL]
  379. IDM_TRIED_INSERTROW = 14;
  380. IDM_TRIED_INSERTCOL = 15;
  381. IDM_TRIED_DELETEROWS = 16;
  382. IDM_TRIED_DELETECOLS = 17;
  383. IDM_TRIED_MERGECELLS = 18;
  384. IDM_TRIED_SPLITCELL = 19;
  385. IDM_TRIED_INSERTCELL = 20;
  386. IDM_TRIED_DELETECELLS = 21;
  387. IDM_TRIED_INSERTTABLE = 22; //[in, VT_ARRAY]
  388. //WARNING WARNING WARNING!!! Don't forget to modify IDM_TRIED_LAST_CID
  389. //when you add new Command IDs
  390. IDM_TRIED_LAST_CID = IDM_TRIED_INSERTTABLE;
  391. CLSID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
  392. type
  393. STATURL = record
  394. cbSize: DWORD;
  395. pwcsUrl: DWORD;
  396. pwcsTitle: DWORD;
  397. ftLastVisited: FILETIME;
  398. ftLastUpdated: FILETIME;
  399. ftExpires: FILETIME;
  400. dwFlags: DWORD;
  401. end;
  402. IDownloadManager = interface(IUnknown)
  403. ['{988934A4-064B-11D3-BB80-00104B35E7F9}']
  404. function Download(
  405. pmk: IMoniker; // Identifies the object to be downloaded
  406. pbc: IBindCtx; // Stores information used by the moniker to bind
  407. dwBindVerb: DWORD; // The action to be performed during the bind
  408. grfBINDF: DWORD; // Determines the use of URL encoding during the bind
  409. pBindInfo: PBindInfo; // Used to implement IBindStatusCallback::GetBindInfo
  410. pszHeaders: PWidechar; // Additional headers to use with IHttpNegotiate
  411. pszRedir: PWidechar; // The URL that the moniker is redirected to
  412. uiCP: UINT // The code page of the object's display name
  413. ): HRESULT; stdcall;
  414. end;
  415. IEnumSTATURL = interface(IUnknown)
  416. ['{3C374A42-BAE4-11CF-BF7D-00AA006946EE}']
  417. function Next(celt: Integer; out elt; pceltFetched: PLongint): HRESULT; stdcall;
  418. function Skip(celt: Longint): HRESULT; stdcall;
  419. function Reset: HResult; stdcall;
  420. function Clone(out ppenum: IEnumSTATURL): HResult; stdcall;
  421. function SetFilter(poszFilter: PWideChar; dwFlags: DWORD): HResult; stdcall;
  422. end;
  423. IUrlHistoryStg = interface(IUnknown)
  424. ['{3C374A41-BAE4-11CF-BF7D-00AA006946EE}']
  425. function AddUrl(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer): HResult; stdcall;
  426. function DeleteUrl(pocsUrl: PWideChar; dwFlags: Integer): HResult; stdcall;
  427. function QueryUrl(pocsUrl: PWideChar; dwFlags: Integer; var lpSTATURL: STATURL): HResult; stdcall;
  428. function BindToObject(pocsUrl: PWideChar; var riid: TIID; out ppvOut: Pointer): HResult; stdcall;
  429. function EnumUrls(out ppenum: IEnumSTATURL): HResult; stdcall;
  430. end;
  431. IUrlHistoryStg2 = interface(IUrlHistoryStg)
  432. ['{AFA0DC11-C313-11D0-831A-00C04FD5AE38}']
  433. function AddUrlAndNotify(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer;
  434. fWriteHistory: Integer; var poctNotify: Pointer;
  435. const punkISFolder: IUnknown): HResult; stdcall;
  436. function ClearHistory: HResult; stdcall;
  437. end;
  438. IUrlHistoryNotify = interface(IOleCommandTarget)
  439. ['{BC40BEC1-C493-11d0-831B-00C04FD5AE38}']
  440. end;
  441. PDOCHOSTUIINFO = ^TDOCHOSTUIINFO;
  442. TDOCHOSTUIINFO = record
  443. cbSize: ULONG;
  444. dwFlags: DWORD;
  445. dwDoubleClick: DWORD;
  446. chHostCss: POLESTR;
  447. chHostNS: POLESTR;
  448. end;
  449. IDocHostShowUI = interface(IUnknown)
  450. ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
  451. function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;
  452. dwType: longint; lpstrHelpFile: POLESTR; dwHelpContext: longint;
  453. var plResult: LRESULT): HRESULT; stdcall;
  454. function ShowHelp(hwnd: THandle; pszHelpFile: POLESTR; uCommand: integer;
  455. dwData: longint; ptMouse: TPoint;
  456. var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
  457. end; // IDocHostShowUI
  458. IDocHostUIHandler = interface(IUnknown)
  459. ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}']
  460. function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT;
  461. const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT; stdcall;
  462. function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
  463. function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject;
  464. const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
  465. const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
  466. function HideUI: HRESULT; stdcall;
  467. function UpdateUI: HRESULT; stdcall;
  468. function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
  469. function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
  470. function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
  471. function ResizeBorder(const prcBorder: PRECT;
  472. const pUIWindow: IOleInPlaceUIWindow;
  473. const fRameWindow: BOOL): HRESULT; stdcall;
  474. function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID;
  475. const nCmdID: DWORD): HRESULT; stdcall;
  476. function GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT; stdcall;
  477. function GetDropTarget(const pDropTarget: IDropTarget;
  478. out ppDropTarget: IDropTarget): HRESULT; stdcall;
  479. function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
  480. function TranslateUrl(const dwTranslate: DWORD; const pchURLIn: POLESTR;
  481. var ppchURLOut: POLESTR): HRESULT; stdcall;
  482. function FilterDataObject(const pDO: IDataObject;
  483. out ppDORet: IDataObject): HRESULT; stdcall;
  484. end; // IDocHostUIHandler
  485. IDocHostUIHandler2 = interface(IDocHostUIHandler)
  486. ['{3050f6d0-98b5-11cf-bb82-00aa00bdce0b}']
  487. function GetOverrideKeyPath(pchKey: POLESTR; dw: DWORD): HRESULT; stdcall;
  488. end;
  489. const
  490. IID_IUniformResourceLocatorA: TGUID = (
  491. D1: $FBF23B80; D2: $E3F0; D3: $101B; D4: ($84, $88, $00, $AA, $00, $3E, $56, $F8));
  492. IID_IUniformResourceLocatorW: TGUID = (
  493. D1: $CABB0DA0; D2: $DA57; D3: $11CF; D4: ($99, $74, $00, $20, $AF, $D7, $97, $62));
  494. {$IFDEF UNICODE}
  495. IID_IUniformResourceLocator: TGUID = (
  496. D1: $CABB0DA0; D2: $DA57; D3: $11CF; D4: ($99, $74, $00, $20, $AF, $D7, $97, $62));
  497. {$ELSE}
  498. IID_IUniformResourceLocator: TGUID = (
  499. D1: $FBF23B80; D2: $E3F0; D3: $101B; D4: ($84, $88, $00, $AA, $00, $3E, $56, $F8));
  500. {$ENDIF}
  501. const
  502. CLSID_InternetShortCut: TGUID = (
  503. d1: $FBF23B40; D2: $E3F0; D3: $101B; D4: ($84, $88, $00, $AA, $00, $3E, $56, $F8));
  504. SID_IUniformResourceLocatorA = '{FBF23B80-E3F0-101B-8488-00AA003E56F8}';
  505. SID_IUniformResourceLocatorW = '{CABB0DA0-DA57-11CF-9974-0020AFD79762}';
  506. {$IFDEF UNICODE}
  507. SID_IUniformResourceLocator = SID_IUniformResourceLocatorW;
  508. {$ELSE}
  509. SID_IUniformResourceLocator = SID_IUniformResourceLocatorA;
  510. {$ENDIF}
  511. IURL_SETURL_FL_GUESS_PROTOCOL = $0001; // Guess protocol if missing
  512. IURL_SETURL_FL_USE_DEFAULT_PROTOCOL = $0002; // Use default protocol if missing
  513. IURL_INVOKECOMMAND_FL_ALLOW_UI = $0001;
  514. IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB = $0002; // Ignore pcszVerb
  515. IURL_INVOKECOMMAND_FL_DDEWAIT = $0004; // pass DDEWAIT to ShellExec
  516. TRANSLATEURL_FL_GUESS_PROTOCOL = $0001; // Guess protocol if missing
  517. TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL = $0002; // Use default protocol if missing
  518. URLASSOCDLG_FL_USE_DEFAULT_NAME = $0001;
  519. URLASSOCDLG_FL_REGISTER_ASSOC = $0002;
  520. MIMEASSOCDLG_FL_REGISTER_ASSOC = $0001;
  521. type
  522. PUrlInvokeCommandInfoA = ^TUrlInvokeCommandInfoA;
  523. TUrlInvokeCommandInfoA = record
  524. dwcbSize: DWORD; // Size of structure
  525. dwFlags: DWORD; // Bit field of IURL_INVOKECOMMAND_FLAGS
  526. hwndParent: HWND; // Parent window. Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set.
  527. pcszVerb: LPCSTR; // Verb to invoke. Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.
  528. end;
  529. PUrlInvokeCommandInfoW = ^TUrlInvokeCommandInfoW;
  530. TUrlInvokeCommandInfoW = record
  531. dwcbSize: DWORD; // Size of structure
  532. dwFlags: DWORD; // Bit field of IURL_INVOKECOMMAND_FLAGS
  533. hwndParent: HWND; // Parent window. Valid only if IURL_INVOKECOMMAND_FL_ALLOW_UI is set.
  534. pcszVerb: LPCWSTR; // Verb to invoke. Ignored if IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB is set.
  535. end;
  536. {$IFDEF UNICODE}
  537. PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoW;
  538. TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoW;
  539. {$ELSE}
  540. PURLInvokeCommandInfo = ^TUrlInvokeCommandInfoA;
  541. TUrlInvokeCommandInfo = TUrlInvokeCOmmandInfoA;
  542. {$ENDIF}
  543. IUniformResourceLocatorA = interface(IUnknown)
  544. [SID_IUniformResourceLocatorA]
  545. function SetURL(pcszURL: LpcStr; dwInFlags: DWORD): HRESULT; stdcall;
  546. function GetURL(ppszURL: LpStr): HRESULT; stdcall;
  547. function InvokeCommand(purlici: PURLINVOKECOMMANDINFOA): HRESULT; stdcall;
  548. end;
  549. IUniformResourceLocatorW = interface(IUnknown)
  550. [SID_IUniformResourceLocatorW]
  551. function SetURL(pcszURL: LpcWStr; dwInFlags: DWORD): HRESULT; stdcall;
  552. function GetURL(ppszURL: LpWStr): HRESULT; stdcall;
  553. function InvokeCommand(purlici: PURLINVOKECOMMANDINFOW): HRESULT; stdcall;
  554. end;
  555. {$IFDEF UNICODE}
  556. IUniformResourceLocator = IUniformResourceLocatorW;
  557. {$ELSE}
  558. IUniformResourceLocator = IUniformResourceLocatorA;
  559. {$ENDIF}
  560. function TranslateURLA(pcszURL: LPCSTR;
  561. dwInFlags: DWORD;
  562. ppszTranslatedURL: LPSTR): HRESULT; stdcall;
  563. function TranslateURLW(pcszURL: LPCWSTR;
  564. dwInFlags: DWORD;
  565. ppszTranslatedURL: LPWSTR): HRESULT; stdcall;
  566. {$IFDEF UNICODE}
  567. function TranslateURL(pcszURL: LPCWSTR;
  568. dwInFlags: DWORD;
  569. ppszTranslatedURL: LPWSTR): HRESULT; stdcall;
  570. {$ELSE}
  571. function TranslateURL(pcszURL: LPCSTR;
  572. dwInFlags: DWORD;
  573. ppszTranslatedURL: LPSTR): HRESULT; stdcall;
  574. {$ENDIF}
  575. function URLAssociationDialogA(hwndParent: HWND;
  576. dwInFlags: DWORD;
  577. pcszFile: LPCSTR;
  578. pcszURL: LPCSTR;
  579. pszAppBuf: LPSTR;
  580. ucAppBufLen: UINT): HRESULT; stdcall;
  581. function URLAssociationDialogW(hwndParent: HWND;
  582. dwInFlags: DWORD;
  583. pcszFile: LPCWSTR;
  584. pcszURL: LPCWSTR;
  585. pszAppBuf: LPWSTR;
  586. ucAppBufLen: UINT): HRESULT; stdcall;
  587. {$IFDEF UNICODE}
  588. function URLAssociationDialog(hwndParent: HWND;
  589. dwInFlags: DWORD;
  590. pcszFile: LPCWSTR;
  591. pcszURL: LPCWSTR;
  592. pszAppBuf: LPWSTR;
  593. ucAppBufLen: UINT): HRESULT; stdcall;
  594. {$ELSE}
  595. function URLAssociationDialog(hwndParent: HWND;
  596. dwInFlags: DWORD;
  597. pcszFile: LPCSTR;
  598. pcszURL: LPCSTR;
  599. pszAppBuf: LPSTR;
  600. ucAppBufLen: UINT): HRESULT; stdcall;
  601. {$ENDIF}
  602. function MIMEAssociationDialogA(hwndParent: HWND;
  603. dwInFlags: DWORD;
  604. pcszFile: LPCSTR;
  605. pcszMIMEContentType: LPCSTR;
  606. pszAppBuf: LPSTR;
  607. ucAppBufLen: UINT): HRESULT; stdcall;
  608. function MIMEAssociationDialogW(hwndParent: HWND;
  609. dwInFlags: DWORD;
  610. pcszFile: LPCWSTR;
  611. pcszMIMEContentType: LPCWSTR;
  612. pszAppBuf: LPWSTR;
  613. ucAppBufLen: UINT): HRESULT; stdcall;
  614. {$IFDEF UNICODE}
  615. function MIMEAssociationDialog(hwndParent: HWND;
  616. dwInFlags: DWORD;
  617. pcszFile: LPCWSTR;
  618. pcszMIMEContentType: LPCWSTR;
  619. pszAppBuf: LPWSTR;
  620. ucAppBufLen: UINT): HRESULT; stdcall;
  621. {$ELSE}
  622. function MIMEAssociationDialog(hwndParent: HWND;
  623. dwInFlags: DWORD;
  624. pcszFile: LPCSTR;
  625. pcszMIMEContentType: LPCSTR;
  626. pszAppBuf: LPSTR;
  627. ucAppBufLen: UINT): HRESULT; stdcall;
  628. {$ENDIF}
  629. function InetIsOffline(dwFlags: DWORD): BOOL; stdcall;
  630. {$IFDEF VER120}
  631. const
  632. IID_IInternetSession: TGUID = '{79eac9e7-baf9-11ce-8c82-00aa004ba90b}';
  633. IID_IInternetSecurityMgrSite: TGUID = '{79eac9ed-baf9-11ce-8c82-00aa004ba90b}';
  634. IID_IInternetSecurityManager: TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}';
  635. IID_IInternetHostSecurityManager: TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}';
  636. SID_IInternetSecurityManager: TGUID = '{79eac9ee-baf9-11ce-8c82-00aa004ba90b}';
  637. SID_IInternetHostSecurityManager: TGUID = '{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}';
  638. IID_IInternetZoneManager: TGUID = '{79eac9ef-baf9-11ce-8c82-00aa004ba90b}';
  639. type
  640. TUrlZoneReg = ULONG;
  641. PBindInfo = ^TBindInfo;
  642. _tagBINDINFO = packed record
  643. cbSize: ULONG;
  644. szExtraInfo: LPWSTR;
  645. stgmedData: TStgMedium;
  646. grfBindInfoF: DWORD;
  647. dwBindVerb: DWORD;
  648. szCustomVerb: LPWSTR;
  649. cbstgmedData: DWORD;
  650. dwOptions: DWORD;
  651. dwOptionsFlags: DWORD;
  652. dwCodePage: DWORD;
  653. securityAttributes: TSecurityAttributes;
  654. iid: TGUID;
  655. pUnk: IUnknown;
  656. dwReserved: DWORD;
  657. end;
  658. TBindInfo = _tagBINDINFO;
  659. BINDINFO = _tagBINDINFO;
  660. {$NODEFINE POLEStrArray}
  661. POLEStrArray = ^TOLESTRArray;
  662. {$NODEFINE TOLEStrArray}
  663. TOLEStrArray = array[0..MaxLongint div SizeOf(POLEStr) - 1] of POLEStr;
  664. {$EXTERNALSYM IInternetBindInfo}
  665. IInternetBindInfo = interface
  666. ['{79eac9e1-baf9-11ce-8c82-00aa004ba90b}']
  667. function GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
  668. function GetBindString(ulStringType: ULONG; wzStr: POLEStrArray; cEl: ULONG;
  669. var cElFetched: ULONG): HResult; stdcall;
  670. end;
  671. PProtocolData = ^TProtocolData;
  672. {$EXTERNALSYM _tagPROTOCOLDATA}
  673. _tagPROTOCOLDATA = packed record
  674. grfFlags: DWORD;
  675. dwState: DWORD;
  676. pData: Pointer;
  677. cbData: ULONG;
  678. end;
  679. TProtocolData = _tagPROTOCOLDATA;
  680. {$EXTERNALSYM _tagPROTOCOLDATA}
  681. PROTOCOLDATA = _tagPROTOCOLDATA;
  682. {$EXTERNALSYM IInternetProtocolSink}
  683. IInternetProtocolSink = interface; // forward
  684. {$EXTERNALSYM IInternetProtocolRoot}
  685. IInternetProtocolRoot = interface
  686. ['{79eac9e3-baf9-11ce-8c82-00aa004ba90b}']
  687. function Start(szUrl: LPCWSTR; OIProtSink: IInternetProtocolSink;
  688. OIBindInfo: IInternetBindInfo; grfPI, dwReserved: DWORD): HResult; stdcall;
  689. function Continue(const ProtocolData: TProtocolData): HResult; stdcall;
  690. function Abort(hrReason: HResult; dwOptions: DWORD): HResult; stdcall;
  691. function Terminate(dwOptions: DWORD): HResult; stdcall;
  692. function Suspend: HResult; stdcall;
  693. function Resume: HResult; stdcall;
  694. end;
  695. {$EXTERNALSYM IInternetProtocol}
  696. IInternetProtocol = interface(IInternetProtocolRoot)
  697. ['{79eac9e4-baf9-11ce-8c82-00aa004ba90b}']
  698. function Read(pv: Pointer; cb: ULONG; out cbRead: ULONG): HResult; stdcall;
  699. function Seek(dlibMove: LARGE_INTEGER; dwOrigin: DWORD; out libNewPosition: ULARGE_INTEGER): HResult; stdcall;
  700. function LockRequest(dwOptions: DWORD): HResult; stdcall;
  701. function UnlockRequest: HResult; stdcall;
  702. end;
  703. {$EXTERNALSYM IInternetProtocolSink}
  704. IInternetProtocolSink = interface
  705. ['{79eac9e5-baf9-11ce-8c82-00aa004ba90b}']
  706. function Switch(const ProtocolData: TProtocolData): HResult; stdcall;
  707. function ReportProgress(ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult; stdcall;
  708. function ReportData(grfBSCF: DWORD; ulProgress, ulProgressMax: ULONG): HResult; stdcall;
  709. function ReportResult(hrResult: HResult; dwError: DWORD; szResult: LPCWSTR): HResult; stdcall;
  710. end;
  711. {$NODEFINE TLPCWSTRArray}
  712. TLPCWSTRArray = array[0..MaxLongInt div SizeOf(LPCWSTR) - 1] of LPCWSTR;
  713. {$NODEFINE PLPCWSTRArray}
  714. PLPCWSTRArray = ^TLPCWSTRArray;
  715. {$EXTERNALSYM IInternetSession}
  716. IInternetSession = interface
  717. ['{79eac9e7-baf9-11ce-8c82-00aa004ba90b}']
  718. function RegisterNameSpace(CF: IClassFactory; const clsid: TCLSID; pwzProtocol: LPCWSTR;
  719. cPatterns: ULONG; const pwzPatterns: PLPCWSTRArray; dwReserved: DWORD): HResult; stdcall;
  720. function UnregisterNameSpace(CF: IClassFactory; pszProtocol: LPCWSTR): HResult; stdcall;
  721. function RegisterMimeFilter(CF: IClassFactory; const rclsid: TCLSID;
  722. pwzType: LPCWSTR): HResult; stdcall;
  723. function UnregisterMimeFilter(CF: IClassFactory; pwzType: LPCWSTR): HResult; stdcall;
  724. function CreateBinding(BC: IBindCtx; szUrl: LPCWSTR; UnkOuter: IUnknown; out Unk: IUnknown;
  725. out OINetProt: IInternetProtocol; dwOption: DWORD): HResult; stdcall;
  726. function SetSessionOption(dwOption: DWORD; pBuffer: Pointer; dwBufferLength: DWORD;
  727. dwReserved: DWORD): HResult; stdcall;
  728. function GetSessionOption(dwOption: DWORD; pBuffer: Pointer; var dwBufferLength: DWORD;
  729. dwReserved: DWORD): HResult; stdcall;
  730. end; // IInternetSession
  731. {$EXTERNALSYM CoInternetGetSession}
  732. function CoInternetGetSession(dwSessionMode: DWORD; var pIInternetSession: IInternetSession;
  733. dwReserved: DWORD): HResult; stdcall;
  734. type
  735. {$EXTERNALSYM IInternetSecurityMgrSite}
  736. IInternetSecurityMgrSite = interface
  737. ['{79eac9ed-baf9-11ce-8c82-00aa004ba90b}']
  738. function GetWindow(out hwnd: HWnd): HResult; stdcall;
  739. function EnableModeless(fEnable: BOOL): HResult; stdcall;
  740. end;
  741. const
  742. {$EXTERNALSYM MAX_SIZE_SECURITY_ID}
  743. MAX_SIZE_SECURITY_ID = 512; // bytes;
  744. // MapUrlToZone returns the zone index given a URL
  745. {$EXTERNALSYM PUAF_DEFAULT}
  746. PUAF_DEFAULT = $00000000;
  747. {$EXTERNALSYM PUAF_NOUI}
  748. PUAF_NOUI = $00000001;
  749. {$EXTERNALSYM PUAF_ISFILE}
  750. PUAF_ISFILE = $00000002;
  751. {$EXTERNALSYM PUAF_WARN_IF_DENIED}
  752. PUAF_WARN_IF_DENIED = $00000004;
  753. {$EXTERNALSYM PUAF_FORCEUI_FOREGROUND}
  754. PUAF_FORCEUI_FOREGROUND = $00000008;
  755. {$EXTERNALSYM PUAF_CHECK_TIFS}
  756. PUAF_CHECK_TIFS = $00000010;
  757. // This is the wrapper function that most clients will use.
  758. // It figures out the current Policy for the passed in Action,
  759. // and puts up UI if the current Policy indicates that the user
  760. // should be queried. It returns back the Policy which the caller
  761. // will use to determine if the action should be allowed
  762. // This is the wrapper function to conveniently read a custom policy.
  763. // SetZoneMapping
  764. // lpszPattern: string denoting a URL pattern
  765. // Examples of valid patterns:
  766. // *://*.msn.com
  767. // http://*.sony.co.jp
  768. // *://et.msn.com
  769. // ftp://157.54.23.41/
  770. // https://localsvr
  771. // file:\localsvr\share
  772. // *://157.54.100-200.*
  773. // Examples of invalid patterns:
  774. // http://*.lcs.mit.edu
  775. // ftp://*
  776. // dwFlags: SZM_FLAGS values
  777. {$EXTERNALSYM SZM_CREATE}
  778. SZM_CREATE = $00000000;
  779. {$EXTERNALSYM SZM_DELETE}
  780. SZM_DELETE = $00000001;
  781. type
  782. {$EXTERNALSYM IInternetSecurityManager}
  783. IInternetSecurityManager = interface
  784. ['{79eac9ee-baf9-11ce-8c82-00aa004ba90b}']
  785. function SetSecuritySite(Site: IInternetSecurityMgrSite): HResult; stdcall;
  786. function GetSecuritySite(out Site: IInternetSecurityMgrSite): HResult; stdcall;
  787. function MapUrlToZone(pwszUrl: LPCWSTR; out dwZone: DWORD;
  788. dwFlags: DWORD): HResult; stdcall;
  789. function GetSecurityId(pwszUrl: LPCWSTR; pbSecurityId: Pointer;
  790. var cbSecurityId: DWORD; dwReserved: DWORD): HResult; stdcall;
  791. function ProcessUrlAction(pwszUrl: LPCWSTR; dwAction: DWORD;
  792. pPolicy: Pointer; cbPolicy: DWORD; pContext: Pointer; cbContext: DWORD;
  793. dwFlags, dwReserved: DWORD): HResult; stdcall;
  794. function QueryCustomPolicy(pwszUrl: LPCWSTR; const guidKey: TGUID;
  795. out pPolicy: Pointer; out cbPolicy: DWORD; pContext: Pointer; cbContext: DWORD;
  796. dwReserved: DWORD): HResult; stdcall;
  797. function SetZoneMapping(dwZone: DWORD; lpszPattern: LPCWSTR;
  798. dwFlags: DWORD): HResult; stdcall;
  799. function GetZoneMappings(dwZone: DWORD; out enumString: IEnumString;
  800. dwFlags: DWORD): HResult; stdcall;
  801. end;
  802. {$EXTERNALSYM IInternetHostSecurityManager}
  803. IInternetHostSecurityManager = interface
  804. ['{3af280b6-cb3f-11d0-891e-00c04fb6bfc4}']
  805. function GetSecurityId(pbSecurityId: Pointer; var cbSecurityId: DWORD;
  806. dwReserved: DWORD): HResult; stdcall;
  807. function ProcessUrlAction(dwAction: DWORD; pPolicy: Pointer; cbPolicy: DWORD;
  808. pContext: Pointer; cbContext, dwFlags, dwReserved: DWORD): HResult; stdcall;
  809. function QueryCustomPolicy(const guidKey: TGUID; out pPolicy: Pointer; out cbPolicy: DWORD;
  810. pContext: Pointer; cbContext, dwReserved: DWORD): HResult; stdcall;
  811. end;
  812. const
  813. {$EXTERNALSYM URLACTION_MIN}
  814. URLACTION_MIN = $00001000;
  815. {$EXTERNALSYM URLACTION_DOWNLOAD_MIN}
  816. URLACTION_DOWNLOAD_MIN = $00001000;
  817. {$EXTERNALSYM URLACTION_DOWNLOAD_SIGNED_ACTIVEX}
  818. URLACTION_DOWNLOAD_SIGNED_ACTIVEX = $00001001;
  819. {$EXTERNALSYM URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX}
  820. URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX = $00001004;
  821. {$EXTERNALSYM URLACTION_DOWNLOAD_CURR_MAX}
  822. URLACTION_DOWNLOAD_CURR_MAX = $00001004;
  823. {$EXTERNALSYM URLACTION_DOWNLOAD_MAX}
  824. URLACTION_DOWNLOAD_MAX = $000011FF;
  825. {$EXTERNALSYM URLACTION_ACTIVEX_MIN}
  826. URLACTION_ACTIVEX_MIN = $00001200;
  827. {$EXTERNALSYM URLACTION_ACTIVEX_RUN}
  828. URLACTION_ACTIVEX_RUN = $00001200;
  829. {$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY}
  830. URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY = $00001201; // aggregate next four
  831. {$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY}
  832. URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY = $00001202; //
  833. {$EXTERNALSYM URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY}
  834. URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY = $00001203; //
  835. {$EXTERNALSYM URLACTION_SCRIPT_OVERRIDE_SAFETY}
  836. URLACTION_SCRIPT_OVERRIDE_SAFETY = $00001401; //
  837. {$EXTERNALSYM URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY}
  838. URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY = $00001204; //
  839. {$EXTERNALSYM URLACTION_ACTIVEX_TREATASUNTRUSTED}
  840. URLACTION_ACTIVEX_TREATASUNTRUSTED = $00001205;
  841. {$EXTERNALSYM URLACTION_ACTIVEX_CURR_MAX}
  842. URLACTION_ACTIVEX_CURR_MAX = $00001205;
  843. {$EXTERNALSYM URLACTION_ACTIVEX_MAX}
  844. URLACTION_ACTIVEX_MAX = $000013FF;
  845. {$EXTERNALSYM URLACTION_SCRIPT_MIN}
  846. URLACTION_SCRIPT_MIN = $00001400;
  847. {$EXTERNALSYM URLACTION_SCRIPT_RUN}
  848. URLACTION_SCRIPT_RUN = $00001400;
  849. {$EXTERNALSYM URLACTION_SCRIPT_JAVA_USE}
  850. URLACTION_SCRIPT_JAVA_USE = $00001402;
  851. {$EXTERNALSYM URLACTION_SCRIPT_SAFE_ACTIVEX}
  852. URLACTION_SCRIPT_SAFE_ACTIVEX = $00001405;
  853. {$EXTERNALSYM URLACTION_SCRIPT_CURR_MAX}
  854. URLACTION_SCRIPT_CURR_MAX = $00001405;
  855. {$EXTERNALSYM URLACTION_SCRIPT_MAX}
  856. URLACTION_SCRIPT_MAX = $000015FF;
  857. {$EXTERNALSYM URLACTION_HTML_MIN}
  858. URLACTION_HTML_MIN = $00001600;
  859. {$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS}
  860. URLACTION_HTML_SUBMIT_FORMS = $00001601; // aggregate next two
  861. {$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS_FROM}
  862. URLACTION_HTML_SUBMIT_FORMS_FROM = $00001602; //
  863. {$EXTERNALSYM URLACTION_HTML_SUBMIT_FORMS_TO}
  864. URLACTION_HTML_SUBMIT_FORMS_TO = $00001603; //
  865. {$EXTERNALSYM URLACTION_HTML_FONT_DOWNLOAD}
  866. URLACTION_HTML_FONT_DOWNLOAD = $00001604;
  867. {$EXTERNALSYM URLACTION_HTML_JAVA_RUN}
  868. URLACTION_HTML_JAVA_RUN = $00001605; // derive from Java custom policy;
  869. {$EXTERNALSYM URLACTION_HTML_CURR_MAX}
  870. URLACTION_HTML_CURR_MAX = $00001605;
  871. {$EXTERNALSYM URLACTION_HTML_MAX}
  872. URLACTION_HTML_MAX = $000017FF;
  873. {$EXTERNALSYM URLACTION_SHELL_MIN}
  874. URLACTION_SHELL_MIN = $00001800;
  875. {$EXTERNALSYM URLACTION_SHELL_INSTALL_DTITEMS}
  876. URLACTION_SHELL_INSTALL_DTITEMS = $00001800;
  877. {$EXTERNALSYM URLACTION_SHELL_MOVE_OR_COPY}
  878. URLACTION_SHELL_MOVE_OR_COPY = $00001802;
  879. {$EXTERNALSYM URLACTION_SHELL_FILE_DOWNLOAD}
  880. URLACTION_SHELL_FILE_DOWNLOAD = $00001803;
  881. {$EXTERNALSYM URLACTION_SHELL_VERB}
  882. URLACTION_SHELL_VERB = $00001804;
  883. {$EXTERNALSYM URLACTION_SHELL_WEBVIEW_VERB}
  884. URLACTION_SHELL_WEBVIEW_VERB = $00001805;
  885. {$EXTERNALSYM URLACTION_SHELL_CURR_MAX}
  886. URLACTION_SHELL_CURR_MAX = $00001805;
  887. {$EXTERNALSYM URLACTION_SHELL_MAX}
  888. URLACTION_SHELL_MAX = $000019FF;
  889. {$EXTERNALSYM URLACTION_NETWORK_MIN}
  890. URLACTION_NETWORK_MIN = $00001A00;
  891. {$EXTERNALSYM URLACTION_CREDENTIALS_USE}
  892. URLACTION_CREDENTIALS_USE = $00001A00;
  893. {$EXTERNALSYM URLPOLICY_CREDENTIALS_SILENT_LOGON_OK}
  894. URLPOLICY_CREDENTIALS_SILENT_LOGON_OK = $00000000;
  895. {$EXTERNALSYM URLPOLICY_CREDENTIALS_MUST_PROMPT_USER}
  896. URLPOLICY_CREDENTIALS_MUST_PROMPT_USER = $00010000;
  897. {$EXTERNALSYM URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT}
  898. URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT = $00020000;
  899. {$EXTERNALSYM URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY}
  900. URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY = $00030000;
  901. {$EXTERNALSYM URLACTION_AUTHENTICATE_CLIENT}
  902. URLACTION_AUTHENTICATE_CLIENT = $00001A01;
  903. {$EXTERNALSYM URLPOLICY_AUTHENTICATE_CLEARTEXT_OK}
  904. URLPOLICY_AUTHENTICATE_CLEARTEXT_OK = $00000000;
  905. {$EXTERNALSYM URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE}
  906. URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE = $00010000;
  907. {$EXTERNALSYM URLPOLICY_AUTHENTICATE_MUTUAL_ONLY}
  908. URLPOLICY_AUTHENTICATE_MUTUAL_ONLY = $00030000;
  909. {$EXTERNALSYM URLACTION_NETWORK_CURR_MAX}
  910. URLACTION_NETWORK_CURR_MAX = $00001A01;
  911. {$EXTERNALSYM URLACTION_NETWORK_MAX}
  912. URLACTION_NETWORK_MAX = $00001BFF;
  913. {$EXTERNALSYM URLACTION_JAVA_MIN}
  914. URLACTION_JAVA_MIN = $00001C00;
  915. {$EXTERNALSYM URLACTION_JAVA_PERMISSIONS}
  916. URLACTION_JAVA_PERMISSIONS = $00001C00;
  917. {$EXTERNALSYM URLPOLICY_JAVA_PROHIBIT}
  918. URLPOLICY_JAVA_PROHIBIT = $00000000;
  919. {$EXTERNALSYM URLPOLICY_JAVA_HIGH}
  920. URLPOLICY_JAVA_HIGH = $00010000;
  921. {$EXTERNALSYM URLPOLICY_JAVA_MEDIUM}
  922. URLPOLICY_JAVA_MEDIUM = $00020000;
  923. {$EXTERNALSYM URLPOLICY_JAVA_LOW}
  924. URLPOLICY_JAVA_LOW = $00030000;
  925. {$EXTERNALSYM URLPOLICY_JAVA_CUSTOM}
  926. URLPOLICY_JAVA_CUSTOM = $00800000;
  927. {$EXTERNALSYM URLACTION_JAVA_CURR_MAX}
  928. URLACTION_JAVA_CURR_MAX = $00001C00;
  929. {$EXTERNALSYM URLACTION_JAVA_MAX}
  930. URLACTION_JAVA_MAX = $00001CFF;
  931. // The following Infodelivery actions should have no default policies
  932. // in the registry. They assume that no default policy means fall
  933. // back to the global restriction. If an admin sets a policy per
  934. // zone, then it overrides the global restriction.
  935. {$EXTERNALSYM URLACTION_INFODELIVERY_MIN}
  936. URLACTION_INFODELIVERY_MIN = $00001D00;
  937. {$EXTERNALSYM URLACTION_INFODELIVERY_NO_ADDING_CHANNELS}
  938. URLACTION_INFODELIVERY_NO_ADDING_CHANNELS = $00001D00;
  939. {$EXTERNALSYM URLACTION_INFODELIVERY_NO_EDITING_CHANNELS}
  940. URLACTION_INFODELIVERY_NO_EDITING_CHANNELS = $00001D01;
  941. {$EXTERNALSYM URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS}
  942. URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS = $00001D02;
  943. {$EXTERNALSYM URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS}
  944. URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS = $00001D03;
  945. {$EXTERNALSYM URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS}
  946. URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS = $00001D04;
  947. {$EXTERNALSYM URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS}
  948. URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS = $00001D05;
  949. {$EXTERNALSYM URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING}
  950. URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING = $00001D06;
  951. {$EXTERNALSYM URLACTION_INFODELIVERY_CURR_MAX}
  952. URLACTION_INFODELIVERY_CURR_MAX = $00001D06;
  953. {$EXTERNALSYM URLACTION_INFODELIVERY_MAX}
  954. URLACTION_INFODELIVERY_MAX = $00001DFF;
  955. {$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_MIN}
  956. URLACTION_CHANNEL_SOFTDIST_MIN = $00001E00;
  957. {$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_PERMISSIONS}
  958. URLACTION_CHANNEL_SOFTDIST_PERMISSIONS = $00001E05;
  959. {$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT}
  960. URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT = $00010000;
  961. {$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_PRECACHE}
  962. URLPOLICY_CHANNEL_SOFTDIST_PRECACHE = $00020000;
  963. {$EXTERNALSYM URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL}
  964. URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL = $00030000;
  965. {$EXTERNALSYM URLACTION_CHANNEL_SOFTDIST_MAX}
  966. URLACTION_CHANNEL_SOFTDIST_MAX = $00001EFF;
  967. // For each action specified above the system maintains
  968. // a set of policies for the action.
  969. // The only policies supported currently are permissions (i.e. is something allowed)
  970. // and logging status.
  971. // IMPORTANT: If you are defining your own policies don't overload the meaning of the
  972. // loword of the policy. You can use the hiword to store any policy bits which are only
  973. // meaningful to your action.
  974. // For an example of how to do this look at the URLPOLICY_JAVA above
  975. // Permissions
  976. {$EXTERNALSYM URLPOLICY_ALLOW}
  977. URLPOLICY_ALLOW = $00;
  978. {$EXTERNALSYM URLPOLICY_QUERY}
  979. URLPOLICY_QUERY = $01;
  980. {$EXTERNALSYM URLPOLICY_DISALLOW}
  981. URLPOLICY_DISALLOW = $03;
  982. // Notifications are not done when user already queried.
  983. {$EXTERNALSYM URLPOLICY_NOTIFY_ON_ALLOW}
  984. URLPOLICY_NOTIFY_ON_ALLOW = $10;
  985. {$EXTERNALSYM URLPOLICY_NOTIFY_ON_DISALLOW}
  986. URLPOLICY_NOTIFY_ON_DISALLOW = $20;
  987. // Logging is done regardless of whether user was queried.
  988. {$EXTERNALSYM URLPOLICY_LOG_ON_ALLOW}
  989. URLPOLICY_LOG_ON_ALLOW = $40;
  990. {$EXTERNALSYM URLPOLICY_LOG_ON_DISALLOW}
  991. URLPOLICY_LOG_ON_DISALLOW = $80;
  992. {$EXTERNALSYM URLPOLICY_MASK_PERMISSIONS}
  993. URLPOLICY_MASK_PERMISSIONS = $0F;
  994. // The ordinal #'s that define the predefined zones internet explorer knows about.
  995. // When we support user-defined zones their zone numbers should be between
  996. // URLZONE_USER_MIN and URLZONE_USER_MAX
  997. const
  998. {$EXTERNALSYM URLZONE_PREDEFINED_MIN}
  999. URLZONE_PREDEFINED_MIN = 0;
  1000. {$EXTERNALSYM URLZONE_LOCAL_MACHINE}
  1001. URLZONE_LOCAL_MACHINE = 0;
  1002. {$EXTERNALSYM URLZONE_INTRANET}
  1003. URLZONE_INTRANET = URLZONE_LOCAL_MACHINE + 1;
  1004. {$EXTERNALSYM URLZONE_TRUSTED}
  1005. URLZONE_TRUSTED = URLZONE_INTRANET + 1;
  1006. {$EXTERNALSYM URLZONE_INTERNET}
  1007. URLZONE_INTERNET = URLZONE_TRUSTED + 1;
  1008. {$EXTERNALSYM URLZONE_UNTRUSTED}
  1009. URLZONE_UNTRUSTED = URLZONE_INTERNET + 1;
  1010. {$EXTERNALSYM URLZONE_PREDEFINED_MAX}
  1011. URLZONE_PREDEFINED_MAX = 999;
  1012. {$EXTERNALSYM URLZONE_USER_MIN}
  1013. URLZONE_USER_MIN = 1000;
  1014. {$EXTERNALSYM URLZONE_USER_MAX}
  1015. URLZONE_USER_MAX = 10000;
  1016. {$EXTERNALSYM URLTEMPLATE_CUSTOM}
  1017. URLTEMPLATE_CUSTOM = $00000000;
  1018. {$EXTERNALSYM URLTEMPLATE_PREDEFINED_MIN}
  1019. URLTEMPLATE_PREDEFINED_MIN = $00010000;
  1020. {$EXTERNALSYM URLTEMPLATE_LOW}
  1021. URLTEMPLATE_LOW = $00010000;
  1022. {$EXTERNALSYM URLTEMPLATE_MEDIUM}
  1023. URLTEMPLATE_MEDIUM = $00011000;
  1024. {$EXTERNALSYM URLTEMPLATE_HIGH}
  1025. URLTEMPLATE_HIGH = $00012000;
  1026. {$EXTERNALSYM URLTEMPLATE_PREDEFINED_MAX}
  1027. URLTEMPLATE_PREDEFINED_MAX = $00020000;
  1028. {$EXTERNALSYM MAX_ZONE_PATH}
  1029. MAX_ZONE_PATH = 260;
  1030. {$EXTERNALSYM MAX_ZONE_DESCRIPTION}
  1031. MAX_ZONE_DESCRIPTION = 200;
  1032. {$EXTERNALSYM ZAFLAGS_CUSTOM_EDIT}
  1033. ZAFLAGS_CUSTOM_EDIT = $00000001;
  1034. {$EXTERNALSYM ZAFLAGS_ADD_SITES}
  1035. ZAFLAGS_ADD_SITES = $00000002;
  1036. {$EXTERNALSYM ZAFLAGS_REQUIRE_VERIFICATION}
  1037. ZAFLAGS_REQUIRE_VERIFICATION = $00000004;
  1038. {$EXTERNALSYM ZAFLAGS_INCLUDE_PROXY_OVERRIDE}
  1039. ZAFLAGS_INCLUDE_PROXY_OVERRIDE = $00000008;
  1040. {$EXTERNALSYM ZAFLAGS_INCLUDE_INTRANET_SITES}
  1041. ZAFLAGS_INCLUDE_INTRANET_SITES = $00000010;
  1042. {$EXTERNALSYM ZAFLAGS_NO_UI}
  1043. ZAFLAGS_NO_UI = $00000020;
  1044. {$EXTERNALSYM ZAFLAGS_SUPPORTS_VERIFICATION}
  1045. ZAFLAGS_SUPPORTS_VERIFICATION = $00000040;
  1046. {$EXTERNALSYM ZAFLAGS_UNC_AS_INTRANET}
  1047. ZAFLAGS_UNC_AS_INTRANET = $00000080;
  1048. type
  1049. PZoneAttributes = ^TZoneAttributes;
  1050. {$EXTERNALSYM _ZONEATTRIBUTES}
  1051. _ZONEATTRIBUTES = packed record
  1052. cbSize: ULONG;
  1053. szDisplayName: array[0..260 - 1] of WideChar;
  1054. szDescription: array[0..200 - 1] of WideChar;
  1055. szIconPath: array[0..260 - 1] of WideChar;
  1056. dwTemplateMinLevel: DWORD;
  1057. dwTemplateRecommended: DWORD;
  1058. dwTemplateCurrentLevel: DWORD;
  1059. dwFlags: DWORD;
  1060. end;
  1061. TZoneAttributes = _ZONEATTRIBUTES;
  1062. {$EXTERNALSYM ZONEATTRIBUTES}
  1063. ZONEATTRIBUTES = _ZONEATTRIBUTES;
  1064. // Gets the zone attributes (information in registry other than actual security
  1065. // policies associated with the zone). Zone attributes are fixed as:
  1066. // Sets the zone attributes (information in registry other than actual security
  1067. // policies associated with the zone). Zone attributes as above.
  1068. // Returns S_OK or ??? if failed to write the zone attributes.
  1069. { Registry Flags
  1070. When reading, default behavior is:
  1071. If HKLM allows override and HKCU value exists
  1072. Then use HKCU value
  1073. Else use HKLM value
  1074. When writing, default behavior is same as HKCU
  1075. If HKLM allows override
  1076. Then Write to HKCU
  1077. Else Fail
  1078. }
  1079. const
  1080. {$EXTERNALSYM URLZONEREG_DEFAULT}
  1081. URLZONEREG_DEFAULT = 0;
  1082. {$EXTERNALSYM URLZONEREG_HKLM}
  1083. URLZONEREG_HKLM = URLZONEREG_DEFAULT + 1;
  1084. {$EXTERNALSYM URLZONEREG_HKCU}
  1085. URLZONEREG_HKCU = URLZONEREG_HKLM + 1;
  1086. // Gets a named custom policy associated with a zone;
  1087. // e.g. the Java VM settings can be defined with a unique key such as 'Java'.
  1088. // Custom policy support is intended to allow extensibility from the predefined
  1089. // set of policies that IE4 has built in.
  1090. //
  1091. // pwszKey is the string name designating the custom policy. Components are
  1092. // responsible for having unique names.
  1093. // ppPolicy is the callee allocated buffer for the policy byte blob; caller is
  1094. // responsible for freeing this buffer eventually.
  1095. // pcbPolicy is the size of the byte blob returned.
  1096. // dwRegFlags determines how registry is accessed (see above).
  1097. // Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced).
  1098. // Sets a named custom policy associated with a zone;
  1099. // e.g. the Java VM settings can be defined with a unique key such as 'Java'.
  1100. // Custom policy support is intended to allow extensibility from the predefined
  1101. // set of policies that IE4 has built in.
  1102. //
  1103. // pwszKey is the string name designating the custom policy. Components are
  1104. // responsible for having unique names.
  1105. // ppPolicy is the caller allocated buffer for the policy byte blob.
  1106. // pcbPolicy is the size of the byte blob to be set.
  1107. // dwRegFlags determines if HTCU or HKLM is set.
  1108. // Returns S_OK or ??? if failed to write the zone custom policy.
  1109. // Gets action policy associated with a zone, the builtin, fixed-length policies info.
  1110. // dwAction is the action code for the action as defined above.
  1111. // pPolicy is the caller allocated buffer for the policy data.
  1112. // cbPolicy is the size of the caller allocated buffer.
  1113. // dwRegFlags determines how registry is accessed (see above).
  1114. // Returns S_OK if action is valid; ??? if action is not valid.
  1115. type
  1116. {$EXTERNALSYM IInternetZoneManager}
  1117. IInternetZoneManager = interface
  1118. ['{79eac9ef-baf9-11ce-8c82-00aa004ba90b}']
  1119. // Gets the zone attributes (information in registry other than actual security
  1120. // policies associated with the zone). Zone attributes are fixed as:
  1121. function GetZoneAttributes(dwZone: DWORD;
  1122. var ZoneAttributes: TZoneAttributes): HResult; stdcall;
  1123. // Sets the zone attributes (information in registry other than actual security
  1124. // policies associated with the zone). Zone attributes as above.
  1125. // Returns S_OK or ??? if failed to write the zone attributes.
  1126. function SetZoneAttributes(dwZone: DWORD;
  1127. const ZoneAttributes: TZoneAttributes): HResult; stdcall;
  1128. function GetZoneCustomPolicy(dwZone: DWORD; const guidKey: TGUID; out pPolicy: Pointer;
  1129. out cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
  1130. function SetZoneCustomPolicy(dwZone: DWORD; const guidKey: TGUID; pPolicy: Pointer;
  1131. cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
  1132. function GetZoneActionPolicy(dwZone, dwAction: DWORD; pPolicy: Pointer;
  1133. cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
  1134. function SetZoneActionPolicy(dwZone, dwAction: DWORD; pPolicy: Pointer;
  1135. cbPolicy: DWORD; urlZoneReg: TUrlZoneReg): HResult; stdcall;
  1136. function PromptAction(dwAction: DWORD; hwndParent: HWnd; pwszUrl, pwszText: LPCWSTR;
  1137. dwPromptFlags: DWORD): HResult; stdcall;
  1138. function LogAction(dwAction: DWORD; pwszUrl, pwszText: LPCWSTR;
  1139. dwLogFlags: DWORD): HResult; stdcall;
  1140. function CreateZoneEnumerator(out dwEnum, dwCount: DWORD;
  1141. dwFlags: DWORD): HResult; stdcall;
  1142. function GetZoneAt(dwEnum, dwIndex: DWORD; out dwZone: DWORD): HResult; stdcall;
  1143. function DestroyZoneEnumerator(dwEnum: DWORD): HResult; stdcall;
  1144. function CopyTemplatePoliciesToZone(dwTemplate, dwZone, dwReserved: DWORD): HResult; stdcall;
  1145. end;
  1146. // Creates the security manager object. The first argument is the Service provider
  1147. // to allow for delegation
  1148. {$EXTERNALSYM CoInternetCreateSecurityManager}
  1149. function CoInternetCreateSecurityManager(SP: IServiceProvider; var SM: IInternetSecurityManager;
  1150. dwReserved: DWORD): HResult; stdcall;
  1151. {$EXTERNALSYM CoInternetCreateZoneManager}
  1152. function CoInternetCreateZoneManager(SP: IServiceProvider; var ZM: IInternetZoneManager;
  1153. dwReserved: DWORD): HResult; stdcall;
  1154. {$ENDIF}
  1155. var
  1156. ShellModule: THandle;
  1157. ComCtlModule : THandle;
  1158. HHCtrlModule : THandle;
  1159. function SHLockShared(Handle: THandle; DW: DWORD): Pointer; stdcall;
  1160. function SHUnlockShared(Pnt: Pointer): BOOL; stdcall;
  1161. function SHFreeShared(Handle: THandle; DW: DWORD): Pointer; stdcall;
  1162. function _Free(Pidl: PItemIDList): BOOL; stdcall;
  1163. function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
  1164. dwData: DWORD): HWND; stdcall;
  1165. implementation
  1166. const
  1167. urldll = 'url.dll';
  1168. function InetIsOffline; external urldll name 'InetIsOffline';
  1169. function MIMEAssociationDialogW; external urldll name 'MIMEAssociationDialogW';
  1170. function MIMEAssociationDialogA; external urldll name 'MIMEAssociationDialogA';
  1171. {$IFDEF UNICODE}
  1172. function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogW';
  1173. {$ELSE}
  1174. function MIMEAssociationDialog; external urldll name 'MIMEAssociationDialogA';
  1175. {$ENDIF}
  1176. function URLAssociationDialogW; external urldll name 'URLAssociationDialogW';
  1177. function URLAssociationDialogA; external urldll name 'URLAssociationDialogA';
  1178. {$IFDEF UNICODE}
  1179. function URLAssociationDialog; external urldll name 'URLAssociationDialogW';
  1180. {$ELSE}
  1181. function URLAssociationDialog; external urldll name 'URLAssociationDialogA';
  1182. {$ENDIF}
  1183. function TranslateURLA; external urldll name 'TranslateURLA';
  1184. function TranslateURLW; external urldll name 'TranslateURLW';
  1185. {$IFDEF UNICODE}
  1186. function TranslateURL; external urldll name 'TranslateURLW';
  1187. {$ELSE}
  1188. function TranslateURL; external urldll name 'TranslateURLA';
  1189. {$ENDIF}
  1190. {$IFDEF VER120}
  1191. const
  1192. UrlMonLib = 'URLMON.DLL';
  1193. function CoInternetGetSession; external UrlMonLib name 'CoInternetGetSession';
  1194. function CoInternetCreateSecurityManager; external UrlMonLib name 'CoInternetCreateSecurityManager';
  1195. function CoInternetCreateZoneManager; external UrlMonLib name 'CoInternetCreateZoneManager';
  1196. {$ENDIF}
  1197. const
  1198. Shell32 = 'shell32.dll';
  1199. comctl32 = 'comctl32.dll';
  1200. hhctrl = 'hhctrl.ocx';
  1201. SHLockShared_Index = 521;
  1202. SHUnlockShared_Index = 522;
  1203. SHFreeShared_Index = 523;
  1204. Free_Index = 73;
  1205. function GetShellModule: THandle;
  1206. begin
  1207. if ShellModule = 0 then
  1208. begin
  1209. ShellModule := {$IFDEF VER120} LoadLibrary(Shell32){$ELSE}SafeLoadLibrary(Shell32){$ENDIF};
  1210. if ShellModule <= HINSTANCE_ERROR then
  1211. ShellModule := 0;
  1212. end;
  1213. Result := ShellModule;
  1214. end;
  1215. function GetHHctrlModule: THandle;
  1216. begin
  1217. if HHCtrlModule = 0 then
  1218. begin
  1219. HHCtrlModule :={$IFDEF VER120} LoadLibrary(HHCtrl){$ELSE} SafeLoadLibrary(HHCtrl){$ENDIF};
  1220. if HHCtrlModule <= HINSTANCE_ERROR then
  1221. HHCtrlModule := 0;
  1222. end;
  1223. Result := HHCtrlModule;
  1224. end;
  1225. function GetComctlModule: THandle;
  1226. begin
  1227. if ComctlModule = 0 then
  1228. begin
  1229. ComctlModule := {$IFDEF VER120}LoadLibrary(comctl32) {$ELSE} SafeLoadLibrary(comctl32){$ENDIF};
  1230. if ComctlModule <= HINSTANCE_ERROR then
  1231. ComctlModule := 0;
  1232. end;
  1233. Result := ComctlModule;
  1234. end;
  1235. function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
  1236. dwData: DWORD): HWND; stdcall;
  1237. type
  1238. TheFunctionType = function(hwndCaller: HWND; pszFile: PChar; uCommand: Integer;
  1239. dwData: DWORD): HWND; stdcall;
  1240. var
  1241. TheFunction: TheFunctionType;
  1242. begin
  1243. Result := 0;
  1244. if HHCtrlModule = 0 then HHCtrlModule := GetHHCtrlModule;
  1245. if HHCtrlModule <> 0 then begin
  1246. TheFunction := GetProcAddress(HHCtrlModule, PChar('HtlmHelpA'));
  1247. if (Assigned(TheFunction)) then Result := TheFunction(hwndCaller, pszFile, uCommand, dwdata);
  1248. end;
  1249. end;
  1250. function _Free(Pidl: PItemIDList): BOOL; stdcall;
  1251. type
  1252. TheFunctionType = function(Pidl: PItemIDList): BOOL; stdcall;
  1253. var
  1254. TheFunction: TheFunctionType;
  1255. begin
  1256. Result := False;
  1257. if ComctlModule = 0 then ComctlModule := GetComctlModule;
  1258. if ComctlModule <> 0 then begin
  1259. TheFunction := GetProcAddress(ComctlModule, PChar(Free_Index));
  1260. if (Assigned(TheFunction)) then Result := TheFunction(Pidl);
  1261. end;
  1262. end;
  1263. function SHLockShared(Handle: THandle; DW: DWORD): Pointer; stdcall;
  1264. type
  1265. TheFunctionType = function(Handle: THandle; DW: DWORD): Pointer; stdcall;
  1266. var
  1267. TheFunction: TheFunctionType;
  1268. begin
  1269. Result := nil;
  1270. if ShellModule = 0 then ShellModule := GetShellModule;
  1271. if ShellModule <> 0 then begin
  1272. TheFunction := GetProcAddress(ShellModule, PChar(SHLockShared_Index));
  1273. if (Assigned(TheFunction)) then Result := TheFunction(Handle, DW);
  1274. end;
  1275. end;
  1276. function SHUnLockShared(pnt: Pointer): BOOL; stdcall;
  1277. type
  1278. TheFunctionType = function(pnt: Pointer): BOOL; stdcall;
  1279. var
  1280. TheFunction: TheFunctionType;
  1281. begin
  1282. Result := FALSE;
  1283. if ShellModule = 0 then ShellModule := GetShellModule;
  1284. if ShellModule <> 0 then begin
  1285. TheFunction := GetProcAddress(ShellModule, PChar(SHUnLockShared_Index));
  1286. if (Assigned(TheFunction)) then Result := TheFunction(pnt);
  1287. end;
  1288. end;
  1289. function SHFreeShared(Handle: THandle; DW: DWORD): Pointer; stdcall;
  1290. type
  1291. TheFunctionType = function(Handle: THandle; DW: DWORD): Pointer; stdcall;
  1292. var
  1293. TheFunction: TheFunctionType;
  1294. begin
  1295. Result := nil;
  1296. if ShellModule = 0 then ShellModule := GetShellModule;
  1297. if ShellModule <> 0 then begin
  1298. TheFunction := GetProcAddress(ShellModule, PChar(SHFreeShared_Index));
  1299. if (Assigned(TheFunction)) then Result := TheFunction(Handle, DW);
  1300. end;
  1301. end;
  1302. initialization
  1303. finalization
  1304. if ShellModule <> 0 then FreeLibrary(ShellModule);
  1305. if ComctlModule <> 0 then FreeLibrary(ComctlModule);
  1306. if HHCtrlModule <> 0 then FreeLibrary(HHCtrlModule);
  1307. end.