Class1.cs 237 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006
  1. ////************************************************************************************
  2. //// csEXWB control - The most complete C# Webbrowser control.
  3. ////
  4. //// Auther: MH
  5. //// Email: mehr13@hotmail.com
  6. ////
  7. //// Permission is hereby granted, free of charge, to any person obtaining a
  8. //// copy of this software and associated documentation files (the
  9. //// "Software"), to deal in the Software without restriction, including
  10. //// without limitation the rights to use, copy, modify, merge, publish,
  11. //// distribute, and/or sell copies of the Software, and to permit persons
  12. //// to whom the Software is furnished to do so.
  13. ////
  14. //// Although reasonable care has been taken to ensure the correctness of this
  15. //// implementation, this code should never be used in
  16. //// any application without proper verification and testing.
  17. ////************************************************************************************
  18. //using System;
  19. //using System.ComponentModel;
  20. //using System.Windows.Forms;
  21. //using System.Drawing;
  22. //using System.Collections.Generic;
  23. //using System.Text;
  24. //using System.Runtime.InteropServices;
  25. //using System.Runtime.InteropServices.ComTypes;
  26. //using System.Security;
  27. //using IfacesEnumsStructsClasses;
  28. //using System.Diagnostics;
  29. //using System.Threading;
  30. //namespace csExWB
  31. //{
  32. // public class cEXWB :
  33. // Control,
  34. // IOleClientSite,
  35. // IOleInPlaceSite,
  36. // IDocHostShowUI,
  37. // IDocHostUIHandler,
  38. // DWebBrowserEvents2,
  39. // IfacesEnumsStructsClasses.IDropTarget,
  40. // IfacesEnumsStructsClasses.IServiceProvider,
  41. // IHttpSecurity,
  42. // IWindowForBindingUI,
  43. // INewWindowManager, //WinXP sp2 and up
  44. // IAuthenticate,
  45. // IOleCommandTarget,
  46. // IInternetSecurityManager,
  47. // IHTMLEventCallBack,
  48. // IProtectFocus, //IE7 + Vista
  49. // IHTMLOMWindowServices, //WinXP sp2 and up
  50. // IHTMLEditHost //Please refer to IHTMLEditHost.cs for description
  51. // {
  52. // #region Events and EventArgs Memebrs
  53. // public event csExWB.DocumentCompleteEventHandler DocumentComplete = null;
  54. // public event csExWB.BeforeNavigate2EventHandler BeforeNavigate2 = null;
  55. // public event csExWB.ClientToHostWindowEventHandler ClientToHostWindow = null;
  56. // public event csExWB.CommandStateChangeEventHandler CommandStateChange = null;
  57. // public event csExWB.DownloadBeginEventHandler DownloadBegin = null;
  58. // public event csExWB.DownloadCompleteEventHandler DownloadComplete = null;
  59. // public event csExWB.FileDownloadEventHandler FileDownload = null;
  60. // public event csExWB.NavigateComplete2EventHandler NavigateComplete2 = null;
  61. // public event csExWB.NavigateErrorEventHandler NavigateError = null;
  62. // public event csExWB.NewWindow2EventHandler NewWindow2 = null;
  63. // public event csExWB.NewWindow3EventHandler NewWindow3 = null;
  64. // public event csExWB.PrintTemplateInstantiationEventHandler PrintTemplateInstantiation = null;
  65. // public event csExWB.PrintTemplateTeardownEventHandler PrintTemplateTeardown = null;
  66. // public event csExWB.PrivacyImpactedStateChangeEventHandler PrivacyImpactedStateChange = null;
  67. // public event csExWB.ProgressChangeEventHandler ProgressChange = null;
  68. // public event csExWB.PropertyChangeEventHandler PropertyChange = null;
  69. // public event csExWB.SetSecureLockIconEventHandler SetSecureLockIcon = null;
  70. // public event csExWB.StatusTextChangeEventHandler StatusTextChange = null;
  71. // public event csExWB.TitleChangeEventHandler TitleChange = null;
  72. // public event csExWB.WindowClosingEventHandler WindowClosing = null;
  73. // public event csExWB.WindowSetHeightEventHandler WindowSetHeight = null;
  74. // public event csExWB.WindowSetLeftEventHandler WindowSetLeft = null;
  75. // public event csExWB.WindowSetResizableEventHandler WindowSetResizable = null;
  76. // public event csExWB.WindowSetTopEventHandler WindowSetTop = null;
  77. // public event csExWB.WindowSetWidthEventHandler WindowSetWidth = null;
  78. // public event csExWB.WBDragEnterEventHandler WBDragEnter = null;
  79. // public event csExWB.WBDragLeaveEventHandler WBDragLeave = null;
  80. // public event csExWB.WBDragOverEventHandler WBDragOver = null;
  81. // public event csExWB.WBDropEventHandler WBDragDrop = null;
  82. // public event csExWB.WBKeyDownEventHandler WBKeyDown = null;
  83. // public event csExWB.WBKeyUpEventHandler WBKeyUp = null;
  84. // public event csExWB.ContextMenuEventHandler WBContextMenu = null;
  85. // public event csExWB.GetOptionKeyPathEventHandler WBGetOptionKeyPath = null;
  86. // public event csExWB.DocHostShowUIShowMessageEventHandler WBDocHostShowUIShowMessage = null;
  87. // public event csExWB.DocumentCompleteExEventHandler DocumentCompleteEX = null;
  88. // public event csExWB.AuthenticateEventHandler WBAuthenticate = null;
  89. // public event csExWB.SecurityProblemEventHandler WBSecurityProblem = null;
  90. // public event csExWB.EvaluateNewWindowEventHandler WBEvaluteNewWindow = null;
  91. // public event csExWB.ScriptErrorEventHandler ScriptError = null;
  92. // public event csExWB.UpdatePageStatusEventHandler UpdatePageStatus = null;
  93. // public event csExWB.RefreshBeginEventHandler RefreshBegin = null;
  94. // public event csExWB.RefreshEndEventHandler RefreshEnd = null;
  95. // public event csExWB.ProcessUrlActionEventHandler ProcessUrlAction = null;
  96. // public event csExWB.AllowFocusChangeEventHandler AllowFocusChange = null;
  97. // public event csExWB.HTMLOMWindowServicesEventHandler HTMLOMWindowServices_moveTo = null;
  98. // public event csExWB.HTMLOMWindowServicesEventHandler HTMLOMWindowServices_moveBy = null;
  99. // public event csExWB.HTMLOMWindowServicesEventHandler HTMLOMWindowServices_resizeTo = null;
  100. // public event csExWB.HTMLOMWindowServicesEventHandler HTMLOMWindowServices_resizeBy = null;
  101. // public event csExWB.HTMLEventHandler HTMLEvent = null;
  102. // private HTMLEventArgs HtmlEventArg = new HTMLEventArgs();
  103. // private TitleChangeEventArgs TitleChangeEvent = new TitleChangeEventArgs();
  104. // private DocumentCompleteEventArgs DocumentCompleteEvent = new DocumentCompleteEventArgs();
  105. // private DocumentCompleteExEventArgs DocumentCompleteExEvent = new DocumentCompleteExEventArgs();
  106. // private StatusTextChangeEventArgs StatusTextChangeEvent = new StatusTextChangeEventArgs();
  107. // private ProgressChangeEventArgs ProgressChangeEvent = new ProgressChangeEventArgs();
  108. // private CommandStateChangeEventArgs CommandStateChangeEvent = new CommandStateChangeEventArgs();
  109. // private PropertyChangeEventArgs PropertyChangeEvent = new PropertyChangeEventArgs();
  110. // private BeforeNavigate2EventArgs BeforeNavigate2Event = new BeforeNavigate2EventArgs();
  111. // private NavigateComplete2EventArgs NavigateComplete2Event = new NavigateComplete2EventArgs();
  112. // private NewWindow2EventArgs NewWindow2Event = new NewWindow2EventArgs();
  113. // private NewWindow3EventArgs NewWindow3Event = new NewWindow3EventArgs();
  114. // private WindowSetResizableEventArgs WindowSetResizableEvent = new WindowSetResizableEventArgs();
  115. // private WindowSetLeftEventArgs WindowSetLeftEvent = new WindowSetLeftEventArgs();
  116. // private WindowSetTopEventArgs WindowSetTopEvent = new WindowSetTopEventArgs();
  117. // private WindowSetWidthEventArgs WindowSetWidthEvent = new WindowSetWidthEventArgs();
  118. // private WindowSetHeightEventArgs WindowSetHeightEvent = new WindowSetHeightEventArgs();
  119. // private WindowClosingEventArgs WindowClosingEvent = new WindowClosingEventArgs();
  120. // private ClientToHostWindowEventArgs ClientToHostWindowEvent = new ClientToHostWindowEventArgs();
  121. // private SetSecureLockIconEventArgs SetSecureLockIconEvent = new SetSecureLockIconEventArgs();
  122. // private FileDownloadEventArgs FileDownloadEvent = new FileDownloadEventArgs();
  123. // private NavigateErrorEventArgs NavigateErrorEvent = new NavigateErrorEventArgs();
  124. // private PrintTemplateInstantiationEventArgs PrintTemplateInstantiationEvent = new PrintTemplateInstantiationEventArgs();
  125. // private PrintTemplateTeardownEventArgs PrintTemplateTeardownEvent = new PrintTemplateTeardownEventArgs();
  126. // private PrivacyImpactedStateChangeEventArgs PrivacyImpactedStateChangeEvent = new PrivacyImpactedStateChangeEventArgs();
  127. // private UpdatePageStatusEventArgs UpdatePageStatusEvent = new UpdatePageStatusEventArgs();
  128. // private DocHostShowUIShowMessageEventArgs DocHostShowUIShowMessageEvent = new DocHostShowUIShowMessageEventArgs();
  129. // private ContextMenuEventArgs ContextMenuEvent = new ContextMenuEventArgs();
  130. // private GetOptionKeyPathEventArgs GetOptionKeyPathEvent = new GetOptionKeyPathEventArgs();
  131. // private WBKeyDownEventArgs WBKeyDownEvent = new WBKeyDownEventArgs();
  132. // private WBKeyUpEventArgs WBKeyUpEvent = new WBKeyUpEventArgs();
  133. // private EvaluateNewWindowEventArgs EvaluateNewWindowEvent = new EvaluateNewWindowEventArgs();
  134. // private SecurityProblemEventArgs SecurityProblemEvent = new SecurityProblemEventArgs();
  135. // private AuthenticateEventArgs AuthenticateEvent = new AuthenticateEventArgs();
  136. // private WBDragEnterEventArgs WBDragEnterEvent = new WBDragEnterEventArgs();
  137. // private WBDragOverEventArgs WBDragOverEvent = new WBDragOverEventArgs();
  138. // private WBDropEventArgs WBDropEvent = new WBDropEventArgs();
  139. // private ScriptErrorEventArgs ScriptErrorEvent = new ScriptErrorEventArgs();
  140. // private ProcessUrlActionEventArgs ProcessUrlActionEvent = new ProcessUrlActionEventArgs();
  141. // private AllowFocusChangeEventArgs AllowFocusChangeEvent = new AllowFocusChangeEventArgs();
  142. // private HTMLOMWindowServicesEventArgs HTMLOMWindowServicesEvent = new HTMLOMWindowServicesEventArgs();
  143. // #endregion //Events and EventArgs Memebrs
  144. // #region Local members
  145. // //Required by designer
  146. // private System.ComponentModel.IContainer components = null;
  147. // //Use the internal dragdrop in combination with WBDrag/Drop events
  148. // private bool m_bUseInternalDragDrop = true;
  149. // //Fires DocumentCompleteEx, with an additional parameter "docsource"
  150. // //containning the source of the incoming document before any scripts
  151. // //are executed.
  152. // private bool m_bSendSourceOnDocumentCompleteWBEx = false;
  153. // //this.Control->ShellEmbedding->ShellDocObj->IEServer
  154. // private IntPtr m_hWBServerHandle = (IntPtr)0;
  155. // private IntPtr m_hWBShellDocObjHandle = (IntPtr)0;
  156. // private IntPtr m_hWBShellEmbeddingHandle = (IntPtr)0;
  157. // //Startup URL + LocationUrl
  158. // private const string m_AboutBlank = "about:blank";
  159. // private string m_sUrl = "about:blank";
  160. // private bool m_bCanGoBack = false;
  161. // private bool m_bCanGoForward = false;
  162. // private TextSizeWB m_enumTextSize = TextSizeWB.Medium; //default
  163. // //Default, selecttext+no3dborder+flatscrollbars+themes(xp look)
  164. // private DOCHOSTUIFLAG m_DocHostUiFlags = DOCHOSTUIFLAG.NO3DBORDER |
  165. // DOCHOSTUIFLAG.FLAT_SCROLLBAR | DOCHOSTUIFLAG.THEME;
  166. // private DOCHOSTUIDBLCLK m_DocHostUiDbClkFlag = DOCHOSTUIDBLCLK.DEFAULT;
  167. // //DLCTL_DLIMAGES
  168. // private DOCDOWNLOADCTLFLAG m_DLCtlFlags = DOCDOWNLOADCTLFLAG.DLIMAGES |
  169. // DOCDOWNLOADCTLFLAG.BGSOUNDS | DOCDOWNLOADCTLFLAG.VIDEOS;
  170. // //Used in find
  171. // private IHTMLTxtRange m_txtrange = null;
  172. // private string m_sLastSearch = string.Empty;
  173. // //Pointer to our browser interface
  174. // private IWebBrowser2 m_WBWebBrowser2 = null;
  175. // //IntPtr.Zero
  176. // private IntPtr m_NullPointer = IntPtr.Zero;
  177. // private tagMSG m_NullMsg = new tagMSG();
  178. // private object m_NullObject = null;
  179. // //ConnectionPoint Cookie
  180. // private int m_dwCookie = 0;
  181. // //Keep track of our location + size
  182. // private tagRECT m_WBRect = new tagRECT(0, 0, 0, 0);
  183. // //WB IUnknown and other ifaces
  184. // private object m_WBUnknown = null;
  185. // private IOleObject m_WBOleObject = null;
  186. // private IOleInPlaceObject m_WBOleInPlaceObject = null;
  187. // private IOleCommandTarget m_WBOleCommandTarget = null;
  188. // ///Taken from article:
  189. // ///Invoke Hidden Commands in Your Web Browser
  190. // ///http://www.codeguru.com/cpp/i-n/ieprogram/openfaq/article.php/c8163/
  191. // ///As I stated above, the IDocHostUIHandler::ShowContextMenu demo of
  192. // ///"WebBrowser Customization" in the MSDN shows a way to manually build
  193. // ///IE's context menu from correlative resource file "SHDOCLC.DLL".
  194. // ///So, open the file "SHDOCLC.DLL" by using some resource explorer software
  195. // ///such as "eXeScope", we can find all the Command IDs (also menu item IDs)
  196. // ///used by the WebBrowser Control under menu resources, and all of them are
  197. // ///the same in IE 4.x/5.x/6.x according to my tesing.
  198. // //command send to IE server hwnd
  199. // private const int ID_IE_CONTEXTMENU_ADDFAV = 2261;
  200. // //comands send to shelldocobject hwnd
  201. // private const int ID_IE_FIND = 67;
  202. // private const int ID_IE_PAGESETUP = 259;
  203. // private const int ID_IE_PRINT = 260;
  204. // private const int ID_IE_PRINTPREVIEW = 277;
  205. // private const int ID_IE_FILE_NEWMAIL = 279;
  206. // private const int ID_IE_FILE_SENDPAGE = 282;
  207. // private const int ID_IE_FILE_SENDLINK = 283;
  208. // private const int ID_IE_FILE_SENDDESKTOPSHORTCUT = 284;
  209. // private const int ID_IE_FILE_IMPORTEXPORT = 374;
  210. // private const int ID_IE_FILE_ADDTRUST = 376;
  211. // private const int ID_IE_FILE_ADDLOCAL = 377;
  212. // private const int ID_IE_FILE_NEWCALL = 395; //Internet call
  213. // //To catch Refresh event!
  214. // // counter to monitor number of requests to BeforeNavigate2 vs number of requests to DownloadBegin.
  215. // private int m_nPageCounter = 0;
  216. // // counter to monitor number of DownloadBegin and DownloadEnd calls.
  217. // private int m_nObjCounter = 0;
  218. // // variable to tell us whether a refresh request has started.
  219. // private bool m_bIsRefresh = false;
  220. // //browser thumb image cache
  221. // private Image m_WBThumbImg = null;
  222. // //Used to handle HtmlDocument and HtmlWindow events
  223. // private bool m_WantHTMLEvents = false;
  224. // private bool m_WantHtmlDocumentEvents = false;
  225. // private bool m_WantHtmlWindowEvents = false;
  226. // //These instances take care of the toplevel document and window
  227. // //For frameset sites, we use a collection of below classes
  228. // private cHTMLDocumentEvents m_TopLevelHtmlDocumentevents = new cHTMLDocumentEvents();
  229. // private cHTMLWindowEvents m_TopLevelHtmlWindowEvents = new cHTMLWindowEvents();
  230. // //Template based lists
  231. // private List<cHTMLDocumentEvents> m_HtmlDocumentEventsList = new List<cHTMLDocumentEvents>();
  232. // private List<cHTMLWindowEvents> m_HtmlWindowEventsList = new List<cHTMLWindowEvents>();
  233. // private int m_SecureLockIcon = (int)SecureLockIconConstants.secureLockIconUnsecure;
  234. // private object m_WinExternal = null;
  235. // //allow or disallow HTML dialogs launched using showModelessDialog() + showModalDialog() methods!
  236. // //Using CBT window hook
  237. // private WindowsHookUtil.HookInfo m_CBT = new WindowsHookUtil.HookInfo(CSEXWBDLMANLib.WINDOWSHOOK_TYPES.WHT_CBT);
  238. // private const string m_HTMLDlgClassName = "Internet Explorer_TridentDlgFrame";
  239. // private IntPtr m_HookHandled = IntPtr.Zero;
  240. // private string m_strTemp = string.Empty;
  241. // private int m_NCode = 0;
  242. // //To subclass Internet Explorer_Server handle in order to catch back and forward buttons
  243. // private IEServerWindow m_ieServerWindow = null;
  244. // private bool m_DocDone = false;
  245. // #endregion //Local members
  246. // #region Properties list
  247. // [Category("ExWB")]
  248. // public bool MainDocumentFullyLoaded
  249. // {
  250. // get { return m_DocDone; }
  251. // }
  252. // [Category("DOCDOWNLOADCTLFLAG")]
  253. // public int WBDOCDOWNLOADCTLFLAG
  254. // {
  255. // get { return (int)m_DLCtlFlags; }
  256. // set
  257. // {
  258. // m_DLCtlFlags = (DOCDOWNLOADCTLFLAG)value;
  259. // if ((m_WBUnknown != null) && (m_WBWebBrowser2 != null))
  260. // {
  261. // //Signal change of DL property
  262. // //so MSHTML call our Invoke method through Dispatch
  263. // //Otherwise refreshing the page will have no effect
  264. // //MSHTML does not know of new flags set by us
  265. // //QI for IOleControl
  266. // IOleControl pOC = m_WBUnknown as IOleControl;
  267. // if (pOC != null)
  268. // pOC.OnAmbientPropertyChange(HTMLDispIDs.DISPID_AMBIENT_DLCONTROL);
  269. // }
  270. // }
  271. // }
  272. // [Category("DOCDOWNLOADCTLFLAG")]
  273. // public bool DownloadImages
  274. // {
  275. // get { return ((m_DLCtlFlags & DOCDOWNLOADCTLFLAG.DLIMAGES) != 0); }
  276. // set { SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.DLIMAGES, value); }
  277. // }
  278. // [Category("DOCDOWNLOADCTLFLAG")]
  279. // public bool DownloadSounds
  280. // {
  281. // get { return ((m_DLCtlFlags & DOCDOWNLOADCTLFLAG.BGSOUNDS) != 0); }
  282. // set { SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.BGSOUNDS, value); }
  283. // }
  284. // [Category("DOCDOWNLOADCTLFLAG")]
  285. // public bool DownloadVideo
  286. // {
  287. // get { return ((m_DLCtlFlags & DOCDOWNLOADCTLFLAG.VIDEOS) != 0); }
  288. // set { SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.VIDEOS, value); }
  289. // }
  290. // [Category("DOCDOWNLOADCTLFLAG")]
  291. // public bool DownloadActiveX
  292. // {
  293. // get { return ((m_DLCtlFlags & DOCDOWNLOADCTLFLAG.NO_DLACTIVEXCTLS) == 0); }
  294. // set
  295. // {
  296. // if (value)
  297. // SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.NO_DLACTIVEXCTLS, false);
  298. // else
  299. // SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.NO_DLACTIVEXCTLS, true);
  300. // }
  301. // }
  302. // [Category("DOCDOWNLOADCTLFLAG")]
  303. // public bool DownloadJava
  304. // {
  305. // get { return ((m_DLCtlFlags & DOCDOWNLOADCTLFLAG.NO_JAVA) == 0); }
  306. // set
  307. // {
  308. // if (value)
  309. // SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.NO_JAVA, false);
  310. // else
  311. // SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.NO_JAVA, true);
  312. // }
  313. // }
  314. // [Category("DOCDOWNLOADCTLFLAG")]
  315. // public bool DownloadFrames
  316. // {
  317. // get { return ((m_DLCtlFlags & DOCDOWNLOADCTLFLAG.NO_FRAMEDOWNLOAD) == 0); }
  318. // set
  319. // {
  320. // if (value)
  321. // SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.NO_FRAMEDOWNLOAD, false);
  322. // else
  323. // SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.NO_FRAMEDOWNLOAD, true);
  324. // }
  325. // }
  326. // [Category("DOCDOWNLOADCTLFLAG")]
  327. // public bool DownloadScripts
  328. // {
  329. // get { return ((m_DLCtlFlags & DOCDOWNLOADCTLFLAG.NO_SCRIPTS) == 0); }
  330. // set
  331. // {
  332. // if (value)
  333. // SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.NO_SCRIPTS, false);
  334. // else
  335. // SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG.NO_SCRIPTS, true);
  336. // }
  337. // }
  338. // [Category("DOCHOSTUIFLAG")]
  339. // public int WBDOCHOSTUIFLAG
  340. // {
  341. // get { return (int)m_DocHostUiFlags; }
  342. // set { m_DocHostUiFlags = (DOCHOSTUIFLAG)value; }
  343. // }
  344. // [Category("DOCHOSTUIFLAG")]
  345. // public bool Border3DEnabled
  346. // {
  347. // get { return ((m_DocHostUiFlags & DOCHOSTUIFLAG.NO3DBORDER) == 0); }
  348. // set
  349. // {
  350. // if (value)
  351. // SynchDOCHOSTUIFLAG(DOCHOSTUIFLAG.NO3DBORDER, false);
  352. // else
  353. // SynchDOCHOSTUIFLAG(DOCHOSTUIFLAG.NO3DBORDER, true);
  354. // }
  355. // }
  356. // [Category("DOCHOSTUIFLAG")]
  357. // public bool ScrollBarsEnabled
  358. // {
  359. // get { return ((m_DocHostUiFlags & DOCHOSTUIFLAG.SCROLL_NO) == 0); }
  360. // set
  361. // {
  362. // if (value)
  363. // {
  364. // SynchDOCHOSTUIFLAG(DOCHOSTUIFLAG.SCROLL_NO, false);
  365. // SynchDOCHOSTUIFLAG(DOCHOSTUIFLAG.FLAT_SCROLLBAR, value);
  366. // }
  367. // else
  368. // {
  369. // SynchDOCHOSTUIFLAG(DOCHOSTUIFLAG.FLAT_SCROLLBAR, false);
  370. // SynchDOCHOSTUIFLAG(DOCHOSTUIFLAG.SCROLL_NO, true);
  371. // }
  372. // }
  373. // }
  374. // [Category("DOCHOSTUIDBLCLK")]
  375. // public DOCHOSTUIDBLCLK WBDOCHOSTUIDBLCLK
  376. // {
  377. // get { return m_DocHostUiDbClkFlag; }
  378. // set { m_DocHostUiDbClkFlag = value; }
  379. // }
  380. // [Category("ExWB")]
  381. // public SecureLockIconConstants SecureLockIcon
  382. // {
  383. // get
  384. // {
  385. // return (SecureLockIconConstants)m_SecureLockIcon;
  386. // }
  387. // }
  388. // [Category("ExWB")]
  389. // public TextSizeWB TextSize
  390. // {
  391. // get
  392. // {
  393. // if (m_WBOleCommandTarget != null)
  394. // {
  395. // object retVal = new object(); //VT_NULL
  396. // IntPtr pRet = m_NullPointer;
  397. // int iZoom = (int)5;
  398. // try
  399. // {
  400. // pRet = Marshal.AllocCoTaskMem((int)1024);
  401. // Marshal.GetNativeVariantForObject(retVal, pRet);
  402. // //NULL to specify the standard group
  403. // int hr = m_WBOleCommandTarget.Exec(m_NullPointer,
  404. // (uint)OLECMDID.OLECMDID_ZOOM,
  405. // (uint)OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,
  406. // m_NullPointer, pRet);
  407. // retVal = Marshal.GetObjectForNativeVariant(pRet);
  408. // Marshal.FreeCoTaskMem(pRet);
  409. // pRet = m_NullPointer;
  410. // if (Type.GetTypeCode(retVal.GetType()) == TypeCode.Int32)
  411. // iZoom = int.Parse(retVal.ToString());
  412. // //else
  413. // // Debug.Write("Incorrect TypeCode!", "Get_TextSizeWB");
  414. // }
  415. // catch (Exception)
  416. // {
  417. // }
  418. // finally
  419. // {
  420. // if (pRet != m_NullPointer)
  421. // Marshal.FreeCoTaskMem(pRet);
  422. // }
  423. // if ((iZoom > -1) && (iZoom < 5))
  424. // m_enumTextSize = (TextSizeWB)iZoom;
  425. // }
  426. // return m_enumTextSize;
  427. // }
  428. // set
  429. // {
  430. // if (m_WBOleCommandTarget != null)
  431. // {
  432. // if (((int)value > (int)-1) && ((int)value < (int)5))
  433. // {
  434. // IntPtr pRet = m_NullPointer;
  435. // try
  436. // {
  437. // pRet = Marshal.AllocCoTaskMem((int)1024);
  438. // Marshal.GetNativeVariantForObject((int)value, pRet);
  439. // int hr = m_WBOleCommandTarget.Exec(m_NullPointer,
  440. // (uint)OLECMDID.OLECMDID_ZOOM,
  441. // (uint)OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,
  442. // pRet, m_NullPointer);
  443. // Marshal.FreeCoTaskMem(pRet);
  444. // pRet = m_NullPointer;
  445. // if (hr == Hresults.S_OK)
  446. // m_enumTextSize = (TextSizeWB)value;
  447. // }
  448. // catch (Exception)
  449. // {
  450. // }
  451. // finally
  452. // {
  453. // if (pRet != m_NullPointer)
  454. // Marshal.FreeCoTaskMem(pRet);
  455. // }
  456. // }
  457. // }
  458. // }
  459. // }
  460. // [Category("ExWB")]
  461. // public bool CanGoBack
  462. // {
  463. // get { return m_bCanGoBack; }
  464. // }
  465. // [Category("ExWB")]
  466. // public bool CanGoForward
  467. // {
  468. // get { return m_bCanGoForward; }
  469. // }
  470. // [Category("ExWB")]
  471. // public IWebBrowser2 WebbrowserObject
  472. // {
  473. // get { return m_WBWebBrowser2; }
  474. // }
  475. // [Category("ExWB"), Description("true, fires DocumentCompleteEX instead of DocumentComplete passing source of the pDisp Document.")]
  476. // public bool SendSourceOnDocumentCompleteWBEx
  477. // {
  478. // get { return m_bSendSourceOnDocumentCompleteWBEx; }
  479. // set { m_bSendSourceOnDocumentCompleteWBEx = value; }
  480. // }
  481. // [Category("ExWB"), Description("Internet Explorer_Server HWND")]
  482. // public IntPtr IEServerHwnd
  483. // {
  484. // get { return WBIEServerHandle(); }
  485. // }
  486. // [Category("ExWB"), Description("ShellEmbedding HWND")]
  487. // public IntPtr ShellEmbedingHwnd
  488. // {
  489. // get { return WBShellEmbedingHandle(); }
  490. // }
  491. // [Category("ExWB"), Description("ShellDocObject HWND")]
  492. // public IntPtr ShellDocObjectHwnd
  493. // {
  494. // get { return WBShellDocObjHandle(); }
  495. // }
  496. // [Category("ExWB"),
  497. // Description("Allows default drag drop operations. Default false. To use internal drag drop, set RegisterForInternalDragDrop to true. Setting this property to true will deactivate internal drag drop.")]
  498. // public bool RegisterAsDropTarget
  499. // {
  500. // get
  501. // {
  502. // if (m_WBWebBrowser2 != null)
  503. // return m_WBWebBrowser2.RegisterAsDropTarget;
  504. // else
  505. // return false;
  506. // }
  507. // set
  508. // {
  509. // if (m_WBWebBrowser2 != null)
  510. // m_WBWebBrowser2.RegisterAsDropTarget = value;
  511. // if (value)
  512. // this.RegisterForInternalDragDrop = false;
  513. // }
  514. // }
  515. // [Category("ExWB"),
  516. // Description("Uses internal drag drop events to notify the client. Default true.")]
  517. // public bool RegisterForInternalDragDrop
  518. // {
  519. // get
  520. // {
  521. // return m_bUseInternalDragDrop;
  522. // }
  523. // set
  524. // {
  525. // m_bUseInternalDragDrop = value;
  526. // //Make sure we set RegisterAsDropTarget to false
  527. // if ((m_bUseInternalDragDrop) && (m_WBWebBrowser2 != null))
  528. // this.RegisterAsDropTarget = false;
  529. // }
  530. // }
  531. // [Category("ExWB")]
  532. // public bool RegisterAsBrowser
  533. // {
  534. // //MessageBox(IntPtr.Zero, "", "", 0);
  535. // get
  536. // {
  537. // if (m_WBWebBrowser2 != null)
  538. // return m_WBWebBrowser2.RegisterAsBrowser;
  539. // else
  540. // return false;
  541. // }
  542. // set
  543. // {
  544. // if (m_WBWebBrowser2 != null)
  545. // m_WBWebBrowser2.RegisterAsBrowser = value;
  546. // }
  547. // }
  548. // [Category("ExWB")]
  549. // public bool Silent
  550. // {
  551. // get
  552. // {
  553. // if (m_WBWebBrowser2 != null)
  554. // return m_WBWebBrowser2.Silent;
  555. // else
  556. // return false;
  557. // }
  558. // set
  559. // {
  560. // if (m_WBWebBrowser2 != null)
  561. // m_WBWebBrowser2.Silent = value;
  562. // }
  563. // }
  564. // [Category("ExWB")]
  565. // public string LocationName
  566. // {
  567. // get
  568. // {
  569. // if (m_WBWebBrowser2 != null)
  570. // return m_WBWebBrowser2.LocationName;
  571. // else
  572. // return "Unavailable";
  573. // }
  574. // }
  575. // [Category("ExWB"), Description("Set or get current LocationURL. Works in design mode as well.")]
  576. // public string LocationUrl
  577. // {
  578. // //Treat it as URL
  579. // get
  580. // {
  581. // if ((!DesignMode) && (m_WBWebBrowser2 != null))
  582. // m_sUrl = m_WBWebBrowser2.LocationURL;
  583. // if (m_sUrl.Length == 0)
  584. // m_sUrl = "about:blank";
  585. // return m_sUrl;
  586. // }
  587. // set
  588. // {
  589. // m_sUrl = value;
  590. // if ((m_WBWebBrowser2 != null) && (m_sLastSearch.Length > 0))
  591. // this.Navigate(m_sUrl);
  592. // }
  593. // }
  594. // [Category("ExWB")]
  595. // public bool Busy
  596. // {
  597. // get
  598. // {
  599. // if (m_WBWebBrowser2 != null)
  600. // return m_WBWebBrowser2.Busy;
  601. // else
  602. // return false;
  603. // }
  604. // }
  605. // [Category("ExWB")]
  606. // public bool OffLine
  607. // {
  608. // get
  609. // {
  610. // if (m_WBWebBrowser2 != null)
  611. // return m_WBWebBrowser2.Offline;
  612. // else
  613. // return false;
  614. // }
  615. // set
  616. // {
  617. // if (m_WBWebBrowser2 != null)
  618. // m_WBWebBrowser2.Offline = value;
  619. // }
  620. // }
  621. // [Category("ExWB")]
  622. // public tagREADYSTATE ReadyState
  623. // {
  624. // get
  625. // {
  626. // if (m_WBWebBrowser2 != null)
  627. // return m_WBWebBrowser2.ReadyState;
  628. // else
  629. // return tagREADYSTATE.READYSTATE_UNINITIALIZED;
  630. // }
  631. // }
  632. // [Category("ExWB")]
  633. // public Image ThumbImage
  634. // {
  635. // get
  636. // {
  637. // if (m_WBThumbImg != null)
  638. // return m_WBThumbImg;
  639. // else
  640. // return new Bitmap(16, 16);
  641. // }
  642. // }
  643. // [Category("ExWB"), Description("Offers same functionality as ObjectForScripting of C# webbrowser wrapper control.")]
  644. // public object ObjectForScripting
  645. // {
  646. // get
  647. // {
  648. // return m_WinExternal;
  649. // }
  650. // set
  651. // {
  652. // m_WinExternal = value;
  653. // }
  654. // }
  655. // [Category("ExWB"), Description("Sets or retrieves the title of the document")]
  656. // public string DocumentTitle
  657. // {
  658. // get { return this.GetTitle(true); }
  659. // set
  660. // {
  661. // if ((this.m_WBWebBrowser2 != null) &&
  662. // (m_WBWebBrowser2.Document != null))
  663. // {
  664. // IHTMLDocument2 doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  665. // if (doc2 != null)
  666. // doc2.title = value;
  667. // }
  668. // }
  669. // }
  670. // [Category("ExWB"), Description("Sets or retrives the HTML source of the document")]
  671. // public string DocumentSource
  672. // {
  673. // get { return this.GetSource(true); }
  674. // set { this.LoadHtmlIntoBrowser(value); }
  675. // }
  676. // #endregion
  677. // #region Overriden members
  678. // public cEXWB()
  679. // {
  680. // ////Set some styles in regard to painting. We don't
  681. // //this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
  682. // //this.SetStyle(ControlStyles.ResizeRedraw, true);
  683. // //this.SetStyle(ControlStyles.UserPaint, true);
  684. // //this.SetStyle(ControlStyles.Selectable, true);
  685. // //this.SetStyle(ControlStyles.StandardClick, true);
  686. // //this.SetStyle(ControlStyles.Opaque, true);
  687. // //this.SetStyle(ControlStyles.ContainerControl, true);
  688. // //components = new System.ComponentModel.Container();
  689. // //this.SuspendLayout();
  690. // //
  691. // // csEXWB
  692. // //
  693. // //this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
  694. // //this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
  695. // //this.Name = "csEXWB";
  696. // //this.Size = new System.Drawing.Size(287, 239);
  697. // //this.ResumeLayout(false);
  698. // }
  699. // protected override void OnGotFocus(EventArgs e)
  700. // {
  701. // base.OnGotFocus(e);
  702. // if (!this.DesignMode)
  703. // SetFocus();
  704. // }
  705. // //protected override void OnPaint(PaintEventArgs e)
  706. // //{
  707. // // e.Graphics.Clear(this.BackColor);
  708. // // //base.OnPaint(e);
  709. // //}
  710. // protected override void Dispose(bool disposing)
  711. // {
  712. // if ((disposing) && (!this.DesignMode))
  713. // {
  714. // if (m_HookHandled != IntPtr.Zero)
  715. // Marshal.FreeHGlobal(m_HookHandled);
  716. // if (m_WBThumbImg != null)
  717. // m_WBThumbImg.Dispose();
  718. // InternalFreeWB();
  719. // if ((components != null))
  720. // components.Dispose();
  721. // }
  722. // base.Dispose(disposing);
  723. // }
  724. // protected override void OnResize(EventArgs e)
  725. // {
  726. // base.OnResize(e);
  727. // this.SetLocation();
  728. // }
  729. // public override bool PreProcessMessage(ref Message msg)
  730. // {
  731. // bool handled = false;
  732. // if ((msg.Msg >= WindowsMessages.WM_KEYFIRST) && (msg.Msg <= WindowsMessages.WM_KEYLAST_NT501))
  733. // {
  734. // // If it's a key down, first see if the key combo is a command key
  735. // if (msg.Msg == WindowsMessages.WM_KEYDOWN)
  736. // {
  737. // handled = ProcessCmdKey(ref msg, (Keys)(int)msg.WParam | ModifierKeys);
  738. // }
  739. // if (!handled)
  740. // {
  741. // int keyCode = (int)msg.WParam;
  742. // // Don't let Trident eat Ctrl-PgUp/PgDn
  743. // if (((keyCode != (int)Keys.PageUp) &&
  744. // (keyCode != (int)Keys.PageDown)) ||
  745. // ((ModifierKeys & Keys.Control) == 0))
  746. // {
  747. // tagMSG cm = new tagMSG();
  748. // cm.hwnd = msg.HWnd;
  749. // cm.message = msg.Msg;
  750. // cm.wParam = msg.WParam;
  751. // cm.lParam = msg.LParam;
  752. // IOleInPlaceActiveObject accele = m_WBUnknown as IOleInPlaceActiveObject;
  753. // if ((accele != null) &&
  754. // (accele.TranslateAccelerator(ref cm) == Hresults.S_OK))
  755. // handled = true;
  756. // }
  757. // else
  758. // {
  759. // // WndProc for Ctrl-PgUp/PgDn is never called so call it directly here
  760. // WndProc(ref msg);
  761. // handled = true;
  762. // }
  763. // }
  764. // }
  765. // if (!handled)
  766. // {
  767. // handled = base.PreProcessMessage(ref msg);
  768. // }
  769. // return handled;
  770. // }
  771. // //private int m_wparam = 0;
  772. // //private KBDLLHOOKSTRUCT m_KBLL = new KBDLLHOOKSTRUCT();
  773. // //How to handle LLKeyboardHook
  774. // /*
  775. // if (m.Msg == m_KEYBOARD_LL.UniqueMsgID)
  776. // {
  777. // //To stop, set to handled
  778. // //m.Result = m_HookHandled;
  779. // m_wparam = (int)m.WParam;
  780. // //Get the structure
  781. // m_KBLL.Reset();
  782. // Marshal.PtrToStructure(m.LParam, m_KBLL);
  783. // //bCtlPressed = (Control.ModifierKeys & Keys.Control) != 0);
  784. // if (m_wparam == WindowsMessages.WM_KEYDOWN)
  785. // AppendText("KEYBOARD_LL_KEYDOWN=" + m_KBLL.vkCode.ToString() + "\r\n");
  786. // else if (m_wparam == WindowsMessages.WM_KEYUP)
  787. // AppendText("KEYBOARD_LL_KEYUP=" + m_KBLL.vkCode.ToString() + "\r\n");
  788. // else if (m_wparam == WindowsMessages.WM_SYSKEYDOWN)
  789. // AppendText("KEYBOARD_LL_SYSKEYDOWN=" + m_KBLL.vkCode.ToString() + "\r\n");
  790. // else if (m_wparam == WindowsMessages.WM_SYSKEYUP)
  791. // AppendText("KEYBOARD_LL_SYSKEYUP=" + m_KBLL.vkCode.ToString() + "\r\n");
  792. // }
  793. // */
  794. // //private WindowsHookUtil.CBT_CREATEWND m_CBT_CREATEWND = new CBT_CREATEWND();
  795. // //private WindowsHookUtil.CREATESTRUCT m_CREATESTRUCT = new CREATESTRUCT();
  796. // protected override void WndProc(ref Message m)
  797. // {
  798. // if (m.Msg == m_CBT.UniqueMsgID)
  799. // {
  800. // m_csexwbCOMLib.HookProcNCode(CSEXWBDLMANLib.WINDOWSHOOK_TYPES.WHT_CBT,
  801. // ref m_NCode);
  802. // if (m_NCode == WindowsHookUtil.HCBT_CREATEWND)
  803. // {
  804. // //m.WParam contains handle to the new window
  805. // //One method of getting new window information
  806. // //Marshal.PtrToStructure(m.LParam, m_CBT_CREATEWND);
  807. // //Marshal.PtrToStructure(m_CBT_CREATEWND.lpcs, m_CREATESTRUCT);
  808. // //if (m_CREATESTRUCT.lpszClass != IntPtr.Zero)
  809. // //{
  810. // m_strTemp = WinApis.GetWindowClass(m.WParam); //Marshal.PtrToStringAnsi(m_CREATESTRUCT.lpszClass);
  811. // if (!string.IsNullOrEmpty(m_strTemp))
  812. // {
  813. // if (m_strTemp.Equals(m_HTMLDlgClassName, StringComparison.CurrentCultureIgnoreCase))
  814. // m.Result = m_HookHandled; //dismiss it
  815. // }
  816. // //}
  817. // }
  818. // }
  819. // else
  820. // base.WndProc(ref m);
  821. // }
  822. // //public override string ToString()
  823. // //{
  824. // // return "csEXWB 1.0.0.4";
  825. // // //return base.ToString();
  826. // //}
  827. // protected override void OnVisibleChanged(EventArgs e)
  828. // {
  829. // base.OnVisibleChanged(e);
  830. // if (m_WBOleObject == null)
  831. // return;
  832. // if (this.Visible)
  833. // m_WBOleObject.DoVerb((int)OLEDOVERB.OLEIVERB_SHOW, ref m_NullMsg, this, 0, this.Handle, ref m_WBRect);
  834. // else
  835. // m_WBOleObject.DoVerb((int)OLEDOVERB.OLEIVERB_HIDE, ref m_NullMsg, this, 0, this.Handle, ref m_WBRect);
  836. // }
  837. // protected override void OnHandleCreated(EventArgs e)
  838. // {
  839. // base.OnHandleCreated(e);
  840. // if (this.IsHandleCreated)
  841. // {
  842. // if (!this.DesignMode)
  843. // {
  844. // //CBT hook return value to stop an HTMLDialog
  845. // m_HookHandled = Marshal.AllocHGlobal(Marshal.SizeOf((Int32)1) + 1);
  846. // Marshal.WriteInt32(m_HookHandled, 1);
  847. // InitCOMLibrary();
  848. // }
  849. // InternalCreateWB();
  850. // }
  851. // }
  852. // public override void Refresh()
  853. // {
  854. // base.Refresh();
  855. // if ((m_WBWebBrowser2 != null) && (!this.DesignMode))
  856. // m_WBWebBrowser2.Refresh();
  857. // }
  858. // #endregion
  859. // #region Private Method Members
  860. // //Called from resize event to adjust the size of browser
  861. // private void SetLocation()
  862. // {
  863. // if (m_WBOleInPlaceObject == null)
  864. // return;
  865. // bool brect = WinApis.GetClientRect(this.Handle, out m_WBRect);
  866. // //Setup H+W
  867. // m_WBRect.Right = m_WBRect.Right - m_WBRect.Left; //W
  868. // m_WBRect.Bottom = m_WBRect.Bottom - m_WBRect.Top; //H
  869. // m_WBRect.Left = 0;
  870. // m_WBRect.Top = 0;
  871. // m_WBOleInPlaceObject.SetObjectRects(ref m_WBRect, ref m_WBRect);
  872. // }
  873. // //Returns corresponding string for an HRESULT
  874. // private string HresultAsString(int iHRESULT)
  875. // {
  876. // string sRet = "S_OK";
  877. // if (iHRESULT == Hresults.S_OK)
  878. // {
  879. // return sRet;
  880. // }
  881. // else if (iHRESULT == Hresults.S_FALSE)
  882. // {
  883. // sRet = "S_FALSE";
  884. // }
  885. // else if (iHRESULT == Hresults.E_INVALIDARG)
  886. // {
  887. // sRet = "E_INVALIDARG";
  888. // }
  889. // else if (iHRESULT == Hresults.E_NOTIMPL)
  890. // {
  891. // sRet = "E_NOTIMPL";
  892. // }
  893. // else if (iHRESULT == Hresults.E_ABORT)
  894. // {
  895. // sRet = "E_ABORT";
  896. // }
  897. // else if (iHRESULT == Hresults.E_ACCESSDENIED)
  898. // {
  899. // sRet = "E_ACCESSDENIED";
  900. // }
  901. // else if (iHRESULT == Hresults.E_FAIL)
  902. // {
  903. // sRet = "E_FAIL";
  904. // }
  905. // else if (iHRESULT == Hresults.E_FLAGS)
  906. // {
  907. // sRet = "E_FLAGS";
  908. // }
  909. // else if (iHRESULT == Hresults.E_HANDLE)
  910. // {
  911. // sRet = "E_HANDLE";
  912. // }
  913. // else if (iHRESULT == Hresults.E_NOINTERFACE)
  914. // {
  915. // sRet = "E_NOINTERFACE";
  916. // }
  917. // else if (iHRESULT == Hresults.E_OUTOFMEMORY)
  918. // {
  919. // sRet = "E_OUTOFMEMORY";
  920. // }
  921. // else if (iHRESULT == Hresults.E_PENDING)
  922. // {
  923. // sRet = "E_PENDING";
  924. // }
  925. // else if (iHRESULT == Hresults.E_POINTER)
  926. // {
  927. // sRet = "E_POINTER";
  928. // }
  929. // else if (iHRESULT == Hresults.E_UNEXPECTED)
  930. // {
  931. // sRet = "E_UNEXPECTED";
  932. // }
  933. // else if (iHRESULT == Hresults.DV_E_LINDEX)
  934. // {
  935. // sRet = "DV_E_LINDEX";
  936. // }
  937. // else if (iHRESULT == Hresults.OLEOBJ_S_CANNOT_DOVERB_NOW)
  938. // {
  939. // sRet = "OLEOBJ_S_CANNOT_DOVERB_NOW";
  940. // }
  941. // else if (iHRESULT == Hresults.OLEOBJ_S_INVALIDHWND)
  942. // {
  943. // sRet = "OLEOBJ_S_INVALIDHWND";
  944. // }
  945. // else if (iHRESULT == Hresults.OLEOBJ_S_INVALIDVERB)
  946. // {
  947. // sRet = "OLEOBJ_S_INVALIDVERB";
  948. // }
  949. // else if (iHRESULT == Hresults.OLEOBJ_E_NOVERBS)
  950. // {
  951. // sRet = "OLEOBJ_E_NOVERBS";
  952. // }
  953. // else if (iHRESULT == Hresults.OLE_E_NOT_INPLACEACTIVE)
  954. // {
  955. // sRet = "OLE_E_NOT_INPLACEACTIVE";
  956. // }
  957. // else if (iHRESULT == Hresults.OLE_E_CANT_BINDTOSOURCE)
  958. // {
  959. // sRet = "OLE_E_CANT_BINDTOSOURCE";
  960. // }
  961. // else if (iHRESULT == Hresults.OLE_E_CLASSDIFF)
  962. // {
  963. // sRet = "OLE_E_CLASSDIFF";
  964. // }
  965. // else if (iHRESULT == Hresults.OLECMDERR_E_UNKNOWNGROUP)
  966. // {
  967. // sRet = "OLECMDERR_E_UNKNOWNGROUP";
  968. // }
  969. // else if (iHRESULT == Hresults.OLECMDERR_E_NOTSUPPORTED)
  970. // {
  971. // sRet = "OLECMDERR_E_NOTSUPPORTED";
  972. // }
  973. // else if (iHRESULT == Hresults.OLECMDERR_E_DISABLED)
  974. // {
  975. // sRet = "OLECMDERR_E_DISABLED";
  976. // }
  977. // else if (iHRESULT == Hresults.OLECMDERR_E_CANCELED)
  978. // {
  979. // sRet = "OLECMDERR_E_CANCELED";
  980. // }
  981. // else
  982. // {
  983. // sRet = "UNKNOWN-VALUE: " + iHRESULT.ToString();
  984. // }
  985. // return sRet;
  986. // }
  987. // //To retreive ShellEmbeding + ShellDocObj + IEServer HWNDs
  988. // private IntPtr WBShellEmbedingHandle()
  989. // {
  990. // if (m_WBUnknown == null)
  991. // return m_NullPointer;
  992. // if ((!m_hWBShellEmbeddingHandle.Equals(m_NullPointer)) &&
  993. // (WinApis.IsWindow(m_hWBShellEmbeddingHandle)))
  994. // return m_hWBShellEmbeddingHandle;
  995. // m_hWBShellEmbeddingHandle = m_NullPointer;
  996. // IOleWindow pWin = m_WBUnknown as IOleWindow;
  997. // if (pWin != null)
  998. // pWin.GetWindow(ref m_hWBShellEmbeddingHandle);
  999. // return m_hWBShellEmbeddingHandle;
  1000. // }
  1001. // private IntPtr WBShellDocObjHandle()
  1002. // {
  1003. // if ((!m_hWBShellDocObjHandle.Equals(m_NullPointer)) &&
  1004. // (WinApis.IsWindow(m_hWBShellDocObjHandle)))
  1005. // return m_hWBShellDocObjHandle;
  1006. // m_hWBShellDocObjHandle = m_NullPointer;
  1007. // if (!WBShellEmbedingHandle().Equals(m_NullPointer))
  1008. // {
  1009. // m_hWBShellDocObjHandle = WinApis.GetWindow(m_hWBShellEmbeddingHandle, (uint)GetWindow_Cmd.GW_CHILD);
  1010. // }
  1011. // return m_hWBShellDocObjHandle;
  1012. // }
  1013. // private IntPtr WBIEServerHandle()
  1014. // {
  1015. // if ((!m_hWBServerHandle.Equals(m_NullPointer)) &&
  1016. // (WinApis.IsWindow(m_hWBServerHandle)))
  1017. // return m_hWBServerHandle;
  1018. // if (!WBShellDocObjHandle().Equals(m_NullPointer))
  1019. // {
  1020. // m_hWBServerHandle = WinApis.GetWindow(m_hWBShellDocObjHandle, (uint)GetWindow_Cmd.GW_CHILD);
  1021. // }
  1022. // return m_hWBServerHandle;
  1023. // }
  1024. // //Registers clipboard formats that we can handle
  1025. // //Registered Dragdrop formats
  1026. // //private short m_CFHTML = 0;
  1027. // //private short m_CFRTF = 0;
  1028. // //private short m_CFURL = 0;
  1029. // //private short m_CFNETRESOURCE = 0;
  1030. // //private short m_CFUNTRUSTEDDRAGDROP = 0;
  1031. // //private short m_CFFILEGROUPDESCRIPTOR = 0;
  1032. // //private short m_CFFILECONTENTS = 0;
  1033. // //private void RegisterClipboardFormatsForDragDrop()
  1034. // //{
  1035. // // m_CFHTML = (short)WinApis.RegisterClipboardFormat("HTML Format");
  1036. // // m_CFRTF = (short)WinApis.RegisterClipboardFormat("Rich Text Format");
  1037. // // m_CFFILEGROUPDESCRIPTOR = (short)WinApis.RegisterClipboardFormat("FileGroupDescriptor");
  1038. // // m_CFFILECONTENTS = (short)WinApis.RegisterClipboardFormat("FileContents");
  1039. // // m_CFUNTRUSTEDDRAGDROP = (short)WinApis.RegisterClipboardFormat("UntrustedDragDrop");
  1040. // // m_CFURL = (short)WinApis.RegisterClipboardFormat("UniformResourceLocator");
  1041. // // m_CFNETRESOURCE = (short)WinApis.RegisterClipboardFormat("Net Resource");
  1042. // //}
  1043. // private void InternalFreeWB()
  1044. // {
  1045. // if ((!DesignMode) && (m_WBUnknown != null))
  1046. // {
  1047. // //Get connectionpointcontainer
  1048. // IConnectionPointContainer cpCont = m_WBUnknown as IConnectionPointContainer;
  1049. // //Find connection point
  1050. // if (cpCont != null)
  1051. // {
  1052. // Guid guid = typeof(DWebBrowserEvents2).GUID;
  1053. // IConnectionPoint m_WBConnectionPoint = null;
  1054. // cpCont.FindConnectionPoint(ref guid, out m_WBConnectionPoint);
  1055. // //UnAdvice
  1056. // if ((m_WBConnectionPoint != null) && (m_dwCookie > 0))
  1057. // m_WBConnectionPoint.Unadvise(m_dwCookie);
  1058. // }
  1059. // //UI and Inplace deactivate
  1060. // if (m_WBOleInPlaceObject != null)
  1061. // {
  1062. // m_WBOleInPlaceObject.UIDeactivate();
  1063. // m_WBOleInPlaceObject.InPlaceDeactivate();
  1064. // }
  1065. // //Disconnect from ole
  1066. // if (m_WBOleObject != null)
  1067. // {
  1068. // m_WBOleObject.Close((uint)OLEDOVERB.OLECLOSE_NOSAVE);
  1069. // m_WBOleObject.SetClientSite(null);
  1070. // }
  1071. // }
  1072. // if (m_TravelLogStg != null)
  1073. // {
  1074. // Marshal.ReleaseComObject(m_TravelLogStg);
  1075. // m_TravelLogStg = null;
  1076. // }
  1077. // if (m_txtrange != null)
  1078. // {
  1079. // Marshal.ReleaseComObject(m_txtrange);
  1080. // m_txtrange = null;
  1081. // }
  1082. // if (m_WBOleCommandTarget != null)
  1083. // {
  1084. // Marshal.ReleaseComObject(m_WBOleCommandTarget);
  1085. // m_WBOleCommandTarget = null;
  1086. // }
  1087. // if (m_WBWebBrowser2 != null)
  1088. // {
  1089. // Marshal.ReleaseComObject(m_WBWebBrowser2);
  1090. // m_WBWebBrowser2 = null;
  1091. // }
  1092. // if (m_WBOleInPlaceObject != null)
  1093. // {
  1094. // Marshal.ReleaseComObject(m_WBOleInPlaceObject);
  1095. // m_WBOleCommandTarget = null;
  1096. // }
  1097. // if (m_WBOleObject != null)
  1098. // {
  1099. // Marshal.ReleaseComObject(m_WBOleObject);
  1100. // m_WBOleObject = null;
  1101. // }
  1102. // if (m_WBUnknown != null)
  1103. // {
  1104. // Marshal.ReleaseComObject(m_WBUnknown);
  1105. // m_WBUnknown = null;
  1106. // }
  1107. // if (m_WantHtmlDocumentEvents)
  1108. // {
  1109. // m_TopLevelHtmlDocumentevents.DisconnectHtmlEvents();
  1110. // DisconnectHtmlDocumentEvents();
  1111. // }
  1112. // if (m_WantHtmlWindowEvents)
  1113. // {
  1114. // m_TopLevelHtmlWindowEvents.DisconnectHtmlEvents();
  1115. // DisconnectHtmlWindowEvnets();
  1116. // }
  1117. // }
  1118. // /// <summary>
  1119. // /// Create Webbrowser control and set up it's events
  1120. // /// called from OnHandleCreated
  1121. // /// Webbrowser control hosting requires an HWND
  1122. // /// </summary>
  1123. // /// <returns></returns>
  1124. // private void InternalCreateWB()
  1125. // {
  1126. // //Create a new WB, throws exception if fails
  1127. // Type webbrowsertype = Type.GetTypeFromCLSID(Iid_Clsids.CLSID_WebBrowser, true);
  1128. // //Using Activator inplace of CoCreateInstance, returns IUnknown
  1129. // m_WBUnknown = System.Activator.CreateInstance(webbrowsertype);
  1130. // //Get the IOleObject
  1131. // m_WBOleObject = (IOleObject)m_WBUnknown;
  1132. // //Set client site
  1133. // int iret = m_WBOleObject.SetClientSite(this);
  1134. // //Set hostnames
  1135. // iret = m_WBOleObject.SetHostNames("csEXWB", string.Empty);
  1136. // //Get client rect
  1137. // bool brect = WinApis.GetClientRect(this.Handle, out m_WBRect);
  1138. // //Setup H+W
  1139. // m_WBRect.Right = m_WBRect.Right - m_WBRect.Left; //W
  1140. // m_WBRect.Bottom = m_WBRect.Bottom - m_WBRect.Top; //H
  1141. // m_WBRect.Left = 0;
  1142. // m_WBRect.Top = 0;
  1143. // //Get the IOleInPlaceObject
  1144. // m_WBOleInPlaceObject = (IOleInPlaceObject)m_WBUnknown;
  1145. // tagRECT trect = new tagRECT();
  1146. // WinApis.CopyRect(ref trect, ref m_WBRect);
  1147. // //Set WB rects
  1148. // iret = m_WBOleInPlaceObject.SetObjectRects(ref m_WBRect, ref trect);
  1149. // //INPLACEACTIVATE the WB
  1150. // iret = m_WBOleObject.DoVerb((int)OLEDOVERB.OLEIVERB_INPLACEACTIVATE, ref m_NullMsg, this, 0, this.Handle, ref m_WBRect);
  1151. // //Get the IWebBrowser2
  1152. // m_WBWebBrowser2 = (IWebBrowser2)m_WBUnknown;
  1153. // //By default, we handle dragdrops
  1154. // m_WBWebBrowser2.RegisterAsDropTarget = false;
  1155. // if (!DesignMode)
  1156. // {
  1157. // //Get connectionpointcontainer
  1158. // IConnectionPointContainer cpCont = (IConnectionPointContainer)m_WBUnknown;
  1159. // //Find connection point
  1160. // Guid guid = typeof(DWebBrowserEvents2).GUID;
  1161. // IConnectionPoint m_WBConnectionPoint = null;
  1162. // cpCont.FindConnectionPoint(ref guid, out m_WBConnectionPoint);
  1163. // //Advice
  1164. // m_WBConnectionPoint.Advise(this, out m_dwCookie);
  1165. // //Get the IOleComandTarget
  1166. // m_WBOleCommandTarget = (IOleCommandTarget)m_WBUnknown;
  1167. // //Reguster clipborad format for internal drag drop
  1168. // //RegisterClipboardFormatsForDragDrop();
  1169. // }
  1170. // if (!string.IsNullOrEmpty(m_sUrl))
  1171. // this.Navigate(m_sUrl);
  1172. // else
  1173. // this.Navigate(m_AboutBlank);
  1174. // //Get the shell embedding, ...
  1175. // WBIEServerHandle();
  1176. // }
  1177. // //Wrappers for Webbrowser.ExecWB and IOleCommand.Exec methods
  1178. // private void ExecWB(OLECMDID command)
  1179. // {
  1180. // if (m_WBWebBrowser2 != null)
  1181. // {
  1182. // m_WBWebBrowser2.ExecWB(command,
  1183. // OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT,
  1184. // ref m_NullObject, ref m_NullObject);
  1185. // }
  1186. // }
  1187. // private int WBOleCommandExec(OLECMDID command)
  1188. // {
  1189. // //Execute the command using default group NULL
  1190. // int hr = Hresults.S_FALSE; //1
  1191. // if (m_WBOleCommandTarget != null)
  1192. // {
  1193. // //should return S_OK 0
  1194. // hr = m_WBOleCommandTarget.Exec(m_NullPointer,
  1195. // (uint)command, (uint)OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,
  1196. // m_NullPointer, m_NullPointer);
  1197. // }
  1198. // return hr;
  1199. // }
  1200. // private int WBOleCommandExec(OLECMDID command, OLECMDEXECOPT cmdopt)
  1201. // {
  1202. // //Execute the command using default group NULL
  1203. // int hr = Hresults.S_FALSE;
  1204. // if (m_WBOleCommandTarget != null)
  1205. // {
  1206. // hr = m_WBOleCommandTarget.Exec(m_NullPointer,
  1207. // (uint)command, (uint)cmdopt,
  1208. // m_NullPointer, m_NullPointer);
  1209. // }
  1210. // return hr;
  1211. // }
  1212. // //Utility, used in Findxxx methods
  1213. // //MakeRGB(Color.FromName(Color));
  1214. // private int MakeRGB(Color cColor)
  1215. // {
  1216. // try
  1217. // {
  1218. // //Taken from RGB macro in wingdi.h
  1219. // return (int)((cColor.R | (((short)cColor.G) << 8)) | (((int)cColor.B) << 16));
  1220. // }
  1221. // catch (Exception)
  1222. // {
  1223. // return 0;
  1224. // }
  1225. // }
  1226. // private void SynchDOCDOWNLOADCTLFLAG(DOCDOWNLOADCTLFLAG flag, bool add)
  1227. // {
  1228. // if (add)
  1229. // {
  1230. // if ((m_DLCtlFlags & flag) == 0)
  1231. // m_DLCtlFlags |= flag;
  1232. // }
  1233. // else
  1234. // {
  1235. // if ((m_DLCtlFlags & flag) != 0)
  1236. // m_DLCtlFlags -= flag;
  1237. // }
  1238. // if ((m_WBUnknown != null) && (m_WBWebBrowser2 != null))
  1239. // {
  1240. // try
  1241. // {
  1242. // //Signal change of DL property
  1243. // //so MSHTML call our Invoke method through Dispatch
  1244. // //Otherwise refreshing the page will have no effect
  1245. // //MSHTML does not know of new flags set by us
  1246. // //QI for IOleControl
  1247. // IOleControl pOC = (IOleControl)m_WBUnknown;
  1248. // pOC.OnAmbientPropertyChange(HTMLDispIDs.DISPID_AMBIENT_DLCONTROL);
  1249. // }
  1250. // finally
  1251. // {
  1252. // }
  1253. // }
  1254. // }
  1255. // private void SynchDOCHOSTUIFLAG(DOCHOSTUIFLAG flag, bool add)
  1256. // {
  1257. // if (add)
  1258. // {
  1259. // if ((m_DocHostUiFlags & flag) == 0)
  1260. // m_DocHostUiFlags |= flag;
  1261. // }
  1262. // else
  1263. // {
  1264. // if ((m_DocHostUiFlags & flag) != 0)
  1265. // m_DocHostUiFlags -= flag;
  1266. // }
  1267. // }
  1268. // #endregion
  1269. // #region Public Method Members
  1270. // //Using IWebBrowser2 interface
  1271. // public void Navigate(string URL)
  1272. // {
  1273. // if (m_WBWebBrowser2 != null)
  1274. // m_WBWebBrowser2.Navigate(URL, ref m_NullObject, ref m_NullObject, ref m_NullObject, ref m_NullObject);
  1275. // }
  1276. // //http://msdn2.microsoft.com/en-us/library/2x07fbw8.aspx
  1277. // public void Navigate(string URL, BrowserNavConstants Flags)
  1278. // {
  1279. // if (m_WBWebBrowser2 != null)
  1280. // {
  1281. // //At runtime, outobj data type is determined and passed as
  1282. // //variant of that type. Used for simple data types
  1283. // object outobj = (int)Flags;
  1284. // object outtarget = null;
  1285. // if (Flags == BrowserNavConstants.navOpenInNewWindow)
  1286. // outtarget = "_BLANK";
  1287. // m_WBWebBrowser2.Navigate(URL, ref outobj, ref outtarget, ref m_NullObject, ref m_NullObject);
  1288. // }
  1289. // }
  1290. // public void Navigate(string URL, BrowserNavConstants Flags, string TargetFrameName, string PostData)
  1291. // {
  1292. // if (m_WBWebBrowser2 != null)
  1293. // {
  1294. // object vFlags = (int)Flags;
  1295. // object vTargetFrameName = TargetFrameName;
  1296. // object vPostData = ASCIIEncoding.ASCII.GetBytes(PostData);
  1297. // object vHeaders = "Content-Type: application/x-www-form-urlencoded\r\n";
  1298. // m_WBWebBrowser2.Navigate(URL, ref vFlags, ref vTargetFrameName, ref vPostData, ref vHeaders);
  1299. // }
  1300. // }
  1301. // public void Navigate(string URL, BrowserNavConstants Flags, string PostData)
  1302. // {
  1303. // if (m_WBWebBrowser2 != null)
  1304. // {
  1305. // object vFlags = (int)Flags;
  1306. // object vPostData = ASCIIEncoding.ASCII.GetBytes(PostData);
  1307. // object vHeaders = "Content-Type: application/x-www-form-urlencoded\r\n";
  1308. // m_WBWebBrowser2.Navigate(URL, ref vFlags, ref m_NullObject, ref vPostData, ref vHeaders);
  1309. // }
  1310. // }
  1311. // //PostData: Flav=red&taste=good
  1312. // public void Navigate(string URL, string PostData)
  1313. // {
  1314. // if (m_WBWebBrowser2 != null)
  1315. // {
  1316. // object vPostData = ASCIIEncoding.ASCII.GetBytes(PostData);
  1317. // object vHeaders = "Content-Type: application/x-www-form-urlencoded\r\n";
  1318. // m_WBWebBrowser2.Navigate(URL, ref m_NullObject, ref m_NullObject, ref vPostData, ref vHeaders);
  1319. // }
  1320. // }
  1321. // public void Navigate(string URL, byte[] PostData)
  1322. // {
  1323. // if (m_WBWebBrowser2 != null)
  1324. // {
  1325. // object vPostData = PostData;
  1326. // object vHeaders = "Content-Type: application/x-www-form-urlencoded\r\n";
  1327. // m_WBWebBrowser2.Navigate(URL, ref m_NullObject, ref m_NullObject, ref vPostData, ref vHeaders);
  1328. // }
  1329. // }
  1330. // public void Navigate2(string URL)
  1331. // {
  1332. // if (m_WBWebBrowser2 != null)
  1333. // {
  1334. // object outobj = URL;
  1335. // m_WBWebBrowser2.Navigate2(ref outobj, ref m_NullObject, ref m_NullObject, ref m_NullObject, ref m_NullObject);
  1336. // }
  1337. // }
  1338. // public void NavToBlank()
  1339. // {
  1340. // if (m_WBWebBrowser2 != null)
  1341. // m_WBWebBrowser2.Navigate(m_AboutBlank, ref m_NullObject, ref m_NullObject, ref m_NullObject, ref m_NullObject);
  1342. // }
  1343. // public void Stop()
  1344. // {
  1345. // if (m_WBWebBrowser2 != null)
  1346. // m_WBWebBrowser2.Stop();
  1347. // }
  1348. // public bool GoBack()
  1349. // {
  1350. // if ((m_WBWebBrowser2 != null) && (m_bCanGoBack))
  1351. // {
  1352. // m_WBWebBrowser2.GoBack();
  1353. // return true;
  1354. // }
  1355. // return false;
  1356. // }
  1357. // public bool GoForward()
  1358. // {
  1359. // if ((m_WBWebBrowser2 != null) && (m_bCanGoForward))
  1360. // {
  1361. // m_WBWebBrowser2.GoForward();
  1362. // return true;
  1363. // }
  1364. // return false;
  1365. // }
  1366. // public void GoHome()
  1367. // {
  1368. // if (m_WBWebBrowser2 != null)
  1369. // m_WBWebBrowser2.GoHome();
  1370. // }
  1371. // public void GoSearch()
  1372. // {
  1373. // if (m_WBWebBrowser2 != null)
  1374. // m_WBWebBrowser2.GoSearch();
  1375. // }
  1376. // public void Refresh2(RefreshConstants Level)
  1377. // {
  1378. // if (m_WBWebBrowser2 != null)
  1379. // {
  1380. // object outobj = (Int32)Level;
  1381. // m_WBWebBrowser2.Refresh2(ref outobj);
  1382. // }
  1383. // }
  1384. // //Using IOleCommandTarget interface
  1385. // public bool SelectAll()
  1386. // {
  1387. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_SELECTALL) == Hresults.S_OK) ? true : false;
  1388. // }
  1389. // public bool Clear()
  1390. // {
  1391. // if (m_WBWebBrowser2 == null)
  1392. // return false;
  1393. // IHTMLDocument2 doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  1394. // if (doc2 == null)
  1395. // return false;
  1396. // if (doc2.body == null)
  1397. // return false;
  1398. // doc2.body.innerHTML = "";
  1399. // return true;
  1400. // }
  1401. // public bool ClearSelection()
  1402. // {
  1403. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_CLEARSELECTION) == Hresults.S_OK) ? true : false;
  1404. // }
  1405. // public bool Copy()
  1406. // {
  1407. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_COPY) == Hresults.S_OK) ? true : false;
  1408. // }
  1409. // public bool Paste()
  1410. // {
  1411. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_PASTE) == Hresults.S_OK) ? true : false;
  1412. // }
  1413. // public bool Cut()
  1414. // {
  1415. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_CUT) == Hresults.S_OK) ? true : false;
  1416. // }
  1417. // public bool Undo()
  1418. // {
  1419. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_UNDO) == Hresults.S_OK) ? true : false;
  1420. // }
  1421. // public bool Redo()
  1422. // {
  1423. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_REDO) == Hresults.S_OK) ? true : false;
  1424. // }
  1425. // public bool Delete()
  1426. // {
  1427. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_DELETE) == Hresults.S_OK) ? true : false;
  1428. // }
  1429. // public bool PasteSpecial()
  1430. // {
  1431. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_PASTESPECIAL) == Hresults.S_OK) ? true : false;
  1432. // }
  1433. // public bool Spell()
  1434. // {
  1435. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_SPELL) == Hresults.S_OK) ? true : false;
  1436. // }
  1437. // public bool NewWindow()
  1438. // {
  1439. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_NEW) == Hresults.S_OK) ? true : false;
  1440. // }
  1441. // public bool Print()
  1442. // {
  1443. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_PRINT) == Hresults.S_OK) ? true : false;
  1444. // }
  1445. // public bool Print2()
  1446. // {
  1447. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_PRINT2) == Hresults.S_OK) ? true : false;
  1448. // }
  1449. // public bool Properties()
  1450. // {
  1451. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_PROPERTIES) == Hresults.S_OK) ? true : false;
  1452. // }
  1453. // public bool PrintPreview()
  1454. // {
  1455. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_PRINTPREVIEW) == Hresults.S_OK) ? true : false;
  1456. // }
  1457. // public bool PrintPreview2()
  1458. // {
  1459. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_PRINTPREVIEW2) == Hresults.S_OK) ? true : false;
  1460. // }
  1461. // public bool PageSetup()
  1462. // {
  1463. // return (this.WBOleCommandExec(OLECMDID.OLECMDID_PAGESETUP) == Hresults.S_OK) ? true : false;
  1464. // }
  1465. // public void SaveAs()
  1466. // {
  1467. // //displays the old style saveas
  1468. // //returns notsupported if user clicks cancel
  1469. // //m_iTmpRet = this.WBOleCommandExec(OLECMDID.OLECMDID_SAVEAS);
  1470. // //if (m_iTmpRet != Hresults.S_OK)
  1471. // this.ExecWB(OLECMDID.OLECMDID_SAVEAS); //displays modern style
  1472. // }
  1473. // //using CGI_IWebBrowser group
  1474. // private int ShowMiscCommands(WB_MiscCommandTarget command)
  1475. // {
  1476. // int hr = Hresults.S_FALSE;
  1477. // uint uicommand = (uint)command;
  1478. // if (m_WBOleCommandTarget != null)
  1479. // {
  1480. // IntPtr pPt = m_NullPointer;
  1481. // try
  1482. // {
  1483. // byte[] guidbytes = Iid_Clsids.CLSID_CGI_IWebBrowser.ToByteArray();
  1484. // pPt = Marshal.AllocCoTaskMem((int)(guidbytes.Length * 2));
  1485. // Marshal.Copy(guidbytes, 0, pPt, guidbytes.Length);
  1486. // hr = m_WBOleCommandTarget.Exec(pPt,
  1487. // uicommand,
  1488. // (uint)OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT,
  1489. // m_NullPointer, m_NullPointer);
  1490. // Marshal.FreeCoTaskMem(pPt);
  1491. // pPt = m_NullPointer;
  1492. // //if (hr != Hresults.S_OK)
  1493. // // MessageBox(m_NullPointer, HresultAsString(hr),"ShowFindWB",0);
  1494. // }
  1495. // finally
  1496. // {
  1497. // if (pPt != m_NullPointer)
  1498. // Marshal.FreeCoTaskMem(pPt);
  1499. // }
  1500. // }
  1501. // return hr;
  1502. // }
  1503. // public bool Find()
  1504. // {
  1505. // return (this.ShowMiscCommands(WB_MiscCommandTarget.Find) == Hresults.S_OK) ? true : false;
  1506. // }
  1507. // public bool IEOptions()
  1508. // {
  1509. // return (this.ShowMiscCommands(WB_MiscCommandTarget.Options) == Hresults.S_OK) ? true : false;
  1510. // }
  1511. // public bool ViewSource()
  1512. // {
  1513. // return (this.ShowMiscCommands(WB_MiscCommandTarget.ViewSource) == Hresults.S_OK) ? true : false;
  1514. // }
  1515. // //Using IShellUIHelper
  1516. // //If not working use API:
  1517. // //DoOrganizeFavDlg
  1518. // //AddUrlToFavorites
  1519. // private int ShellUIHelperMiscCommands(string scommand)
  1520. // {
  1521. // #region C++ version
  1522. // // HRESULT hr;
  1523. // // IShellUIHelper* pShellUI = NULL;
  1524. // // hr = CoCreateInstance(CLSID_ShellUIHelper, NULL, CLSCTX_INPROC_SERVER, IID_IShellUIHelper, (void **)&pShellUI);
  1525. // // if(FAILED(hr) || !pShellUI) return Hresults.S_FALSE;
  1526. // //
  1527. // //LanguageDialog
  1528. // // Opens the Language Preference dialog box.
  1529. // //OrganizeFavorites
  1530. // // Opens the Organize Favorites dialog box.
  1531. // //PrivacySettings
  1532. // // Microsoft® Internet Explorer 6 and later. Opens the Privacy Preferences dialog box.
  1533. // //ProgramAccessAndDefaults
  1534. // // Microsoft Windows® XP Service Pack 1 (SP1) and later. Opens the Set Program Access and Defaults dialog box.
  1535. // //
  1536. // // pShellUI->ShowBrowserUI(CComBSTR(L"OrganizeFavorites"), NULL, NULL);
  1537. // // pShellUI->Release();
  1538. // #endregion
  1539. // int hr = Hresults.S_FALSE;
  1540. // //Create a new ShellUiHelper
  1541. // Type shelluitype = Type.GetTypeFromCLSID(Iid_Clsids.CLSID_ShellUIHelper, true);
  1542. // //Using Activator inplace of CoCreateInstance, returns IUnknown
  1543. // IShellUIHelper uihelper = System.Activator.CreateInstance(shelluitype) as IShellUIHelper;
  1544. // if (uihelper == null)
  1545. // return hr;
  1546. // uihelper.ShowBrowserUI(scommand, ref m_NullObject);
  1547. // return hr;
  1548. // }
  1549. // public void OrganizeFavorites()
  1550. // {
  1551. // ShellUIHelperMiscCommands("OrganizeFavorites");
  1552. // }
  1553. // public void PrivacySettings()
  1554. // {
  1555. // ShellUIHelperMiscCommands("PrivacySettings");
  1556. // }
  1557. // public void LanguageDialog()
  1558. // {
  1559. // ShellUIHelperMiscCommands("LanguageDialog");
  1560. // }
  1561. // public void ProgramAccessAndDefaults()
  1562. // {
  1563. // ShellUIHelperMiscCommands("ProgramAccessAndDefaults");
  1564. // }
  1565. // //Using IE Server hwnd and shelldocobject hwnd directly
  1566. // //Do not work in Vista IE7, COMMANDID values have changed
  1567. // public void AddToFavorites()
  1568. // {
  1569. // if (!WBIEServerHandle().Equals(m_NullPointer))
  1570. // {
  1571. // HandleRef hhwnd = new HandleRef(this, m_hWBServerHandle);
  1572. // WinApis.SendMessage(hhwnd, (uint)WindowsMessages.WM_COMMAND,
  1573. // (IntPtr)ID_IE_CONTEXTMENU_ADDFAV, m_NullPointer);
  1574. // }
  1575. // }
  1576. // public void ImportExport()
  1577. // {
  1578. // if (!WBShellDocObjHandle().Equals(m_NullPointer))
  1579. // {
  1580. // HandleRef hhwnd = new HandleRef(this, m_hWBShellDocObjHandle);
  1581. // WinApis.SendMessage(hhwnd, (uint)WindowsMessages.WM_COMMAND,
  1582. // (IntPtr)ID_IE_FILE_IMPORTEXPORT, m_NullPointer);
  1583. // }
  1584. // }
  1585. // public void SendLinkByEmail()
  1586. // {
  1587. // if (!WBShellDocObjHandle().Equals(m_NullPointer))
  1588. // {
  1589. // HandleRef hhwnd = new HandleRef(this, m_hWBShellDocObjHandle);
  1590. // WinApis.SendMessage(hhwnd, (uint)WindowsMessages.WM_COMMAND,
  1591. // (IntPtr)ID_IE_FILE_SENDLINK, m_NullPointer);
  1592. // }
  1593. // }
  1594. // public void SendPageByEmail()
  1595. // {
  1596. // if (!WBShellDocObjHandle().Equals(m_NullPointer))
  1597. // {
  1598. // HandleRef hhwnd = new HandleRef(this, m_hWBShellDocObjHandle);
  1599. // WinApis.SendMessage(hhwnd, (uint)WindowsMessages.WM_COMMAND,
  1600. // (IntPtr)ID_IE_FILE_SENDPAGE, m_NullPointer);
  1601. // }
  1602. // }
  1603. // public void SendShortcutToDesktop()
  1604. // {
  1605. // if (!WBShellDocObjHandle().Equals(m_NullPointer))
  1606. // {
  1607. // HandleRef hhwnd = new HandleRef(this, m_hWBShellDocObjHandle);
  1608. // WinApis.SendMessage(hhwnd, (uint)WindowsMessages.WM_COMMAND,
  1609. // (IntPtr)ID_IE_FILE_SENDDESKTOPSHORTCUT, m_NullPointer);
  1610. // }
  1611. // }
  1612. // //Using IWebbrowser2
  1613. // //Loads a URL into browser using IPersistMoniker interface
  1614. // public bool LoadUrlIntoBrowser(String url)
  1615. // {
  1616. // bool ret = false;
  1617. // if ((m_WBWebBrowser2 == null) || (url.Length == 0))
  1618. // return ret;
  1619. // IPersistMoniker persistMoniker = m_WBWebBrowser2.Document as IPersistMoniker;
  1620. // if (persistMoniker == null)
  1621. // return ret;
  1622. // IMoniker moniker = null;
  1623. // IBindCtx bindContext = null;
  1624. // WinApis.CreateBindCtx((uint)0, out bindContext);
  1625. // if (bindContext == null)
  1626. // return ret;
  1627. // //need our own implementation of moniker
  1628. // //moniker.BindToStorage(bindContext, null,ref IID_IStream,out new object(stream));
  1629. // WinApis.CreateURLMoniker(null, url, out moniker);
  1630. // if (moniker == null)
  1631. // return ret;
  1632. // persistMoniker.Load(1, moniker, bindContext, 0);
  1633. // return true;
  1634. // }
  1635. // public bool LoadHtmlIntoBrowser(string html, string sBaseUrl)
  1636. // {
  1637. // bool ret = false;
  1638. // if ((m_WBWebBrowser2 == null) || (html.Length == 0))
  1639. // return ret;
  1640. // IStream stream = null;
  1641. // //Use Marshal.StringToHGlobalAnsi to get ANSI
  1642. // int hr = WinApis.CreateStreamOnHGlobal(Marshal.StringToHGlobalAuto(html), true, out stream);
  1643. // if ((hr != Hresults.S_OK) || (stream == null))
  1644. // return ret;
  1645. // IPersistMoniker pPM = m_WBWebBrowser2.Document as IPersistMoniker;
  1646. // if (pPM == null)
  1647. // return ret;
  1648. // IBindCtx bindctx = null;
  1649. // WinApis.CreateBindCtx((uint)0, out bindctx);
  1650. // if (bindctx == null)
  1651. // return ret;
  1652. // LoadHTMLMoniker loader = new LoadHTMLMoniker();
  1653. // if (string.IsNullOrEmpty(sBaseUrl))
  1654. // sBaseUrl = m_WBWebBrowser2.LocationURL;
  1655. // loader.InitLoader(html, sBaseUrl);
  1656. // pPM.Load(1, loader, bindctx, WinApis.STGM_READ);
  1657. // stream = null;
  1658. // return true;
  1659. // }
  1660. // public bool LoadHtmlIntoBrowser(string html)
  1661. // {
  1662. // bool ret = false;
  1663. // if ((m_WBWebBrowser2 == null) ||
  1664. // (m_WBWebBrowser2.Document == null) ||
  1665. // (html.Length == 0)
  1666. // )
  1667. // return ret;
  1668. // //pWebBrowser->get_Document( &pHTMLDocDisp );
  1669. // //pHTMLDocDisp->QueryInterface( IID_IPersistStreamInit, (void**)&pPersistStreamInit );
  1670. // IStream stream = null;
  1671. // //Use Marshal.StringToHGlobalAnsi to get ANSI
  1672. // //or Marshal.StringToHGlobalUni to get UNICODE
  1673. // //or Marshal.StringToHGlobalAuto to default to ANSI
  1674. // //define UNICODE in build config to get UNICODE HGlobal
  1675. // int hr = WinApis.CreateStreamOnHGlobal(Marshal.StringToHGlobalAuto(html), true, out stream);
  1676. // if ((hr != Hresults.S_OK) || (stream == null))
  1677. // return ret;
  1678. // IPersistStreamInit persistentStreamInit = m_WBWebBrowser2.Document as IPersistStreamInit;
  1679. // if (persistentStreamInit != null)
  1680. // {
  1681. // persistentStreamInit.InitNew();
  1682. // persistentStreamInit.Load(stream);
  1683. // persistentStreamInit = null;
  1684. // ret = true;
  1685. // }
  1686. // stream = null;
  1687. // return ret;
  1688. // }
  1689. // private bool ThumbnailCallback() { return false; }
  1690. // /// <summary>
  1691. // /// Faster than DrawThumb, but
  1692. // /// does not work if a window is hidden
  1693. // /// or is not on top of the zorder
  1694. // /// </summary>
  1695. // /// <param name="W"></param>
  1696. // /// <param name="H"></param>
  1697. // /// <param name="pixFormat"></param>
  1698. // /// <returns></returns>
  1699. // public Image DrawThumb2(int W, int H, System.Drawing.Imaging.PixelFormat pixFormat)
  1700. // {
  1701. // if (WBIEServerHandle().Equals(IntPtr.Zero))
  1702. // return m_WBThumbImg;
  1703. // Bitmap bmp1 = null;
  1704. // try
  1705. // {
  1706. // if (m_WBThumbImg != null)
  1707. // {
  1708. // m_WBThumbImg.Dispose();
  1709. // m_WBThumbImg = null;
  1710. // }
  1711. // IntPtr wbhdc = WinApis.GetWindowDC(m_hWBServerHandle);
  1712. // if (wbhdc == IntPtr.Zero)
  1713. // return m_WBThumbImg;
  1714. // bmp1 = new Bitmap(m_WBRect.Right, m_WBRect.Bottom, pixFormat);
  1715. // using (Graphics grl = Graphics.FromImage(bmp1))
  1716. // {
  1717. // IntPtr ghdc = grl.GetHdc();
  1718. // //blt it to the hdc
  1719. // WinApis.BitBlt(ghdc, 0, 0, bmp1.Width, bmp1.Height,
  1720. // wbhdc, 0, 0, TernaryRasterOperations.SRCCOPY);
  1721. // grl.ReleaseHdc();
  1722. // }
  1723. // m_WBThumbImg = bmp1.GetThumbnailImage(W, H, new Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
  1724. // bmp1.Dispose();
  1725. // bmp1 = null;
  1726. // }
  1727. // finally
  1728. // {
  1729. // if (bmp1 != null)
  1730. // bmp1.Dispose();
  1731. // }
  1732. // return m_WBThumbImg;
  1733. // }
  1734. // public Image DrawThumb(int W, int H, System.Drawing.Imaging.PixelFormat pixFormat)
  1735. // {
  1736. // Bitmap bmp = null;
  1737. // try
  1738. // {
  1739. // if (m_WBThumbImg != null)
  1740. // {
  1741. // m_WBThumbImg.Dispose();
  1742. // m_WBThumbImg = null;
  1743. // }
  1744. // if (m_WBWebBrowser2 == null)
  1745. // return m_WBThumbImg;
  1746. // //Frameset
  1747. // //http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/libraries/ie6_lib/default.asp
  1748. // if (IsWBFrameset(this.m_WBWebBrowser2))
  1749. // {
  1750. // //Not the best but works as long as the browser
  1751. // //is in front of Zorder
  1752. // //an alternative approach would be to get
  1753. // //the frames collection using GetFrames() method
  1754. // //Make a bitmap size of the webbrowser,
  1755. // //draw each frame on a seperate bitmap and then
  1756. // //transfer it to the main bitmap according to their
  1757. // //left and top offsets. A bit lenghty and messy.
  1758. // //If you are looking for a challange then go no further than
  1759. // //MSDN homepage, http://msdn.microsoft.com/library/default.asp
  1760. // //This page has a total of six frames, but some of the frames
  1761. // //are contained within other frames and so on. Getting the
  1762. // //width and height is easy, but finding where to start drawing
  1763. // //frames is not.
  1764. // return DrawThumb2(W, H, pixFormat);
  1765. // }
  1766. // //Get doc2, and viewobject
  1767. // IHTMLDocument2 pDoc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  1768. // if (pDoc2 == null)
  1769. // return m_WBThumbImg;
  1770. // IViewObject pViewObject = pDoc2 as IViewObject;
  1771. // if (pViewObject == null)
  1772. // return m_WBThumbImg;
  1773. // IHTMLBodyElement pBody = null;
  1774. // IHTMLElement pElem = null;
  1775. // IHTMLStyle pStyle = null;
  1776. // string strStyle = string.Empty;
  1777. // //get the IHtmlelement
  1778. // pElem = pDoc2.body;
  1779. // if (pElem != null)
  1780. // {
  1781. // //Get the IHTMLStyle
  1782. // pStyle = pElem.style;
  1783. // //Get the borderstyle so we can reset it
  1784. // strStyle = pStyle.borderStyle;
  1785. // //Hide 3D border
  1786. // pStyle.borderStyle = "none";
  1787. // pBody = pElem as IHTMLBodyElement;
  1788. // //No scrollbars
  1789. // if (pBody != null)
  1790. // pBody.scroll = "no";
  1791. // }
  1792. // //Create bmp
  1793. // bmp = new Bitmap(m_WBRect.Right, m_WBRect.Bottom, pixFormat);
  1794. // //draw
  1795. // int hr = Hresults.S_FALSE;
  1796. // using (Graphics gr = Graphics.FromImage(bmp))
  1797. // {
  1798. // //get hdc
  1799. // IntPtr hdc = gr.GetHdc();
  1800. // hr = pViewObject.Draw(
  1801. // (uint)DVASPECT.DVASPECT_CONTENT,
  1802. // (int)-1, m_NullPointer, m_NullPointer,
  1803. // m_NullPointer, hdc, ref m_WBRect, ref m_WBRect,
  1804. // m_NullPointer, (uint)0);
  1805. // //if (hr == Hresults.S_OK)
  1806. // //{
  1807. // // //Transfer to target hdc - TargetHdc = picturebox.image hdc
  1808. // // StretchBlt(TargetHdc, X, Y, W, H,
  1809. // // hdc, 0, 0, bmp.Width, bmp.Height,
  1810. // // TernaryRasterOperations.SRCCOPY);
  1811. // //}
  1812. // gr.ReleaseHdc();
  1813. // //gr.Dispose();
  1814. // }
  1815. // if (!string.IsNullOrEmpty(strStyle))
  1816. // pStyle.borderStyle = strStyle;
  1817. // if (pBody != null)
  1818. // pBody.scroll = "auto";
  1819. // m_WBThumbImg = bmp.GetThumbnailImage(W, H,
  1820. // new Image.GetThumbnailImageAbort(ThumbnailCallback),
  1821. // IntPtr.Zero);
  1822. // bmp.Dispose();
  1823. // bmp = null;
  1824. // }
  1825. // finally
  1826. // {
  1827. // if (bmp != null)
  1828. // bmp.Dispose();
  1829. // }
  1830. // return m_WBThumbImg;
  1831. // }
  1832. // public void SaveBrowserImage(string sFileName,
  1833. // System.Drawing.Imaging.PixelFormat pixFormat,
  1834. // System.Drawing.Imaging.ImageFormat format)
  1835. // {
  1836. // if (m_WBWebBrowser2 == null)
  1837. // return;
  1838. // Bitmap bmp = null;
  1839. // try
  1840. // {
  1841. // //Get doc2, doc3, and viewobject
  1842. // IHTMLDocument2 pDoc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  1843. // if (pDoc2 == null) return;
  1844. // IHTMLDocument3 pDoc3 = m_WBWebBrowser2.Document as IHTMLDocument3;
  1845. // if (pDoc3 == null) return;
  1846. // IViewObject pViewObject = pDoc2 as IViewObject;
  1847. // if (pViewObject == null) return;
  1848. // IHTMLBodyElement pBody = null;
  1849. // IHTMLElement pElem = null;
  1850. // IHTMLElement2 pBodyElem = null;
  1851. // IHTMLStyle pStyle = null;
  1852. // string strStyle;
  1853. // int bodyHeight = 0;
  1854. // int bodyWidth = 0;
  1855. // int rootHeight = 0;
  1856. // int rootWidth = 0;
  1857. // int height = 0;
  1858. // int width = 0;
  1859. // //get the IHtmlelement
  1860. // pElem = pDoc2.body;
  1861. // //Get the IHTMLStyle
  1862. // if (pElem != null)
  1863. // pStyle = pElem.style;
  1864. // //Get the borderstyle so we can reset it
  1865. // strStyle = pStyle.borderStyle;
  1866. // //Hide 3D border
  1867. // pStyle.borderStyle = "none";
  1868. // pBody = pElem as IHTMLBodyElement;
  1869. // //No scrollbars
  1870. // if (pBody != null)
  1871. // pBody.scroll = "no";
  1872. // //Get root scroll h + w
  1873. // //QI for IHTMLElement2
  1874. // pBodyElem = pElem as IHTMLElement2;
  1875. // if (pBodyElem != null)
  1876. // {
  1877. // bodyWidth = pBodyElem.scrollWidth;
  1878. // bodyHeight = pBodyElem.scrollHeight;
  1879. // }
  1880. // //release
  1881. // pElem = null;
  1882. // pBodyElem = null;
  1883. // //Get docelem
  1884. // pElem = pDoc3.documentElement;
  1885. // //QI for IHTMLElement2
  1886. // if (pElem != null)
  1887. // {
  1888. // pBodyElem = pElem as IHTMLElement2;
  1889. // //Get scroll H + W
  1890. // if (pBodyElem != null)
  1891. // {
  1892. // rootWidth = pBodyElem.scrollWidth;
  1893. // rootHeight = pBodyElem.scrollHeight;
  1894. // }
  1895. // //calc actual W + H
  1896. // width = rootWidth > bodyWidth ? rootWidth : bodyWidth;
  1897. // height = rootHeight > bodyHeight ? rootHeight : bodyHeight;
  1898. // }
  1899. // //Set up a rect
  1900. // tagRECT rWPos = new tagRECT(0, 0, width, height);
  1901. // //Size browser
  1902. // if (m_WBOleInPlaceObject != null)
  1903. // m_WBOleInPlaceObject.SetObjectRects(ref rWPos, ref rWPos);
  1904. // //Create bmp
  1905. // bmp = new Bitmap(width, height, pixFormat);
  1906. // //draw
  1907. // int hr = Hresults.S_FALSE;
  1908. // using (Graphics gr = Graphics.FromImage(bmp))
  1909. // {
  1910. // //get hdc
  1911. // IntPtr hdc = gr.GetHdc();
  1912. // hr = pViewObject.Draw(
  1913. // (uint)DVASPECT.DVASPECT_CONTENT,
  1914. // (int)-1, m_NullPointer, m_NullPointer,
  1915. // m_NullPointer, hdc, ref rWPos, ref rWPos,
  1916. // m_NullPointer, (uint)0);
  1917. // gr.ReleaseHdc(hdc);
  1918. // }
  1919. // //reset
  1920. // this.SetLocation();
  1921. // if (!string.IsNullOrEmpty(strStyle))
  1922. // pStyle.borderStyle = strStyle;
  1923. // if (pBody != null)
  1924. // pBody.scroll = "auto";
  1925. // if (hr == Hresults.S_OK)
  1926. // {
  1927. // //save
  1928. // bmp.Save(sFileName, format);
  1929. // }
  1930. // bmp.Dispose();
  1931. // bmp = null;
  1932. // }
  1933. // finally
  1934. // {
  1935. // if (bmp != null)
  1936. // bmp.Dispose();
  1937. // }
  1938. // }
  1939. // //Using CGID_ShellDocView
  1940. // public void ShowCertificateDialog()
  1941. // {
  1942. // if (m_WBOleCommandTarget == null)
  1943. // return;
  1944. // IntPtr pPt = m_NullPointer;
  1945. // int hr = Hresults.S_OK;
  1946. // try
  1947. // {
  1948. // byte[] guidbytes = Iid_Clsids.CGID_ShellDocView.ToByteArray();
  1949. // pPt = Marshal.AllocCoTaskMem((int)(guidbytes.Length * 2));
  1950. // Marshal.Copy(guidbytes, 0, pPt, guidbytes.Length);
  1951. // hr = m_WBOleCommandTarget.Exec(pPt,
  1952. // WinApis.SHDVID_SSLSTATUS,
  1953. // (uint)OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT,
  1954. // m_NullPointer, m_NullPointer);
  1955. // Marshal.FreeCoTaskMem(pPt);
  1956. // pPt = m_NullPointer;
  1957. // }
  1958. // finally
  1959. // {
  1960. // if (pPt != m_NullPointer)
  1961. // Marshal.FreeCoTaskMem(pPt);
  1962. // }
  1963. // }
  1964. // public bool HasFocus()
  1965. // {
  1966. // if (m_WBWebBrowser2 != null)
  1967. // {
  1968. // IHTMLDocument4 doc4 = m_WBWebBrowser2.Document as IHTMLDocument4;
  1969. // if (doc4 != null)
  1970. // return doc4.hasFocus();
  1971. // }
  1972. // return false;
  1973. // }
  1974. // public void SetFocus()
  1975. // {
  1976. // if (m_WBWebBrowser2 == null)
  1977. // return;
  1978. // //UI activate first
  1979. // if (m_WBOleObject != null)
  1980. // m_WBOleObject.DoVerb((int)OLEDOVERB.OLEIVERB_UIACTIVATE,
  1981. // ref m_NullMsg, this, 0, this.Handle, ref m_WBRect);
  1982. // //Check to see if frameset
  1983. // // if (IsWBFrameset(this.m_WBWebBrowser2))
  1984. // // {
  1985. // IHTMLDocument4 doc4 = m_WBWebBrowser2.Document as IHTMLDocument4;
  1986. // if (doc4 != null)
  1987. // doc4.focus();
  1988. // // }
  1989. // // else //Use body elem to set focus
  1990. // // SetFocusBody();
  1991. // // if (!WBIEServerHandle().Equals(m_NullPointer))
  1992. // // SetFocus(m_hWBServerHandle);
  1993. // }
  1994. // private void SetFocusBody()
  1995. // {
  1996. // if (m_WBWebBrowser2 == null)
  1997. // return;
  1998. // IHTMLDocument2 doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  1999. // if (doc2 == null)
  2000. // return;
  2001. // IHTMLElement2 elem2 = doc2.body as IHTMLElement2;
  2002. // if (elem2 == null)
  2003. // return;
  2004. // elem2.focus();
  2005. // }
  2006. // //We don't have access to IDispatch::Invoke
  2007. // //Fired when IOleControl::OnAmbientPropertyChange is called
  2008. // //from WBDOCDOWNLOADCTLFLAG property in response to DLCtl flag changing
  2009. // [DispId(HTMLDispIDs.DISPID_AMBIENT_DLCONTROL)]
  2010. // public int Idispatch_AmbiantDlControl_Invoke_Handler()
  2011. // {
  2012. // return (int)m_DLCtlFlags;
  2013. // }
  2014. // //Find + Find and highlight
  2015. // public bool FindInPage(string sFind, bool DownWard, bool MatchWholeWord, bool MatchCase, bool ScrollIntoView)
  2016. // {
  2017. // bool success = false;
  2018. // if (m_WBWebBrowser2 == null)
  2019. // return success;
  2020. // if (sFind.Length == 0)
  2021. // {
  2022. // m_sLastSearch = "";
  2023. // m_txtrange = null;
  2024. // return success;
  2025. // }
  2026. // else
  2027. // m_sLastSearch = sFind;
  2028. // int searchdir = (DownWard) ? 1000000 : -1000000;
  2029. // int searchcase = 0; //default
  2030. // //Set up search case
  2031. // if ((MatchWholeWord) && (MatchCase))
  2032. // searchcase = 6;
  2033. // else if (MatchWholeWord)
  2034. // searchcase = 2;
  2035. // else if (MatchCase)
  2036. // searchcase = 4;
  2037. // if (m_txtrange != null)
  2038. // {
  2039. // if (sFind == m_sLastSearch)
  2040. // {
  2041. // if (DownWard)
  2042. // m_txtrange.collapse(false);
  2043. // else
  2044. // m_txtrange.collapse(true);
  2045. // }
  2046. // else
  2047. // m_txtrange = null;
  2048. // }
  2049. // IHTMLDocument2 pDoc2 = GetActiveDocument();
  2050. // if (pDoc2 == null)
  2051. // return success;
  2052. // IHTMLElement pElem = pDoc2.body;
  2053. // IHTMLBodyElement pBodyelem = pElem as IHTMLBodyElement;
  2054. // if (pBodyelem == null)
  2055. // return success;
  2056. // if (m_txtrange == null)
  2057. // m_txtrange = pBodyelem.createTextRange();
  2058. // if (m_txtrange == null)
  2059. // return success;
  2060. // success = m_txtrange.findText(sFind, searchdir, searchcase);
  2061. // if (success)
  2062. // {
  2063. // m_txtrange.select();
  2064. // if (ScrollIntoView)
  2065. // m_txtrange.scrollIntoView(true);
  2066. // }
  2067. // return success;
  2068. // }
  2069. // public int FindAndHightAllInPage(string sFind, bool MatchWholeWord, bool MatchCase, int cbackColor, int cForeColor)
  2070. // {
  2071. // int iMatches = 0;
  2072. // if ((sFind.Length == 0) || (m_WBWebBrowser2 == null))
  2073. // return iMatches;
  2074. // int searchdir = 0;
  2075. // int searchcase = 0; //default
  2076. // const string strbg = "BackColor";
  2077. // const string strf = "ForeColor";
  2078. // const string sword = "Character";
  2079. // const string stextedit = "Textedit";
  2080. // //Set up search case
  2081. // if ((MatchWholeWord) && (MatchCase))
  2082. // searchcase = 6;
  2083. // else if (MatchWholeWord)
  2084. // searchcase = 2;
  2085. // else if (MatchCase)
  2086. // searchcase = 4;
  2087. // IHTMLDocument2 pDoc2 = GetActiveDocument();
  2088. // if (pDoc2 == null)
  2089. // return iMatches;
  2090. // IHTMLElement pElem = pDoc2.body;
  2091. // IHTMLBodyElement pBodyelem = pElem as IHTMLBodyElement;
  2092. // if (pBodyelem == null)
  2093. // return iMatches;
  2094. // IHTMLTxtRange pTxtRange = pBodyelem.createTextRange();
  2095. // if (pTxtRange == null)
  2096. // return iMatches;
  2097. // //Can also QI pTxtRange for IOleCommand and use Exec method
  2098. // //is recommanded by MSDN.
  2099. // while (pTxtRange.findText(sFind, searchdir, searchcase))
  2100. // {
  2101. // if (cbackColor != 0)
  2102. // pTxtRange.execCommand(strbg, false, cbackColor);
  2103. // if (cForeColor != 0)
  2104. // pTxtRange.execCommand(strf, false, cForeColor);
  2105. // pTxtRange.moveStart(sword, 1);
  2106. // pTxtRange.moveEnd(stextedit, 1);
  2107. // iMatches = iMatches + 1;
  2108. // }
  2109. // return iMatches;
  2110. // }
  2111. // public int FindAndHightAllInPage(string sFind, bool MatchWholeWord, bool MatchCase, string cbackColor, string cForeColor)
  2112. // {
  2113. // int b = 0;
  2114. // int f = 0;
  2115. // //You may be tempted to use Color.Yellow.ToArgb(). But,
  2116. // //the value returned includes the A value which
  2117. // //causes confusion for MSHTML. i.e. Color.Cyan is interpreted as yellow
  2118. // if (cbackColor.Length > 0)
  2119. // b = MakeRGB(Color.FromName(cbackColor));
  2120. // if (cForeColor.Length > 0)
  2121. // f = MakeRGB(Color.FromName(cForeColor));
  2122. // return this.FindAndHightAllInPage(sFind, MatchWholeWord, MatchCase, b, f);
  2123. // }
  2124. // public int FindAndHightAllInPage(string sFind, bool MatchWholeWord, bool MatchCase, Color cbackColor, Color cForeColor)
  2125. // {
  2126. // int b = 0;
  2127. // int f = 0;
  2128. // if (cbackColor != Color.Empty)
  2129. // b = MakeRGB(cbackColor);
  2130. // if (cForeColor != Color.Empty)
  2131. // f = MakeRGB(cForeColor);
  2132. // return this.FindAndHightAllInPage(sFind, MatchWholeWord, MatchCase, b, f);
  2133. // }
  2134. // //"Cut", "Copy", "Paste", ...
  2135. // public bool IsCommandEnabled(string sCmdId)
  2136. // {
  2137. // if (m_WBWebBrowser2 == null)
  2138. // return false;
  2139. // IHTMLDocument2 doc2 = this.m_WBWebBrowser2.Document as IHTMLDocument2;
  2140. // if (doc2 != null)
  2141. // return doc2.queryCommandEnabled(sCmdId);
  2142. // return false;
  2143. // }
  2144. // public bool SetDesignMode(string sMode)
  2145. // {
  2146. // if (m_WBWebBrowser2 == null)
  2147. // return false;
  2148. // IHTMLDocument2 doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2149. // if (doc2 != null)
  2150. // {
  2151. // doc2.designMode = sMode;
  2152. // return true;
  2153. // }
  2154. // return false;
  2155. // }
  2156. // public string GetDesignMode()
  2157. // {
  2158. // if (m_WBWebBrowser2 == null)
  2159. // return string.Empty;
  2160. // IHTMLDocument2 doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2161. // if (doc2 != null)
  2162. // return doc2.designMode;
  2163. // return string.Empty;
  2164. // }
  2165. // //Frames Proof methods
  2166. // public IHTMLDocument2 GetActiveDocument()
  2167. // {
  2168. // IHTMLDocument2 doc2 = null;
  2169. // IHTMLElement elem = null;
  2170. // IWebBrowser2 wb = null;
  2171. // if (this.m_WBWebBrowser2 == null)
  2172. // return doc2;
  2173. // //Get document
  2174. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2175. // if (doc2 == null) return doc2;
  2176. // if (!IsWBFrameset(doc2))
  2177. // return doc2;
  2178. // //Get active element
  2179. // elem = doc2.activeElement;
  2180. // IntPtr pelem = Marshal.GetIUnknownForObject(elem);
  2181. // if (pelem != IntPtr.Zero)
  2182. // {
  2183. // IntPtr pWB = IntPtr.Zero;
  2184. // int iRet = Marshal.QueryInterface(pelem,
  2185. // ref Iid_Clsids.IID_IWebBrowser2, out pWB);
  2186. // //GetIUnknownForObject AddRefs so Release
  2187. // Marshal.Release(pelem);
  2188. // while (pWB != IntPtr.Zero)
  2189. // {
  2190. // wb = Marshal.GetObjectForIUnknown(pWB) as IWebBrowser2;
  2191. // //QueryInterface AddRefs so Release
  2192. // Marshal.Release(pWB);
  2193. // pWB = IntPtr.Zero;
  2194. // if (wb == null) break;
  2195. // doc2 = wb.Document as IHTMLDocument2;
  2196. // if (doc2 == null) break;
  2197. // elem = doc2.activeElement;
  2198. // if (elem == null) break;
  2199. // pelem = Marshal.GetIUnknownForObject(elem);
  2200. // if (pelem != IntPtr.Zero)
  2201. // iRet = Marshal.QueryInterface(pelem,
  2202. // ref Iid_Clsids.IID_IWebBrowser2, out pWB);
  2203. // Marshal.Release(pelem);
  2204. // }
  2205. // }
  2206. // //Here is the C# version. Raises exception
  2207. // ////QI for IWebbrowser2 iface
  2208. // //wb = (IWebBrowser2)elem;
  2209. // ////Continue till no more frames to traverse
  2210. // //while (wb != null)
  2211. // //{
  2212. // // doc2 = (IHTMLDocument2)wb.Document;
  2213. // // elem = doc2.activeElement;
  2214. // // wb = (IWebBrowser2)elem;
  2215. // //}
  2216. // return doc2;
  2217. // }
  2218. // public IHTMLElement GetActiveElement()
  2219. // {
  2220. // IHTMLElement elem = null;
  2221. // IHTMLDocument2 doc2 = GetActiveDocument();
  2222. // if (doc2 != null)
  2223. // elem = doc2.activeElement;
  2224. // return elem;
  2225. // }
  2226. // //if(bTopLevel == true) we use the toplevel document (Not frameset)
  2227. // //if(bTopLevel == false) we find the activedocument and use it's document
  2228. // //Use IsFrameset method in conjunction with these methods
  2229. // public string GetTitle(bool bTopLevel)
  2230. // {
  2231. // if (this.m_WBWebBrowser2 == null)
  2232. // return string.Empty;
  2233. // IHTMLDocument2 doc2 = null;
  2234. // if (bTopLevel)
  2235. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2236. // else
  2237. // doc2 = this.GetActiveDocument();
  2238. // if (doc2 != null)
  2239. // return doc2.title;
  2240. // else
  2241. // return string.Empty;
  2242. // }
  2243. // public string GetTitle(IWebBrowser2 thisBrowser)
  2244. // {
  2245. // if (thisBrowser == null)
  2246. // return string.Empty;
  2247. // IHTMLDocument2 doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2248. // if (doc2 != null)
  2249. // return doc2.title;
  2250. // else
  2251. // return string.Empty;
  2252. // }
  2253. // public string GetText(bool bTopLevel)
  2254. // {
  2255. // if (this.m_WBWebBrowser2 == null)
  2256. // return string.Empty;
  2257. // IHTMLDocument3 doc3 = null;
  2258. // if (bTopLevel)
  2259. // {
  2260. // doc3 = m_WBWebBrowser2.Document as IHTMLDocument3;
  2261. // if (doc3 != null)
  2262. // return doc3.documentElement.outerText;
  2263. // }
  2264. // else
  2265. // {
  2266. // doc3 = this.GetActiveDocument() as IHTMLDocument3;
  2267. // if (doc3 != null)
  2268. // return doc3.documentElement.outerText;
  2269. // }
  2270. // return string.Empty;
  2271. // }
  2272. // public string GetText(IWebBrowser2 thisBrowser)
  2273. // {
  2274. // if (thisBrowser == null)
  2275. // return string.Empty;
  2276. // IHTMLDocument3 doc3 = thisBrowser.Document as IHTMLDocument3;
  2277. // if (doc3 != null)
  2278. // return doc3.documentElement.outerText;
  2279. // else
  2280. // return string.Empty;
  2281. // }
  2282. // public string GetSource(bool bTopLevel)
  2283. // {
  2284. // if (this.m_WBWebBrowser2 == null)
  2285. // return string.Empty;
  2286. // IHTMLDocument3 doc3 = null;
  2287. // if (bTopLevel)
  2288. // doc3 = this.m_WBWebBrowser2.Document as IHTMLDocument3;
  2289. // //return GetSource(this.m_WBWebBrowser2);
  2290. // else
  2291. // doc3 = this.GetActiveDocument() as IHTMLDocument3;
  2292. // if ((doc3 != null) && (doc3.documentElement != null))
  2293. // return doc3.documentElement.outerHTML; //innerHTML;
  2294. // return string.Empty;
  2295. // }
  2296. // public string GetSource(IWebBrowser2 thisBrowser)
  2297. // {
  2298. // if ((thisBrowser == null) || (thisBrowser.Document == null))
  2299. // return string.Empty;
  2300. // //Declare vars
  2301. // int hr = Hresults.S_OK;
  2302. // IStream pStream = null;
  2303. // IPersistStreamInit pPersistStreamInit = null;
  2304. // // Query for IPersistStreamInit.
  2305. // pPersistStreamInit = thisBrowser.Document as IPersistStreamInit;
  2306. // if (pPersistStreamInit == null)
  2307. // return string.Empty;
  2308. // //Create stream, delete on release
  2309. // hr = WinApis.CreateStreamOnHGlobal(m_NullPointer, true, out pStream);
  2310. // if ((pStream == null) || (hr != Hresults.S_OK))
  2311. // return string.Empty;
  2312. // //Save
  2313. // hr = pPersistStreamInit.Save(pStream, false);
  2314. // if (hr != Hresults.S_OK)
  2315. // return string.Empty;
  2316. // //Now read from stream....
  2317. // //First get the size
  2318. // long ulSizeRequired = (long)0;
  2319. // //LARGE_INTEGER
  2320. // long liBeggining = (long)0;
  2321. // System.Runtime.InteropServices.ComTypes.STATSTG statstg = new System.Runtime.InteropServices.ComTypes.STATSTG();
  2322. // pStream.Seek(liBeggining, (int)tagSTREAM_SEEK.STREAM_SEEK_SET, m_NullPointer);
  2323. // pStream.Stat(out statstg, (int)tagSTATFLAG.STATFLAG_NONAME);
  2324. // //Size
  2325. // ulSizeRequired = statstg.cbSize;
  2326. // if (ulSizeRequired == (long)0)
  2327. // return string.Empty;
  2328. // //Allocate buffer + read
  2329. // byte[] pSource = new byte[ulSizeRequired];
  2330. // pStream.Read(pSource, (int)ulSizeRequired, m_NullPointer);
  2331. // //Added by schlaup to handle UTF8 and UNICODE pages
  2332. // //Convert
  2333. // //ASCIIEncoding asce = new ASCIIEncoding();
  2334. // //return asce.GetString(pSource);
  2335. // Encoding enc = null;
  2336. // if (pSource.Length > 8)
  2337. // {
  2338. // // Check byte order mark
  2339. // if ((pSource[0] == 0xFF) && (pSource[1] == 0xFE)) // UTF16LE
  2340. // enc = Encoding.Unicode;
  2341. // if ((pSource[0] == 0xFE) && (pSource[1] == 0xFF)) // UTF16BE
  2342. // enc = Encoding.BigEndianUnicode;
  2343. // if ((pSource[0] == 0xEF) && (pSource[1] == 0xBB) && (pSource[2] == 0xBF)) //UTF8
  2344. // enc = Encoding.UTF8;
  2345. // if (enc == null)
  2346. // {
  2347. // // Check for alternating zero bytes which might indicate Unicode
  2348. // if ((pSource[1] == 0) && (pSource[3] == 0) && (pSource[5] == 0) && (pSource[7] == 0))
  2349. // enc = Encoding.Unicode;
  2350. // }
  2351. // }
  2352. // if (enc == null)
  2353. // enc = Encoding.Default;
  2354. // int bomLength = enc.GetPreamble().Length;
  2355. // return enc.GetString(pSource, bomLength, pSource.Length - bomLength);
  2356. // }
  2357. // public IHTMLElementCollection GetImages(bool bTopLevel)
  2358. // {
  2359. // if (this.m_WBWebBrowser2 == null)
  2360. // return null;
  2361. // IHTMLDocument2 doc2 = null;
  2362. // if (bTopLevel)
  2363. // doc2 = this.m_WBWebBrowser2.Document as IHTMLDocument2;
  2364. // else
  2365. // doc2 = this.GetActiveDocument() as IHTMLDocument2;
  2366. // if (doc2 == null)
  2367. // return null;
  2368. // return doc2.images as IHTMLElementCollection;
  2369. // }
  2370. // public IHTMLElementCollection GetAnchors(bool bTopLevel)
  2371. // {
  2372. // if (this.m_WBWebBrowser2 == null)
  2373. // return null;
  2374. // IHTMLDocument2 doc2 = null;
  2375. // if (bTopLevel)
  2376. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2377. // else
  2378. // doc2 = this.GetActiveDocument() as IHTMLDocument2;
  2379. // if (doc2 == null)
  2380. // return null;
  2381. // return doc2.anchors as IHTMLElementCollection;
  2382. // }
  2383. // public string GetSelectedText(bool bTopLevel, bool ReturnAsHTML)
  2384. // {
  2385. // if (this.m_WBWebBrowser2 == null)
  2386. // return string.Empty;
  2387. // IHTMLDocument2 doc2 = null;
  2388. // IHTMLSelectionObject selobj = null;
  2389. // IHTMLTxtRange range = null;
  2390. // if (bTopLevel)
  2391. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2392. // else
  2393. // doc2 = this.GetActiveDocument();
  2394. // if ((doc2 == null) || (doc2.selection == null))
  2395. // return string.Empty;
  2396. // selobj = doc2.selection as IHTMLSelectionObject;
  2397. // if (selobj == null)
  2398. // return string.Empty;
  2399. // if ((selobj.EventType == "none") || (selobj.EventType == "control"))
  2400. // return string.Empty;
  2401. // range = selobj.createRange() as IHTMLTxtRange;
  2402. // if (range == null)
  2403. // return string.Empty;
  2404. // if (ReturnAsHTML)
  2405. // return range.htmlText;
  2406. // else
  2407. // return range.text;
  2408. // }
  2409. // public IHTMLElement ElementFromPoint(bool bTopLevel, int X, int Y)
  2410. // {
  2411. // if (this.m_WBWebBrowser2 == null)
  2412. // return null;
  2413. // IHTMLDocument2 doc2 = null;
  2414. // if (bTopLevel)
  2415. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2416. // else
  2417. // doc2 = this.GetActiveDocument();
  2418. // if (doc2 != null)
  2419. // return doc2.elementFromPoint(X, Y);
  2420. // else
  2421. // return null;
  2422. // }
  2423. // //execCommand(true, "insertimage", false, null)
  2424. // public bool ExecCommand(bool bTopLevel, string CmdId, bool showUI, object CmdValue)
  2425. // {
  2426. // if (this.m_WBWebBrowser2 == null)
  2427. // return false;
  2428. // IHTMLDocument2 doc2 = null;
  2429. // if (bTopLevel)
  2430. // doc2 = this.m_WBWebBrowser2.Document as IHTMLDocument2;
  2431. // else
  2432. // doc2 = this.GetActiveDocument();
  2433. // if (doc2 != null)
  2434. // return doc2.execCommand(CmdId, showUI, CmdValue);
  2435. // else
  2436. // return false;
  2437. // }
  2438. // //OleCommandExec(true, MSHTML_COMMAND_IDS.IDM_HTMLEDITMODE, true);
  2439. // //OleCommandExec(true, MSHTML_COMMAND_IDS.IDM_COMPOSESETTINGS, "0,0,0,2,0.0.0,255.255.255,Arial");
  2440. // public bool OleCommandExec(bool bTopLevel, MSHTML_COMMAND_IDS CmdID, object pvaIn)
  2441. // {
  2442. // if (this.m_WBWebBrowser2 == null)
  2443. // return false;
  2444. // IOleCommandTarget m_Doc2OleCommandTraget = null;
  2445. // IntPtr m_Guid_MSHTML = m_NullPointer;
  2446. // bool bret = false;
  2447. // IntPtr pIn = IntPtr.Zero;
  2448. // try
  2449. // {
  2450. // byte[] guidbytes = Iid_Clsids.Guid_MSHTML.ToByteArray();
  2451. // m_Guid_MSHTML = Marshal.AllocCoTaskMem((int)(guidbytes.Length * 2));
  2452. // Marshal.Copy(guidbytes, 0, m_Guid_MSHTML, guidbytes.Length);
  2453. // IHTMLDocument2 doc2 = null;
  2454. // if (bTopLevel)
  2455. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2456. // else
  2457. // doc2 = this.GetActiveDocument();
  2458. // if (doc2 == null)
  2459. // return false;
  2460. // m_Doc2OleCommandTraget = doc2 as IOleCommandTarget;
  2461. // if (m_Doc2OleCommandTraget == null)
  2462. // return false;
  2463. // pIn = Marshal.AllocCoTaskMem((int)1024);
  2464. // Marshal.GetNativeVariantForObject(pvaIn, pIn);
  2465. // bret = (m_Doc2OleCommandTraget.Exec(m_Guid_MSHTML, (uint)CmdID,
  2466. // (uint)OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT,
  2467. // pIn, m_NullPointer) == Hresults.S_OK) ? true : false;
  2468. // Marshal.FreeCoTaskMem(m_Guid_MSHTML);
  2469. // m_Guid_MSHTML = m_NullPointer;
  2470. // Marshal.FreeCoTaskMem(pIn);
  2471. // pIn = IntPtr.Zero;
  2472. // }
  2473. // finally
  2474. // {
  2475. // if (m_Guid_MSHTML != m_NullPointer)
  2476. // Marshal.FreeCoTaskMem(m_Guid_MSHTML);
  2477. // if (pIn != IntPtr.Zero)
  2478. // Marshal.FreeCoTaskMem(pIn);
  2479. // }
  2480. // return bret;
  2481. // }
  2482. // public bool OleCommandExec(bool bTopLevel, MSHTML_COMMAND_IDS CmdID)
  2483. // {
  2484. // if (this.m_WBWebBrowser2 == null)
  2485. // return false;
  2486. // IOleCommandTarget m_Doc2OleCommandTraget = null;
  2487. // IntPtr m_Guid_MSHTML = m_NullPointer;
  2488. // bool bret = false;
  2489. // try
  2490. // {
  2491. // byte[] guidbytes = Iid_Clsids.Guid_MSHTML.ToByteArray();
  2492. // m_Guid_MSHTML = Marshal.AllocCoTaskMem((int)(guidbytes.Length * 2));
  2493. // Marshal.Copy(guidbytes, 0, m_Guid_MSHTML, guidbytes.Length);
  2494. // IHTMLDocument2 doc2 = null;
  2495. // if (bTopLevel)
  2496. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2497. // else
  2498. // doc2 = this.GetActiveDocument();
  2499. // if (doc2 == null)
  2500. // return false;
  2501. // m_Doc2OleCommandTraget = doc2 as IOleCommandTarget;
  2502. // if (m_Doc2OleCommandTraget == null)
  2503. // return false;
  2504. // bret = (m_Doc2OleCommandTraget.Exec(m_Guid_MSHTML, (uint)CmdID,
  2505. // (uint)OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT,
  2506. // m_NullPointer, m_NullPointer) == Hresults.S_OK) ? true : false;
  2507. // Marshal.FreeCoTaskMem(m_Guid_MSHTML);
  2508. // m_Guid_MSHTML = m_NullPointer;
  2509. // }
  2510. // finally
  2511. // {
  2512. // if (m_Guid_MSHTML != m_NullPointer)
  2513. // Marshal.FreeCoTaskMem(m_Guid_MSHTML);
  2514. // }
  2515. // return bret;
  2516. // }
  2517. // public object QueryCommandValue(string CmdID)
  2518. // {
  2519. // if (this.m_WBWebBrowser2 == null)
  2520. // return null;
  2521. // IHTMLDocument2 doc2 = null;
  2522. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2523. // if (doc2 != null)
  2524. // return doc2.queryCommandValue(CmdID);
  2525. // return null;
  2526. // }
  2527. // public bool QueryCommandState(bool bTopLevel, string CmdId)
  2528. // {
  2529. // if (this.m_WBWebBrowser2 == null)
  2530. // return false;
  2531. // IHTMLDocument2 doc2 = null;
  2532. // if (bTopLevel)
  2533. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2534. // else
  2535. // doc2 = this.GetActiveDocument();
  2536. // if (doc2 != null)
  2537. // return doc2.queryCommandState(CmdId);
  2538. // else
  2539. // return false;
  2540. // }
  2541. // public IHTMLElement GetElementByID(bool bTopLevel, string idval)
  2542. // {
  2543. // if (this.m_WBWebBrowser2 == null)
  2544. // return null;
  2545. // IHTMLDocument3 doc3 = null;
  2546. // if (bTopLevel)
  2547. // doc3 = m_WBWebBrowser2.Document as IHTMLDocument3;
  2548. // else
  2549. // doc3 = GetActiveDocument() as IHTMLDocument3;
  2550. // if (doc3 != null)
  2551. // return doc3.getElementById(idval);
  2552. // else
  2553. // return null;
  2554. // }
  2555. // public IHTMLElementCollection GetElementsByName(bool bTopLevel, string elemname)
  2556. // {
  2557. // if (this.m_WBWebBrowser2 == null)
  2558. // return null;
  2559. // IHTMLDocument3 doc3 = null;
  2560. // if (bTopLevel)
  2561. // doc3 = m_WBWebBrowser2.Document as IHTMLDocument3;
  2562. // else
  2563. // doc3 = GetActiveDocument() as IHTMLDocument3;
  2564. // if (doc3 != null)
  2565. // return doc3.getElementsByName(elemname) as IHTMLElementCollection;
  2566. // else
  2567. // return null;
  2568. // }
  2569. // public IHTMLElementCollection GetElementsByTagName(bool bTopLevel, String tagname)
  2570. // {
  2571. // if (this.m_WBWebBrowser2 == null)
  2572. // return null;
  2573. // IHTMLDocument3 doc3 = null;
  2574. // if (bTopLevel)
  2575. // doc3 = m_WBWebBrowser2.Document as IHTMLDocument3;
  2576. // else
  2577. // doc3 = GetActiveDocument() as IHTMLDocument3;
  2578. // if (doc3 != null)
  2579. // return doc3.getElementsByTagName(tagname) as IHTMLElementCollection;
  2580. // else
  2581. // return null;
  2582. // }
  2583. // //m_CurWB.execScript(true, "javascript:__doPostBack('NY,412800013,09/15/2007,10010,18,C,165,0','false')", "JavaScript");
  2584. // public object execScript(bool bTopLevel, string ScriptName, string ScriptLanguage)
  2585. // {
  2586. // if ((this.m_WBWebBrowser2 == null) || (ScriptName.Length == 0))
  2587. // return null;
  2588. // IHTMLDocument2 doc2 = null;
  2589. // IHTMLWindow2 win2 = null;
  2590. // if (bTopLevel)
  2591. // doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  2592. // else
  2593. // doc2 = this.GetActiveDocument();
  2594. // if (doc2 == null)
  2595. // return null;
  2596. // win2 = doc2.parentWindow as IHTMLWindow2;
  2597. // if (win2 == null) //change from !=
  2598. // return null;
  2599. // //MSDN, JScript is MSHTML default
  2600. // if (ScriptLanguage.Length == 0)
  2601. // ScriptLanguage = "JavaScript";
  2602. // return win2.execScript(ScriptName, ScriptLanguage);
  2603. // }
  2604. // /// <summary>
  2605. // /// Invokes a script within the HTML page
  2606. // /// </summary>
  2607. // /// <param name="ScriptName"></param>
  2608. // /// <param name="Data"></param>
  2609. // /// <returns></returns>
  2610. // public object InvokeScript(string ScriptName, object[] Data)
  2611. // {
  2612. // object oRet = null;
  2613. // if (m_WBWebBrowser2 == null)
  2614. // return oRet;
  2615. // IHTMLDocument doc = m_WBWebBrowser2.Document as IHTMLDocument;
  2616. // if (doc == null)
  2617. // return oRet;
  2618. // object oScript = doc.Script;
  2619. // if (oScript == null)
  2620. // return oRet;
  2621. // //Invoke script
  2622. // if (Data == null)
  2623. // Data = new object[] { };
  2624. // //http://msdn2.microsoft.com/en-us/library/system.reflection.bindingflags.aspx
  2625. // oRet = oScript.GetType().InvokeMember(ScriptName,
  2626. // System.Reflection.BindingFlags.InvokeMethod, null, oScript, Data);
  2627. // return oRet;
  2628. // }
  2629. // public object InvokeScript(IWebBrowser2 wb, string ScriptName, object[] Data)
  2630. // {
  2631. // object oRet = null;
  2632. // if (wb == null)
  2633. // return oRet;
  2634. // IHTMLDocument doc = wb.Document as IHTMLDocument;
  2635. // if (doc == null)
  2636. // return oRet;
  2637. // object oScript = doc.Script;
  2638. // if (oScript == null)
  2639. // return oRet;
  2640. // //Invoke script
  2641. // if (Data == null)
  2642. // Data = new object[] { };
  2643. // //http://msdn2.microsoft.com/en-us/library/system.reflection.bindingflags.aspx
  2644. // oRet = oScript.GetType().InvokeMember(ScriptName,
  2645. // System.Reflection.BindingFlags.InvokeMethod, null, oScript, Data);
  2646. // return oRet;
  2647. // }
  2648. // //Frames related
  2649. // public bool IsFrameset()
  2650. // {
  2651. // return IsWBFrameset(this.m_WBWebBrowser2);
  2652. // }
  2653. // public int FramesCount()
  2654. // {
  2655. // return WBFramesCount(this.m_WBWebBrowser2);
  2656. // }
  2657. // public List<IWebBrowser2> GetFrames()
  2658. // {
  2659. // return GetFrames(this.m_WBWebBrowser2);
  2660. // }
  2661. // private List<IWebBrowser2> GetFrames(IWebBrowser2 pWB)
  2662. // {
  2663. // List<IWebBrowser2> wbFrames = new List<IWebBrowser2>();
  2664. // IOleContainer oc = pWB.Document as IOleContainer;
  2665. // if (oc == null)
  2666. // return null;
  2667. // //get the OLE enumerator for the embedded objects
  2668. // int hr = 0;
  2669. // IEnumUnknown eu;
  2670. // hr = oc.EnumObjects(tagOLECONTF.OLECONTF_EMBEDDINGS, out eu); //EU ALLOC
  2671. // Marshal.ReleaseComObject(oc); //OC FREE
  2672. // Marshal.ThrowExceptionForHR(hr);
  2673. // object pUnk = null;
  2674. // int fetched = 0;
  2675. // const int MAX_FETCH_COUNT = 1;
  2676. // //get the first ebmedded object
  2677. // hr = eu.Next(MAX_FETCH_COUNT, out pUnk, out fetched); //PUNK ALLOC
  2678. // Marshal.ThrowExceptionForHR(hr);
  2679. // //while sucessfully get a new embedding, continue
  2680. // for (int i = 0; Hresults.S_OK == hr; i++)
  2681. // {
  2682. // //QI pUnk for the IWebBrowser2 interface
  2683. // IWebBrowser2 brow = pUnk as IWebBrowser2;
  2684. // if (brow != null)
  2685. // {
  2686. // if (IsWBFrameset(brow))
  2687. // {
  2688. // List<IWebBrowser2> frames = GetFrames(brow);
  2689. // if ((frames != null) && (frames.Count > 0))
  2690. // {
  2691. // wbFrames.AddRange(frames);
  2692. // frames.Clear();
  2693. // }
  2694. // }
  2695. // else
  2696. // {
  2697. // wbFrames.Add(brow);
  2698. // //Marshal.ReleaseComObject(brow); //PUNK FREE
  2699. // }
  2700. // } //if(brow != null)
  2701. // //get the next ebmedded object
  2702. // hr = eu.Next(MAX_FETCH_COUNT, out pUnk, out fetched); //PUNK ALLOC
  2703. // Marshal.ThrowExceptionForHR(hr);
  2704. // } //for(int i = 0; HRESULTS.S_OK == hr; i++)
  2705. // Marshal.ReleaseComObject(eu); //EU FREE
  2706. // return wbFrames;
  2707. // }
  2708. // private bool IsWBFrameset(IWebBrowser2 pWB)
  2709. // {
  2710. // bool bRet = true;
  2711. // IHTMLDocument2 doc2 = pWB.Document as IHTMLDocument2;
  2712. // if (doc2 == null)
  2713. // return bRet;
  2714. // IHTMLElement elem = doc2.body;
  2715. // if (elem != null)
  2716. // {
  2717. // //QI for IHtmlBodyElement
  2718. // IntPtr pbody = Marshal.GetIUnknownForObject(elem);
  2719. // IntPtr pbodyelem = IntPtr.Zero;
  2720. // if (pbody != IntPtr.Zero)
  2721. // {
  2722. // int iRet = Marshal.QueryInterface(pbody,
  2723. // ref Iid_Clsids.IID_IHTMLBodyElement, out pbodyelem);
  2724. // Marshal.Release(pbody);
  2725. // if (pbodyelem != IntPtr.Zero)
  2726. // {
  2727. // bRet = false;
  2728. // Marshal.Release(pbodyelem);
  2729. // }
  2730. // }
  2731. // //IHTMLBodyElement bodyelem = (IHTMLBodyElement)elem;
  2732. // //MSDN, If no body present then this is a frameset
  2733. // //if (bodyelem != null)
  2734. // // bRet = false;
  2735. // }
  2736. // return bRet;
  2737. // }
  2738. // private bool IsWBFrameset(IHTMLDocument2 doc2)
  2739. // {
  2740. // bool bRet = true;
  2741. // if (doc2 == null)
  2742. // return bRet;
  2743. // IHTMLElement elem = doc2.body;
  2744. // if (elem != null)
  2745. // {
  2746. // //QI for IHtmlBodyElement
  2747. // IntPtr pbody = Marshal.GetIUnknownForObject(elem);
  2748. // IntPtr pbodyelem = IntPtr.Zero;
  2749. // if (pbody != IntPtr.Zero)
  2750. // {
  2751. // int iRet = Marshal.QueryInterface(pbody,
  2752. // ref Iid_Clsids.IID_IHTMLBodyElement, out pbodyelem);
  2753. // Marshal.Release(pbody);
  2754. // if (pbodyelem != IntPtr.Zero)
  2755. // {
  2756. // bRet = false;
  2757. // Marshal.Release(pbodyelem);
  2758. // }
  2759. // }
  2760. // }
  2761. // return bRet;
  2762. // }
  2763. // private int WBFramesCount(IWebBrowser2 pWB)
  2764. // {
  2765. // int lRet = 0;
  2766. // IOleContainer oc = pWB.Document as IOleContainer;
  2767. // if (oc == null)
  2768. // return lRet;
  2769. // //get the OLE enumerator for the embedded objects
  2770. // int hr = 0;
  2771. // IEnumUnknown eu;
  2772. // hr = oc.EnumObjects(tagOLECONTF.OLECONTF_EMBEDDINGS, out eu); //EU ALLOC
  2773. // Marshal.ReleaseComObject(oc); //OC FREE
  2774. // Marshal.ThrowExceptionForHR(hr);
  2775. // object pUnk = null;
  2776. // int fetched = 0;
  2777. // const int MAX_FETCH_COUNT = 1;
  2778. // //get the first ebmedded object
  2779. // hr = eu.Next(MAX_FETCH_COUNT, out pUnk, out fetched); //PUNK ALLOC
  2780. // Marshal.ThrowExceptionForHR(hr);
  2781. // //while sucessfully get a new embedding, continue
  2782. // for (int i = 0; Hresults.S_OK == hr; i++)
  2783. // {
  2784. // //QI pUnk for the IWebBrowser2 interface
  2785. // IWebBrowser2 brow = pUnk as IWebBrowser2;
  2786. // if (brow != null)
  2787. // {
  2788. // if (IsWBFrameset(brow))
  2789. // lRet += WBFramesCount(brow);
  2790. // else
  2791. // {
  2792. // lRet++;
  2793. // Marshal.ReleaseComObject(brow); //PUNK FREE
  2794. // }
  2795. // } //if(brow != null)
  2796. // //get the next ebmedded object
  2797. // hr = eu.Next(MAX_FETCH_COUNT, out pUnk, out fetched); //PUNK ALLOC
  2798. // Marshal.ThrowExceptionForHR(hr);
  2799. // } //for(int i = 0; HRESULTS.S_OK == hr; i++)
  2800. // Marshal.ReleaseComObject(eu); //EU FREE
  2801. // return lRet;
  2802. // }
  2803. // //Internet shortcuts
  2804. // public bool CreateInternetShortCut(string LocalFileName, string URL, string Description, string IconFileName, int IconIndex)
  2805. // {
  2806. // bool bRet = false;
  2807. // Type iURL = Type.GetTypeFromCLSID(Iid_Clsids.CLSID_InternetShortcut);
  2808. // //#if UNICODE
  2809. // IUniformResourceLocatorW pURL = System.Activator.CreateInstance(iURL) as IUniformResourceLocatorW;
  2810. // //#else
  2811. // // IUniformResourceLocatorA pURL = (IUniformResourceLocatorA)System.Activator.CreateInstance(iURL);
  2812. // //#endif
  2813. // if (pURL == null)
  2814. // return bRet;
  2815. // IPersistFile pPF = pURL as IPersistFile;
  2816. // if (pPF == null)
  2817. // return bRet;
  2818. // //#if UNICODE
  2819. // IShellLinkW pSL = pURL as IShellLinkW;
  2820. // //#else
  2821. // // IShellLinkA pSL = (IShellLinkA)pURL;
  2822. // //#endif
  2823. // if (pSL == null)
  2824. // return bRet;
  2825. // int hr = pURL.SetURL(URL, (uint)0);
  2826. // if (hr != Hresults.S_OK)
  2827. // return bRet;
  2828. // if (Description.Length > 0)
  2829. // pSL.SetDescription(Description);
  2830. // if (IconFileName.Length > 0)
  2831. // pSL.SetIconLocation(IconFileName, IconIndex);
  2832. // //Save
  2833. // pPF.Save(LocalFileName, true);
  2834. // return bRet;
  2835. // }
  2836. // public string ResolveInternetShortCut(string InternetShortCutPath)
  2837. // {
  2838. // string URL = string.Empty;
  2839. // Type iURL = Type.GetTypeFromCLSID(Iid_Clsids.CLSID_InternetShortcut);
  2840. // //#if UNICODE
  2841. // IUniformResourceLocatorW pURL = System.Activator.CreateInstance(iURL) as IUniformResourceLocatorW;
  2842. // //#else
  2843. // // IUniformResourceLocatorA pURL = (IUniformResourceLocatorA)System.Activator.CreateInstance(iURL);
  2844. // //#endif
  2845. // if (pURL == null)
  2846. // return URL;
  2847. // IPersistFile pPF = pURL as IPersistFile;
  2848. // if (pPF == null)
  2849. // return URL;
  2850. // pPF.Load(InternetShortCutPath, (int)WinApis.STGM_READ);
  2851. // IntPtr str = IntPtr.Zero;
  2852. // int hr = pURL.GetURL(out str);
  2853. // if (str == m_NullPointer)
  2854. // return URL;
  2855. // //IntPtr hIcon, hInst;
  2856. // //Icon ico, clone;
  2857. // //StringBuilder sb = new StringBuilder(MAX_PATH);
  2858. // //int nIconIdx;
  2859. // ////#if UNICODE
  2860. // // IShellLinkW pSL = (IShellLinkW)pURL;
  2861. // ////#else
  2862. // //// IShellLinkA pSL = (IShellLinkA)pURL;
  2863. // ////#endif
  2864. // //pSL.GetIconLocation(sb, sb.Capacity, out nIconIdx);
  2865. // ////Icon Path: sb.ToString();
  2866. // ////Icon index: nIconIdx
  2867. // //hInst = Marshal.GetHINSTANCE(this.GetType().Module);
  2868. // //hIcon = WinApis.ExtractIcon(hInst, sb.ToString(), nIconIdx);
  2869. // //if (hIcon == IntPtr.Zero)
  2870. // // return null;
  2871. // //// Return a cloned Icon, because we have to free the original ourselves.
  2872. // //ico = Icon.FromHandle(hIcon);
  2873. // //clone = (Icon)ico.Clone();
  2874. // //ico.Dispose();
  2875. // //WinApis.DestroyIcon(hIcon);
  2876. // ////clone: Url icon
  2877. // //#if UNICODE
  2878. // URL = Marshal.PtrToStringUni(str);
  2879. // //#else
  2880. // // URL = Marshal.PtrToStringAnsi(str);
  2881. // //#endif
  2882. // Marshal.FreeCoTaskMem(str);
  2883. // return URL;
  2884. // }
  2885. // public bool ClearHistory()
  2886. // {
  2887. // int hr = Hresults.S_OK;
  2888. // Type urlhistorystg2type = Type.GetTypeFromCLSID(Iid_Clsids.CLSID_CUrlHistory, true);
  2889. // IUrlHistoryStg2 urlhistorystg2 = System.Activator.CreateInstance(urlhistorystg2type) as IUrlHistoryStg2;
  2890. // if (urlhistorystg2 == null)
  2891. // return false;
  2892. // hr = urlhistorystg2.ClearHistory();
  2893. // return (hr == Hresults.S_OK) ? true : false;
  2894. // }
  2895. // /// <summary>
  2896. // /// Call this only once, as other calls are ignored by library.
  2897. // /// Allow or disallow HTML dialogs launched using showModelessDialog()
  2898. // /// and showModalDialog() methods using CBT Window Hook.
  2899. // /// Default, allow = true
  2900. // /// </summary>
  2901. // /// <param name="bAllow"></param>
  2902. // public void SetAllowHTMLDialogs(bool bAllow)
  2903. // {
  2904. // if (this.DesignMode)
  2905. // return;
  2906. // if (bAllow)
  2907. // {
  2908. // if (m_CBT.IsHooked) //Unhook
  2909. // {
  2910. // m_CBT.IsHooked = false;
  2911. // m_csexwbCOMLib.SetupWindowsHook(
  2912. // CSEXWBDLMANLib.WINDOWSHOOK_TYPES.WHT_CBT,
  2913. // (int)this.Handle.ToInt32(),
  2914. // m_CBT.IsHooked,
  2915. // ref m_CBT.UniqueMsgID);
  2916. // }
  2917. // }
  2918. // else
  2919. // {
  2920. // if (!m_CBT.IsHooked) //Hook
  2921. // {
  2922. // m_CBT.IsHooked = true;
  2923. // m_csexwbCOMLib.SetupWindowsHook(
  2924. // CSEXWBDLMANLib.WINDOWSHOOK_TYPES.WHT_CBT,
  2925. // (int)this.Handle.ToInt32(),
  2926. // m_CBT.IsHooked,
  2927. // ref m_CBT.UniqueMsgID);
  2928. // }
  2929. // }
  2930. // }
  2931. // public bool GetAllowHTMLDialogs()
  2932. // {
  2933. // return (m_CBT.IsHooked) ? false : true;
  2934. // }
  2935. // /// <summary>
  2936. // /// Attempts to convert UNICODE chars to their numeric values
  2937. // /// to be used with LoadHtmlIntoBrowser methods. sample
  2938. // /// "&#1581;&#1602;&#1608;&#1602; &#1575;&#1604;&#1591;&#1576;&#1593;"
  2939. // /// </summary>
  2940. // /// <param name="html"></param>
  2941. // /// <returns></returns>
  2942. // public string UnicodeToHTMLEncoding(string html)
  2943. // {
  2944. // StringBuilder sb = new StringBuilder(html.Length * 7);
  2945. // int i = 0;
  2946. // const string pre = "&#";
  2947. // const string post = ";";
  2948. // foreach (char c in html)
  2949. // {
  2950. // i = (int)c;
  2951. // if (i > 127) //Unicode
  2952. // {
  2953. // sb.Append(pre);
  2954. // sb.Append(i.ToString()); //Use numeric value 1581
  2955. // sb.Append(post);
  2956. // }
  2957. // else
  2958. // sb.Append(c);
  2959. // }
  2960. // if (sb.Length > 0)
  2961. // return sb.ToString();
  2962. // else
  2963. // return string.Empty;
  2964. // }
  2965. // /// <summary>
  2966. // /// Clears session cookies
  2967. // /// </summary>
  2968. // /// <returns></returns>
  2969. // public bool ClearSessionCookies()
  2970. // {
  2971. // return WinApis.InternetSetOption(IntPtr.Zero,
  2972. // InternetSetOptionFlags.INTERNET_OPTION_END_BROWSER_SESSION,
  2973. // IntPtr.Zero, 0);
  2974. // }
  2975. // /// <summary>
  2976. // /// Adds a given url to the Internet explorer trusted zone
  2977. // /// </summary>
  2978. // /// <param name="url">format: http://msdn.microsoft.com</param>
  2979. // /// <returns></returns>
  2980. // public int AddUrlToTrustedZone(string url)
  2981. // {
  2982. // //Create a new InternetSecurityManager
  2983. // Type ismtype = Type.GetTypeFromCLSID(Iid_Clsids.CLSID_InternetSecurityManager, true);
  2984. // //Using Activator inplace of CoCreateInstance, returns IUnknown
  2985. // IInternetSecurityManager ismhelper = System.Activator.CreateInstance(ismtype) as IInternetSecurityManager;
  2986. // if (ismhelper == null)
  2987. // return Hresults.S_FALSE;
  2988. // return ismhelper.SetZoneMapping(
  2989. // (int)(tagURLZONE.URLZONE_ESC_FLAG | tagURLZONE.URLZONE_TRUSTED),
  2990. // url, (int)SZM_FLAGS.SZM_CREATE);
  2991. // }
  2992. // /// <summary>
  2993. // /// Attempts to retreive UserAgent from
  2994. // /// IHTMLWindow2.navigator object
  2995. // /// </summary>
  2996. // /// <returns></returns>
  2997. // public string UserAgnet()
  2998. // {
  2999. // if (this.m_WBWebBrowser2 == null)
  3000. // return string.Empty;
  3001. // IHTMLDocument2 doc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  3002. // IHTMLWindow2 win2 = null;
  3003. // IOmNavigator navigator = null;
  3004. // if (doc2 == null)
  3005. // return string.Empty;
  3006. // win2 = doc2.parentWindow as IHTMLWindow2;
  3007. // if (win2 == null)
  3008. // return string.Empty;
  3009. // navigator = win2.navigator;
  3010. // if (navigator == null)
  3011. // return string.Empty;
  3012. // return navigator.userAgent;
  3013. // }
  3014. // /// <summary>
  3015. // /// Attempts to set the optical zoom value. Example:
  3016. // /// <code>
  3017. // /// m_CurWB.SetOpticalZoomValue(300);
  3018. // /// </code>
  3019. // /// </summary>
  3020. // /// <param name="zoomvalue">Must be in the range 10 - 1000 percent</param>
  3021. // /// <returns>One of Hresults.S_OK or S_FALSE</returns>
  3022. // public int SetOpticalZoomValue(int zoomvalue)
  3023. // {
  3024. // if ((zoomvalue < 10) || (zoomvalue > 1000) || (m_WBOleCommandTarget == null))
  3025. // return Hresults.S_FALSE;
  3026. // IntPtr pRet = m_NullPointer;
  3027. // int hr = Hresults.S_FALSE;
  3028. // try
  3029. // {
  3030. // pRet = Marshal.AllocCoTaskMem((int)1024);
  3031. // Marshal.GetNativeVariantForObject((int)zoomvalue, pRet);
  3032. // hr = m_WBOleCommandTarget.Exec(m_NullPointer,
  3033. // (uint)OLECMDID.OLECMDID_OPTICAL_ZOOM,
  3034. // (uint)OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,
  3035. // pRet, m_NullPointer);
  3036. // Marshal.FreeCoTaskMem(pRet);
  3037. // pRet = m_NullPointer;
  3038. // }
  3039. // catch (Exception)
  3040. // {
  3041. // }
  3042. // finally
  3043. // {
  3044. // if (pRet != m_NullPointer)
  3045. // Marshal.FreeCoTaskMem(pRet);
  3046. // }
  3047. // return hr;
  3048. // }
  3049. // /// <summary>
  3050. // /// Attempts to retreive optical zoom range. Example:
  3051. // /// <code>
  3052. // /// int[] range = m_CurWB.GetOpticalZoomRange();
  3053. // /// AllForms.m_frmLog.AppendToLog(
  3054. // /// "Min==>" + range[0].ToString() +
  3055. // /// "\r\nMax==>" + range[1].ToString());
  3056. // /// </code>
  3057. // /// </summary>
  3058. // /// <returns>Return int array index 0 = Min and index 1 = Max</returns>
  3059. // public int[] GetOpticalZoomRange()
  3060. // {
  3061. // object retVal = new object(); //VT_NULL
  3062. // IntPtr pRet = m_NullPointer;
  3063. // int iZoom = (int)0;
  3064. // int[] range = { 0, 0 };
  3065. // if (m_WBOleCommandTarget == null)
  3066. // return range;
  3067. // try
  3068. // {
  3069. // pRet = Marshal.AllocCoTaskMem((int)1024);
  3070. // Marshal.GetNativeVariantForObject(retVal, pRet);
  3071. // //NULL to specify the standard group
  3072. // int hr = m_WBOleCommandTarget.Exec(m_NullPointer,
  3073. // (uint)OLECMDID.OLECMDID_OPTICAL_GETZOOMRANGE,
  3074. // (uint)OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,
  3075. // m_NullPointer, pRet);
  3076. // retVal = Marshal.GetObjectForNativeVariant(pRet);
  3077. // Marshal.FreeCoTaskMem(pRet);
  3078. // pRet = m_NullPointer;
  3079. // if (Type.GetTypeCode(retVal.GetType()) == TypeCode.Int32)
  3080. // iZoom = int.Parse(retVal.ToString());
  3081. // }
  3082. // catch (Exception)
  3083. // {
  3084. // }
  3085. // finally
  3086. // {
  3087. // if (pRet != m_NullPointer)
  3088. // Marshal.FreeCoTaskMem(pRet);
  3089. // }
  3090. // if (iZoom > 0)
  3091. // {
  3092. // range[0] = WinApis.LoWord(iZoom); //Min
  3093. // range[1] = WinApis.HiWord(iZoom); //Max
  3094. // }
  3095. // return range;
  3096. // }
  3097. // #endregion
  3098. // #region Interfaces Implementation
  3099. // #region IOleClientSite Members
  3100. // int IOleClientSite.SaveObject()
  3101. // {
  3102. // return Hresults.E_NOTIMPL;
  3103. // //throw new Exception("The method or operation is not implemented.");
  3104. // }
  3105. // int IOleClientSite.GetMoniker(uint dwAssign, uint dwWhichMoniker, out IMoniker ppmk)
  3106. // {
  3107. // ppmk = null;
  3108. // return Hresults.E_NOTIMPL;
  3109. // }
  3110. // int IOleClientSite.GetContainer(out IOleContainer ppContainer)
  3111. // {
  3112. // ppContainer = null;
  3113. // return Hresults.E_NOTIMPL;
  3114. // }
  3115. // int IOleClientSite.ShowObject()
  3116. // {
  3117. // return Hresults.S_OK;
  3118. // }
  3119. // int IOleClientSite.OnShowWindow(bool fShow)
  3120. // {
  3121. // return Hresults.E_NOTIMPL;
  3122. // }
  3123. // int IOleClientSite.RequestNewObjectLayout()
  3124. // {
  3125. // return Hresults.E_NOTIMPL;
  3126. // }
  3127. // #endregion
  3128. // #region IOleInPlaceSite Members
  3129. // int IOleInPlaceSite.GetWindow(ref IntPtr phwnd)
  3130. // {
  3131. // phwnd = IntPtr.Zero;
  3132. // if (this.IsHandleCreated)
  3133. // {
  3134. // phwnd = this.Handle;
  3135. // return Hresults.S_OK;
  3136. // }
  3137. // else
  3138. // return Hresults.E_FAIL;
  3139. // }
  3140. // int IOleInPlaceSite.ContextSensitiveHelp(bool fEnterMode)
  3141. // {
  3142. // return Hresults.E_NOTIMPL;
  3143. // }
  3144. // int IOleInPlaceSite.CanInPlaceActivate()
  3145. // {
  3146. // return Hresults.S_OK;
  3147. // }
  3148. // int IOleInPlaceSite.OnInPlaceActivate()
  3149. // {
  3150. // return Hresults.S_OK;
  3151. // }
  3152. // int IOleInPlaceSite.OnUIActivate()
  3153. // {
  3154. // if (!this.DesignMode)
  3155. // m_ieServerWindow = new IEServerWindow(this);
  3156. // return Hresults.S_OK;
  3157. // }
  3158. // int IOleInPlaceSite.GetWindowContext(out IOleInPlaceFrame ppFrame, out IOleInPlaceUIWindow ppDoc, ref tagRECT lprcPosRect, ref tagRECT lprcClipRect, ref tagOIFI lpFrameInfo)
  3159. // {
  3160. // ppDoc = null;
  3161. // ppFrame = null;
  3162. // return Hresults.E_NOTIMPL;
  3163. // }
  3164. // int IOleInPlaceSite.Scroll(ref tagSIZE scrollExtent)
  3165. // {
  3166. // return Hresults.E_NOTIMPL;
  3167. // }
  3168. // int IOleInPlaceSite.OnUIDeactivate(bool fUndoable)
  3169. // {
  3170. // if ((!this.DesignMode) && (m_ieServerWindow != null))
  3171. // {
  3172. // m_ieServerWindow.Release();
  3173. // m_ieServerWindow = null;
  3174. // }
  3175. // return Hresults.E_NOTIMPL;
  3176. // }
  3177. // int IOleInPlaceSite.OnInPlaceDeactivate()
  3178. // {
  3179. // return Hresults.E_NOTIMPL;
  3180. // }
  3181. // int IOleInPlaceSite.DiscardUndoState()
  3182. // {
  3183. // return Hresults.E_NOTIMPL;
  3184. // }
  3185. // int IOleInPlaceSite.DeactivateAndUndo()
  3186. // {
  3187. // return Hresults.E_NOTIMPL;
  3188. // }
  3189. // int IOleInPlaceSite.OnPosRectChange(ref tagRECT lprcPosRect)
  3190. // {
  3191. // return Hresults.E_NOTIMPL;
  3192. // }
  3193. // #endregion
  3194. // #region IDocHostShowUI Members
  3195. // //Can not catch VBScript MsgBox and InputBox functions and javascript prompt
  3196. // //This does catch alert and confirm (VBScript as well)
  3197. // int IDocHostShowUI.ShowMessage(IntPtr hwnd, string lpstrText,
  3198. // string lpstrCaption, uint dwType,
  3199. // string lpstrHelpFile, uint dwHelpContext, ref int lpResult)
  3200. // {
  3201. // //Initially
  3202. // //lpResult is set 0 //S_OK
  3203. // //Host did not display its UI. MSHTML displays its message box.
  3204. // int iRet = Hresults.S_FALSE;
  3205. // //raise event?
  3206. // if (WBDocHostShowUIShowMessage != null)
  3207. // {
  3208. // //Refer to http://msdn2.microsoft.com/en-us/library/ms645505.aspx
  3209. // //for possible values of dwType
  3210. // DocHostShowUIShowMessageEvent.SetParameters(hwnd, lpstrText, lpstrCaption, dwType, lpstrHelpFile, dwHelpContext, lpResult);
  3211. // WBDocHostShowUIShowMessage(this, DocHostShowUIShowMessageEvent);
  3212. // if (DocHostShowUIShowMessageEvent.handled)
  3213. // {
  3214. // //Host displayed its user interface (UI). MSHTML does not display its message box.
  3215. // iRet = Hresults.S_OK;
  3216. // lpResult = DocHostShowUIShowMessageEvent.result;
  3217. // }
  3218. // DocHostShowUIShowMessageEvent.Reset();
  3219. // }
  3220. // ////uncomment to use
  3221. // //else
  3222. // //{
  3223. // // lpResult = (int)WinApis.MessageBox(hwnd, lpstrText, lpstrCaption, dwType);
  3224. // // iRet = Hresults.S_OK;
  3225. // //}
  3226. // return iRet;
  3227. // }
  3228. // int IDocHostShowUI.ShowHelp(IntPtr hwnd, string pszHelpFile, uint uCommand, uint dwData, tagPOINT ptMouse, object pDispatchObjectHit)
  3229. // {
  3230. // return Hresults.E_NOTIMPL;
  3231. // }
  3232. // #endregion
  3233. // #region IDocHostUIHandler Members
  3234. // int IDocHostUIHandler.ShowContextMenu(uint dwID, ref tagPOINT pt, object pcmdtReserved, object pdispReserved)
  3235. // {
  3236. // // return Hresults.S_OK; //Do not display context menu
  3237. // // return Hresults.S_FALSE; //Default IE ctxmnu
  3238. // Point outpt = new Point(pt.X, pt.Y);
  3239. // //Raise event
  3240. // if (WBContextMenu != null)
  3241. // {
  3242. // ContextMenuEvent.SetParameters((WB_CONTEXTMENU_TYPES)dwID, outpt, pdispReserved);
  3243. // WBContextMenu(this, ContextMenuEvent);
  3244. // if (ContextMenuEvent.displaydefault == false) //Handled or don't display
  3245. // return Hresults.S_OK;
  3246. // ContextMenuEvent.dispctxmenuobj = null;
  3247. // }
  3248. // return Hresults.S_FALSE;
  3249. // }
  3250. // int IDocHostUIHandler.GetHostInfo(ref DOCHOSTUIINFO info)
  3251. // {
  3252. // //Default, selecttext+no3dborder+flatscrollbars+themes(xp look)
  3253. // //Size has be set
  3254. // info.cbSize = (uint)Marshal.SizeOf(info);
  3255. // info.dwDoubleClick = (uint)m_DocHostUiDbClkFlag;
  3256. // info.dwFlags = (uint)m_DocHostUiFlags;
  3257. // //info.pchHostCss = "BODY {background-color:#ffcccc}";
  3258. // return Hresults.S_OK;
  3259. // }
  3260. // int IDocHostUIHandler.ShowUI(int dwID, IOleInPlaceActiveObject activeObject, IOleCommandTarget commandTarget, IOleInPlaceFrame frame, IOleInPlaceUIWindow doc)
  3261. // {
  3262. // //activeObject.GetWindow should return Internet Explorer_Server hwnd
  3263. // if (activeObject != null)
  3264. // activeObject.GetWindow(ref m_hWBServerHandle);
  3265. // return Hresults.S_OK;
  3266. // }
  3267. // int IDocHostUIHandler.HideUI()
  3268. // {
  3269. // return Hresults.S_OK;
  3270. // }
  3271. // int IDocHostUIHandler.UpdateUI()
  3272. // {
  3273. // return Hresults.S_OK;
  3274. // }
  3275. // int IDocHostUIHandler.EnableModeless(bool fEnable)
  3276. // {
  3277. // return Hresults.E_NOTIMPL;
  3278. // }
  3279. // int IDocHostUIHandler.OnDocWindowActivate(bool fActivate)
  3280. // {
  3281. // return Hresults.E_NOTIMPL;
  3282. // }
  3283. // int IDocHostUIHandler.OnFrameWindowActivate(bool fActivate)
  3284. // {
  3285. // return Hresults.E_NOTIMPL;
  3286. // }
  3287. // int IDocHostUIHandler.ResizeBorder(ref tagRECT rect, IOleInPlaceUIWindow doc, bool fFrameWindow)
  3288. // {
  3289. // return Hresults.E_NOTIMPL;
  3290. // }
  3291. // int IDocHostUIHandler.TranslateAccelerator(ref tagMSG msg, ref Guid group, uint nCmdID)
  3292. // {
  3293. // // return Hresults.S_OK; //Cancel
  3294. // // return Hresults.S_FALSE; //IE default action
  3295. // Keys nVirtExtKey = Keys.None; // (int)0;
  3296. // if ((ModifierKeys & Keys.Control) != 0)
  3297. // nVirtExtKey = Keys.ControlKey; //CONTROL 17
  3298. // if ((ModifierKeys & Keys.ShiftKey) != 0)
  3299. // nVirtExtKey = Keys.ShiftKey; //SHIFT 16
  3300. // if ((ModifierKeys & Keys.Menu) != 0)
  3301. // nVirtExtKey = Keys.Menu; //ALT 18
  3302. // Keys keyCode = (Keys)msg.wParam;
  3303. // if ((msg.message == WindowsMessages.WM_KEYDOWN) && (WBKeyDown != null))
  3304. // {
  3305. // WBKeyDownEvent.SetParameters(keyCode, nVirtExtKey);
  3306. // WBKeyDown(this, WBKeyDownEvent);
  3307. // if (WBKeyDownEvent.handled)
  3308. // return Hresults.S_OK;
  3309. // }
  3310. // if ((msg.message == WindowsMessages.WM_KEYUP) && (WBKeyUp != null))
  3311. // {
  3312. // WBKeyUpEvent.SetParameters(keyCode, nVirtExtKey);
  3313. // WBKeyUp(this, WBKeyUpEvent);
  3314. // if (WBKeyUpEvent.handled == true)
  3315. // return Hresults.S_OK;
  3316. // }
  3317. // //IE default action
  3318. // return Hresults.S_FALSE;
  3319. // }
  3320. // int IDocHostUIHandler.GetOptionKeyPath(out string pbstrKey, uint dw)
  3321. // {
  3322. // //pbstrKey[0] = null;
  3323. // pbstrKey = null;
  3324. // if (WBGetOptionKeyPath != null)
  3325. // {
  3326. // GetOptionKeyPathEvent.SetParameters();
  3327. // WBGetOptionKeyPath(this, GetOptionKeyPathEvent);
  3328. // if (GetOptionKeyPathEvent.handled == true)
  3329. // {
  3330. // pbstrKey = GetOptionKeyPathEvent.keypath;
  3331. // GetOptionKeyPathEvent.SetParameters();
  3332. // return Hresults.S_OK;
  3333. // }
  3334. // }
  3335. // return Hresults.E_NOTIMPL;
  3336. // }
  3337. // int IDocHostUIHandler.GetDropTarget(IfacesEnumsStructsClasses.IDropTarget pDropTarget, out IfacesEnumsStructsClasses.IDropTarget ppDropTarget)
  3338. // {
  3339. // int hret = Hresults.E_NOTIMPL;
  3340. // ppDropTarget = null;
  3341. // if (m_bUseInternalDragDrop)
  3342. // {
  3343. // ppDropTarget = this as IfacesEnumsStructsClasses.IDropTarget;
  3344. // if (ppDropTarget != null)
  3345. // hret = Hresults.S_OK;
  3346. // }
  3347. // return hret;
  3348. // }
  3349. // int IDocHostUIHandler.GetExternal(out object ppDispatch)
  3350. // {
  3351. // if (m_WinExternal != null)
  3352. // {
  3353. // ppDispatch = m_WinExternal;
  3354. // return Hresults.S_OK;
  3355. // }
  3356. // else
  3357. // {
  3358. // ppDispatch = null;
  3359. // return Hresults.E_NOTIMPL;
  3360. // }
  3361. // }
  3362. // int IDocHostUIHandler.TranslateUrl(uint dwTranslate, string strURLIn, out string pstrURLOut)
  3363. // {
  3364. // pstrURLOut = null;
  3365. // return Hresults.E_NOTIMPL;
  3366. // }
  3367. // int IDocHostUIHandler.FilterDataObject(System.Runtime.InteropServices.ComTypes.IDataObject pDO, out System.Runtime.InteropServices.ComTypes.IDataObject ppDORet)
  3368. // {
  3369. // ppDORet = null;
  3370. // return Hresults.E_NOTIMPL;
  3371. // }
  3372. // #endregion
  3373. // #region DWebBrowserEvents2 Members
  3374. // [System.Runtime.InteropServices.DispId(250)]
  3375. // void DWebBrowserEvents2.BeforeNavigate2(object pDisp, ref object URL, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
  3376. // {
  3377. // //For catching Refresh and coordinating events
  3378. // m_nPageCounter++;
  3379. // bool bTopFrame = m_WBWebBrowser2.Equals(pDisp);
  3380. // if (bTopFrame)
  3381. // m_DocDone = false;
  3382. // //Want events
  3383. // if (m_WantHTMLEvents)
  3384. // {
  3385. // //Top level
  3386. // if (bTopFrame)
  3387. // {
  3388. // if (m_WantHtmlDocumentEvents)
  3389. // m_TopLevelHtmlDocumentevents.DisconnectHtmlEvents();
  3390. // if (m_WantHtmlWindowEvents)
  3391. // m_TopLevelHtmlWindowEvents.DisconnectHtmlEvents();
  3392. // }
  3393. // else //Secondary pages (frameset)
  3394. // {
  3395. // //Want events and we don't bother with navigation within framesets
  3396. // if ((m_WantHtmlDocumentEvents) && (m_nPageCounter > 1))
  3397. // DisconnectHtmlDocumentEvents();
  3398. // if ((m_WantHtmlWindowEvents) && (m_nPageCounter > 1))
  3399. // DisconnectHtmlWindowEvnets();
  3400. // }
  3401. // }
  3402. // if (BeforeNavigate2 != null)
  3403. // {
  3404. // //Reserved, must be set to null
  3405. // Flags = null;
  3406. // BeforeNavigate2Event.SetParameters(pDisp, URL.ToString(), TargetFrameName, PostData, Headers, bTopFrame);
  3407. // BeforeNavigate2(this, BeforeNavigate2Event);
  3408. // Cancel = BeforeNavigate2Event.Cancel;
  3409. // BeforeNavigate2Event.Reset();
  3410. // }
  3411. // }
  3412. // [DispId(268)]
  3413. // void DWebBrowserEvents2.ClientToHostWindow(ref int CX, ref int CY)
  3414. // {
  3415. // if (ClientToHostWindow != null)
  3416. // {
  3417. // ClientToHostWindowEvent.SetParameters(CX, CY);
  3418. // ClientToHostWindow(this, ClientToHostWindowEvent);
  3419. // if (ClientToHostWindowEvent.handled == true)
  3420. // {
  3421. // CX = ClientToHostWindowEvent.cx;
  3422. // CY = ClientToHostWindowEvent.cy;
  3423. // }
  3424. // }
  3425. // }
  3426. // [DispId(105)]
  3427. // void DWebBrowserEvents2.CommandStateChange(int Command, bool Enable)
  3428. // {
  3429. // if (Command == (int)CommandStateChangeConstants.CSC_NAVIGATEBACK)
  3430. // m_bCanGoBack = Enable;
  3431. // else if (Command == (int)CommandStateChangeConstants.CSC_NAVIGATEFORWARD)
  3432. // m_bCanGoForward = Enable;
  3433. // if (CommandStateChange != null)
  3434. // {
  3435. // CommandStateChangeEvent.SetParameters(Command, Enable);
  3436. // CommandStateChange(this, CommandStateChangeEvent);
  3437. // }
  3438. // }
  3439. // [DispId(104)]
  3440. // void DWebBrowserEvents2.DocumentComplete(object pDisp, ref object URL)
  3441. // {
  3442. // m_nPageCounter--;
  3443. // bool bTopFrame = m_WBWebBrowser2.Equals(pDisp);
  3444. // if (bTopFrame)
  3445. // m_DocDone = true;
  3446. // if (m_WantHTMLEvents)
  3447. // {
  3448. // IHTMLDocument2 doc2 = null;
  3449. // if (bTopFrame)
  3450. // {
  3451. // doc2 = (IHTMLDocument2)m_WBWebBrowser2.Document;
  3452. // if (m_WantHtmlDocumentEvents)
  3453. // m_TopLevelHtmlDocumentevents.ConnectToHtmlEvents(doc2);
  3454. // if (m_WantHtmlWindowEvents)
  3455. // {
  3456. // IHTMLWindow2 win2 = (IHTMLWindow2)doc2.parentWindow;
  3457. // m_TopLevelHtmlWindowEvents.ConnectToHtmlEvents(win2);
  3458. // }
  3459. // }
  3460. // else
  3461. // {
  3462. // //Nav within frameset, don't bother
  3463. // //Uses the same document object
  3464. // if (m_nPageCounter > 0)
  3465. // {
  3466. // IWebBrowser2 wb2 = (IWebBrowser2)pDisp;
  3467. // doc2 = (IHTMLDocument2)wb2.Document;
  3468. // if (m_WantHtmlDocumentEvents)
  3469. // {
  3470. // cHTMLDocumentEvents doceve = null;
  3471. // ActivateSecondaryHtmlDocumentEvents(ref doceve);
  3472. // if (doceve != null)
  3473. // doceve.ConnectToHtmlEvents(doc2);
  3474. // }
  3475. // if (m_WantHtmlWindowEvents)
  3476. // {
  3477. // cHTMLWindowEvents wineve = null;
  3478. // IHTMLWindow2 win2 = (IHTMLWindow2)doc2.parentWindow;
  3479. // ActivateSecondaryHtmlWindowEvents(ref wineve);
  3480. // if (wineve != null)
  3481. // wineve.ConnectToHtmlEvents(win2);
  3482. // }
  3483. // }
  3484. // }
  3485. // }
  3486. // if (m_bSendSourceOnDocumentCompleteWBEx) //want source?
  3487. // {
  3488. // if (DocumentCompleteEX != null)
  3489. // {
  3490. // //Declare vars
  3491. // string strSource = "";
  3492. // IWebBrowser2 thisBrowser = null;
  3493. // //Reset event object parameters
  3494. // DocumentCompleteExEvent.SetParameters(pDisp, URL.ToString(), bTopFrame, strSource);
  3495. // //Attempt to get a IWebBrowser2 iface from disp
  3496. // //throws an exception if not an html doc
  3497. // thisBrowser = (IWebBrowser2)pDisp;
  3498. // if (thisBrowser == null)
  3499. // return;
  3500. // strSource = GetSource(thisBrowser);
  3501. // DocumentCompleteExEvent.docsource = strSource;
  3502. // DocumentCompleteEX(this, DocumentCompleteExEvent);
  3503. // DocumentCompleteExEvent.Reset();
  3504. // }
  3505. // }
  3506. // else if (DocumentComplete != null) //Do not want source
  3507. // {
  3508. // DocumentCompleteEvent.SetParameters(pDisp, URL.ToString(), bTopFrame);
  3509. // DocumentComplete(this, DocumentCompleteEvent);
  3510. // DocumentCompleteEvent.Reset();
  3511. // }
  3512. // //Go to MSDN library(archive) + stop + refresh
  3513. // //without this, refresh end hits somewhere in between documentCompletes
  3514. // if ((m_bIsRefresh) && (m_nPageCounter == 0) && (m_nObjCounter == 0))
  3515. // {
  3516. // m_bIsRefresh = false;
  3517. // if (RefreshEnd != null)
  3518. // RefreshEnd(this);
  3519. // }
  3520. // }
  3521. // [DispId(106)]
  3522. // void DWebBrowserEvents2.DownloadBegin()
  3523. // {
  3524. // m_nObjCounter++;
  3525. // if (DownloadBegin != null)
  3526. // DownloadBegin(this);
  3527. // if (m_nPageCounter == 0)
  3528. // {
  3529. // m_bIsRefresh = true;
  3530. // if (RefreshBegin != null)
  3531. // RefreshBegin(this);
  3532. // }
  3533. // }
  3534. // [DispId(259)]
  3535. // void DWebBrowserEvents2.DownloadComplete()
  3536. // {
  3537. // m_nObjCounter--;
  3538. // if (DownloadComplete != null)
  3539. // DownloadComplete(this);
  3540. // if ((m_bIsRefresh) && (m_nPageCounter == 0) && (m_nObjCounter == 0))
  3541. // {
  3542. // m_bIsRefresh = false;
  3543. // if (RefreshEnd != null)
  3544. // RefreshEnd(this);
  3545. // }
  3546. // }
  3547. // [DispId(270)]
  3548. // void DWebBrowserEvents2.FileDownload(bool ActiveDocument, ref bool Cancel)
  3549. // {
  3550. // if ((FileDownload != null) && (m_UseInternalDownloadManager == false))
  3551. // {
  3552. // FileDownloadEvent.Cancel = false;
  3553. // FileDownloadEvent.ActiveDocument = ActiveDocument;
  3554. // FileDownload(this, FileDownloadEvent);
  3555. // Cancel = FileDownloadEvent.Cancel;
  3556. // }
  3557. // }
  3558. // [DispId(252)]
  3559. // void DWebBrowserEvents2.NavigateComplete2(object pDisp, ref object URL)
  3560. // {
  3561. // if (NavigateComplete2 != null)
  3562. // {
  3563. // NavigateComplete2Event.SetParameters(pDisp, URL.ToString());
  3564. // NavigateComplete2(this, NavigateComplete2Event);
  3565. // NavigateComplete2Event.Reset();
  3566. // }
  3567. // }
  3568. // [DispId(271)]
  3569. // void DWebBrowserEvents2.NavigateError(object pDisp, ref object URL, ref object Frame, ref object StatusCode, ref bool Cancel)
  3570. // {
  3571. // if (NavigateError != null)
  3572. // {
  3573. // if (Frame != null) //Thank you Arjan
  3574. // NavigateErrorEvent.SetParameters(pDisp, URL.ToString(), Frame.ToString(), (int)StatusCode);
  3575. // else
  3576. // NavigateErrorEvent.SetParameters(pDisp, URL.ToString(), string.Empty, (int)StatusCode);
  3577. // NavigateError(this, NavigateErrorEvent);
  3578. // Cancel = NavigateErrorEvent.Cancel;
  3579. // NavigateErrorEvent.Reset();
  3580. // }
  3581. // }
  3582. // [DispId(251)]
  3583. // void DWebBrowserEvents2.NewWindow2(ref object ppDisp, ref bool Cancel)
  3584. // {
  3585. // if (NewWindow2 != null)
  3586. // {
  3587. // NewWindow2Event.SetParameters();
  3588. // NewWindow2(this, NewWindow2Event);
  3589. // Cancel = NewWindow2Event.Cancel;
  3590. // if ((!Cancel) && (NewWindow2Event.browser != null))
  3591. // {
  3592. // ppDisp = NewWindow2Event.browser;
  3593. // }
  3594. // NewWindow2Event.SetParameters();
  3595. // }
  3596. // }
  3597. // [DispId(0x111)]
  3598. // void DWebBrowserEvents2.NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl)
  3599. // {
  3600. // if (NewWindow3 != null)
  3601. // {
  3602. // NewWindow3Event.SetParameters(bstrUrlContext, bstrUrl, (NWMF)dwFlags);
  3603. // NewWindow3(this, NewWindow3Event);
  3604. // Cancel = NewWindow3Event.Cancel;
  3605. // if ((!Cancel) && (NewWindow3Event.browser != null))
  3606. // {
  3607. // ppDisp = NewWindow3Event.browser;
  3608. // }
  3609. // NewWindow3Event.Reset();
  3610. // }
  3611. // }
  3612. // #region Unused Events
  3613. // void DWebBrowserEvents2.OnFullScreen(bool FullScreen)
  3614. // {
  3615. // //
  3616. // }
  3617. // void DWebBrowserEvents2.OnMenuBar(bool MenuBar)
  3618. // {
  3619. // //
  3620. // }
  3621. // void DWebBrowserEvents2.OnQuit()
  3622. // {
  3623. // //
  3624. // }
  3625. // void DWebBrowserEvents2.OnStatusBar(bool StatusBar)
  3626. // {
  3627. // //
  3628. // }
  3629. // void DWebBrowserEvents2.OnTheaterMode(bool TheaterMode)
  3630. // {
  3631. // //
  3632. // }
  3633. // void DWebBrowserEvents2.OnToolBar(bool ToolBar)
  3634. // {
  3635. // //
  3636. // }
  3637. // void DWebBrowserEvents2.OnVisible(bool Visible)
  3638. // {
  3639. // //
  3640. // }
  3641. // #endregion
  3642. // [DispId(227)]
  3643. // void DWebBrowserEvents2.UpdatePageStatus(object pDisp, ref object nPage, ref object fDone)
  3644. // {
  3645. // if (UpdatePageStatus != null)
  3646. // {
  3647. // if (nPage != null)
  3648. // UpdatePageStatusEvent.SetParameters(pDisp, (int)nPage, (bool)fDone);
  3649. // else
  3650. // UpdatePageStatusEvent.SetParameters(pDisp, 0, (bool)fDone);
  3651. // UpdatePageStatus(this, UpdatePageStatusEvent);
  3652. // UpdatePageStatusEvent.Reset();
  3653. // }
  3654. // }
  3655. // [DispId(225)]
  3656. // void DWebBrowserEvents2.PrintTemplateInstantiation(object pDisp)
  3657. // {
  3658. // if (PrintTemplateInstantiation != null)
  3659. // {
  3660. // PrintTemplateInstantiationEvent.browser = pDisp;
  3661. // PrintTemplateInstantiation(this, PrintTemplateInstantiationEvent);
  3662. // PrintTemplateInstantiationEvent.browser = null;
  3663. // }
  3664. // }
  3665. // [DispId(226)]
  3666. // void DWebBrowserEvents2.PrintTemplateTeardown(object pDisp)
  3667. // {
  3668. // if (PrintTemplateTeardown != null)
  3669. // {
  3670. // PrintTemplateTeardownEvent.browser = pDisp;
  3671. // PrintTemplateTeardown(this, PrintTemplateTeardownEvent);
  3672. // PrintTemplateTeardownEvent.browser = null;
  3673. // }
  3674. // }
  3675. // [DispId(272)]
  3676. // void DWebBrowserEvents2.PrivacyImpactedStateChange(bool bImpacted)
  3677. // {
  3678. // if (PrivacyImpactedStateChange != null)
  3679. // {
  3680. // PrivacyImpactedStateChangeEvent.impacted = bImpacted;
  3681. // PrivacyImpactedStateChange(this, PrivacyImpactedStateChangeEvent);
  3682. // }
  3683. // }
  3684. // [DispId(108)]
  3685. // void DWebBrowserEvents2.ProgressChange(int Progress, int ProgressMax)
  3686. // {
  3687. // if (ProgressChange != null)
  3688. // {
  3689. // ProgressChangeEvent.SetParameters(Progress, ProgressMax);
  3690. // ProgressChange(this, ProgressChangeEvent);
  3691. // }
  3692. // }
  3693. // [DispId(112)]
  3694. // void DWebBrowserEvents2.PropertyChange(string szProperty)
  3695. // {
  3696. // if (PropertyChange != null)
  3697. // {
  3698. // PropertyChangeEvent.szproperty = szProperty;
  3699. // PropertyChange(this, PropertyChangeEvent);
  3700. // PropertyChangeEvent.szproperty = string.Empty;
  3701. // }
  3702. // }
  3703. // [DispId(269)]
  3704. // void DWebBrowserEvents2.SetSecureLockIcon(int SecureLockIcon)
  3705. // {
  3706. // m_SecureLockIcon = SecureLockIcon;
  3707. // if (SetSecureLockIcon != null)
  3708. // {
  3709. // SetSecureLockIconEvent.SetParameters(SecureLockIcon);
  3710. // SetSecureLockIcon(this, SetSecureLockIconEvent);
  3711. // }
  3712. // }
  3713. // [DispId(102)]
  3714. // void DWebBrowserEvents2.StatusTextChange(string Text)
  3715. // {
  3716. // if (StatusTextChange != null)
  3717. // {
  3718. // StatusTextChangeEvent.text = Text;
  3719. // StatusTextChange(this, StatusTextChangeEvent);
  3720. // StatusTextChangeEvent.text = string.Empty;
  3721. // }
  3722. // }
  3723. // [DispId(113)]
  3724. // void DWebBrowserEvents2.TitleChange(string Text)
  3725. // {
  3726. // if (TitleChange != null)
  3727. // {
  3728. // TitleChangeEvent.title = Text;
  3729. // TitleChange(this, TitleChangeEvent);
  3730. // TitleChangeEvent.title = "";
  3731. // }
  3732. // }
  3733. // //DWebBrowserEvents2.WindowClosing is never called?
  3734. // //So here is the workaround
  3735. // [DispId(263)]
  3736. // public void DISPATCH_WindowClosing(bool IsChildWindow, ref bool Cancel)
  3737. // {
  3738. // if (WindowClosing != null)
  3739. // {
  3740. // WindowClosingEvent.SetParameters(IsChildWindow);
  3741. // WindowClosing(this, WindowClosingEvent);
  3742. // Cancel = WindowClosingEvent.Cancel;
  3743. // }
  3744. // }
  3745. // [DispId(263)]
  3746. // void DWebBrowserEvents2.WindowClosing(bool IsChildWindow, ref bool Cancel)
  3747. // {
  3748. // }
  3749. // [DispId(267)]
  3750. // void DWebBrowserEvents2.WindowSetHeight(int Height)
  3751. // {
  3752. // if (WindowSetHeight != null)
  3753. // {
  3754. // WindowSetHeightEvent.height = Height;
  3755. // WindowSetHeight(this, WindowSetHeightEvent);
  3756. // }
  3757. // }
  3758. // [DispId(264)]
  3759. // void DWebBrowserEvents2.WindowSetLeft(int Left)
  3760. // {
  3761. // if (WindowSetLeft != null)
  3762. // {
  3763. // WindowSetLeftEvent.left = Left;
  3764. // WindowSetLeft(this, WindowSetLeftEvent);
  3765. // }
  3766. // }
  3767. // [DispId(262)]
  3768. // void DWebBrowserEvents2.WindowSetResizable(bool Resizable)
  3769. // {
  3770. // if (WindowSetResizable != null)
  3771. // {
  3772. // WindowSetResizableEvent.resizable = Resizable;
  3773. // WindowSetResizable(this, WindowSetResizableEvent);
  3774. // }
  3775. // }
  3776. // [DispId(265)]
  3777. // void DWebBrowserEvents2.WindowSetTop(int Top)
  3778. // {
  3779. // if (WindowSetTop != null)
  3780. // {
  3781. // WindowSetTopEvent.top = Top;
  3782. // WindowSetTop(this, WindowSetTopEvent);
  3783. // }
  3784. // }
  3785. // [DispId(266)]
  3786. // void DWebBrowserEvents2.WindowSetWidth(int Width)
  3787. // {
  3788. // if (WindowSetWidth != null)
  3789. // {
  3790. // WindowSetWidthEvent.width = Width;
  3791. // WindowSetWidth(this, WindowSetWidthEvent);
  3792. // }
  3793. // }
  3794. // #endregion
  3795. // #region IDropTarget Members
  3796. // int IfacesEnumsStructsClasses.IDropTarget.DragEnter(System.Runtime.InteropServices.ComTypes.IDataObject pDataObj, uint grfKeyState, tagPOINT pt, ref uint pdwEffect)
  3797. // {
  3798. // if (WBDragEnter != null)
  3799. // {
  3800. // DataObject obja = null;
  3801. // if (pDataObj != null)
  3802. // obja = new DataObject(pDataObj);
  3803. // Point ppt = new Point(pt.X, pt.Y);
  3804. // WBDragEnterEvent.SetParameters(obja, grfKeyState, ppt, pdwEffect);
  3805. // WBDragEnter(this, WBDragEnterEvent);
  3806. // if (WBDragEnterEvent.handled == true)
  3807. // pdwEffect = (uint)WBDragEnterEvent.dropeffect;
  3808. // }
  3809. // return Hresults.S_OK;
  3810. // }
  3811. // int IfacesEnumsStructsClasses.IDropTarget.DragOver(uint grfKeyState, tagPOINT pt, ref uint pdwEffect)
  3812. // {
  3813. // if (WBDragOver != null)
  3814. // {
  3815. // Point ppt = new Point(pt.X, pt.Y);
  3816. // WBDragOverEvent.SetParameters(grfKeyState, ppt, pdwEffect);
  3817. // WBDragOver(this, WBDragOverEvent);
  3818. // if (WBDragOverEvent.handled == true)
  3819. // pdwEffect = (uint)WBDragOverEvent.dropeffect;
  3820. // }
  3821. // return Hresults.S_OK;
  3822. // }
  3823. // int IfacesEnumsStructsClasses.IDropTarget.DragLeave()
  3824. // {
  3825. // if (WBDragLeave != null)
  3826. // WBDragLeave(this);
  3827. // return Hresults.S_OK;
  3828. // }
  3829. // int IfacesEnumsStructsClasses.IDropTarget.Drop(System.Runtime.InteropServices.ComTypes.IDataObject pDataObj, uint grfKeyState, tagPOINT pt, ref uint pdwEffect)
  3830. // {
  3831. // if (pDataObj == null)
  3832. // return Hresults.S_OK;
  3833. // if (WBDragDrop != null)
  3834. // {
  3835. // DataObject obja = new DataObject(pDataObj);
  3836. // Point ppt = new Point(pt.X, pt.Y);
  3837. // WBDropEvent.SetParameters(grfKeyState, ppt, obja, pdwEffect);
  3838. // WBDragDrop(this, WBDropEvent);
  3839. // if (WBDropEvent.handled == true)
  3840. // pdwEffect = (uint)WBDropEvent.dropeffect;
  3841. // }
  3842. // return Hresults.S_OK;
  3843. // }
  3844. // #endregion
  3845. // #region IOleCommandTarget Members
  3846. // int IOleCommandTarget.QueryStatus(IntPtr pguidCmdGroup, uint cCmds, ref tagOLECMD prgCmds, IntPtr pCmdText)
  3847. // {
  3848. // //int hr = Hresults.S_OK;
  3849. // //if (m_WBOleCommandTarget != null)
  3850. // //{
  3851. // // try
  3852. // // {
  3853. // // hr = m_WBOleCommandTarget.QueryStatus(pguidCmdGroup,
  3854. // // cCmds, ref prgCmds, ref pCmdText);
  3855. // // }
  3856. // // finally
  3857. // // {
  3858. // // }
  3859. // //}
  3860. // //else
  3861. // // hr = OLECMDERR_E_NOTSUPPORTED;
  3862. // return Hresults.OLECMDERR_E_NOTSUPPORTED;
  3863. // }
  3864. // //pguidCmdGroup must be declared as IntPtr not a GUID, as pguidCmdGroup may be null, hence generating execption
  3865. // int IOleCommandTarget.Exec(IntPtr pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
  3866. // {
  3867. // int hr = Hresults.S_OK;
  3868. // if ((pguidCmdGroup != m_NullPointer) &&
  3869. // (Type.GetTypeCode(pguidCmdGroup.GetType()) != TypeCode.Empty))
  3870. // {
  3871. // try
  3872. // {
  3873. // ////Allocate mem for a GUID
  3874. // //byte[] bguid = Guid.Empty.ToByteArray();
  3875. // ////Copy incoming into byte array
  3876. // //Marshal.Copy(pguidCmdGroup, bguid, 0, bguid.Length);
  3877. // ////back to GUID
  3878. // //Guid guid = new Guid(bguid);
  3879. // Guid guid = (Guid)Marshal.PtrToStructure(pguidCmdGroup, typeof(Guid));
  3880. // //Only group we are interested
  3881. // if (guid == Iid_Clsids.CLSID_CGID_DocHostCommandHandler)
  3882. // {
  3883. // //http://support.microsoft.com/kb/261003
  3884. // if (nCmdID == (int)OLECMDID.OLECMDID_SHOWSCRIPTERROR)
  3885. // {
  3886. // //Default Continue running scripts
  3887. // if (pvaOut != IntPtr.Zero)
  3888. // Marshal.GetNativeVariantForObject(true, pvaOut);
  3889. // //false -> stop running scripts
  3890. // if (ScriptError != null)
  3891. // {
  3892. // ScriptErrorEvent.SetParameters();
  3893. // try
  3894. // {
  3895. // IHTMLDocument2 doc2 = (IHTMLDocument2)Marshal.GetObjectForNativeVariant(pvaIn);
  3896. // IHTMLWindow2 win2 = (IHTMLWindow2)doc2.parentWindow;
  3897. // IHTMLEventObj2 eveobj = (IHTMLEventObj2)win2.eventobj;
  3898. // if (eveobj != null)
  3899. // {
  3900. // ScriptErrorEvent.lineNumber = (int)eveobj.getAttribute("errorLine", 0);
  3901. // ScriptErrorEvent.characterNumber = (int)eveobj.getAttribute("errorCharacter", 0);
  3902. // ScriptErrorEvent.errorCode = (int)eveobj.getAttribute("errorCode", 0);
  3903. // ScriptErrorEvent.errorMessage = eveobj.getAttribute("errorMessage", 0) as string;
  3904. // ScriptErrorEvent.url = eveobj.getAttribute("errorUrl", 0) as string;
  3905. // }
  3906. // }
  3907. // catch (Exception)
  3908. // {
  3909. // }
  3910. // ScriptError(this, ScriptErrorEvent);
  3911. // if (pvaOut != IntPtr.Zero)
  3912. // Marshal.GetNativeVariantForObject(ScriptErrorEvent.continueScripts, pvaOut);
  3913. // ScriptErrorEvent.SetParameters();
  3914. // }
  3915. // }
  3916. // else
  3917. // hr = Hresults.OLECMDERR_E_NOTSUPPORTED;
  3918. // }
  3919. // else
  3920. // hr = Hresults.OLECMDERR_E_UNKNOWNGROUP;
  3921. // }
  3922. // catch (Exception)
  3923. // {
  3924. // hr = Hresults.OLECMDERR_E_UNKNOWNGROUP;
  3925. // }
  3926. // }
  3927. // else
  3928. // hr = Hresults.OLECMDERR_E_UNKNOWNGROUP;
  3929. // return hr;
  3930. // }
  3931. // #endregion
  3932. // #region IServiceProvider Members
  3933. // int IfacesEnumsStructsClasses.IServiceProvider.QueryService(ref Guid guidService, ref Guid riid, out IntPtr ppvObject)
  3934. // {
  3935. // int hr = Hresults.E_NOINTERFACE;
  3936. // ppvObject = m_NullPointer;
  3937. // if ((guidService == Iid_Clsids.SID_SDownloadManager) &&
  3938. // (riid == Iid_Clsids.IID_IDownloadManager) &&
  3939. // (m_UseInternalDownloadManager))
  3940. // {
  3941. // AddThisIEServerHwndToComLib();
  3942. // //QI for IDownloadManager interface from our COM object
  3943. // ppvObject = Marshal.GetComInterfaceForObject(m_csexwbCOMLib, typeof(IDownloadManager));
  3944. // hr = Hresults.S_OK;
  3945. // }
  3946. // else if (riid == Iid_Clsids.IID_IHttpSecurity)
  3947. // {
  3948. // ppvObject = Marshal.GetComInterfaceForObject(this, typeof(IHttpSecurity));
  3949. // hr = Hresults.S_OK;
  3950. // //Ulternative
  3951. // //try
  3952. // //{
  3953. // // m_pUnk = IntPtr.Zero;
  3954. // // m_pTargetIface = IntPtr.Zero;
  3955. // // m_pUnk = Marshal.GetIUnknownForObject(this);
  3956. // // Marshal.QueryInterface(m_pUnk, ref IID_IHttpSecurity, out m_pTargetIface);
  3957. // // Marshal.Release(m_pUnk);
  3958. // // ppvObject = m_pTargetIface;
  3959. // // hr = Hresults.S_OK;
  3960. // //}
  3961. // //catch (Exception)
  3962. // //{
  3963. // //}
  3964. // }
  3965. // else if (riid == Iid_Clsids.IID_INewWindowManager) //xpsp2
  3966. // {
  3967. // ppvObject = Marshal.GetComInterfaceForObject(this, typeof(INewWindowManager));
  3968. // hr = Hresults.S_OK;
  3969. // }
  3970. // else if (riid == Iid_Clsids.IID_IWindowForBindingUI)
  3971. // {
  3972. // ppvObject = Marshal.GetComInterfaceForObject(this, typeof(IWindowForBindingUI));
  3973. // hr = Hresults.S_OK;
  3974. // }
  3975. // else if (guidService == Iid_Clsids.IID_IInternetSecurityManager)
  3976. // {
  3977. // ppvObject = Marshal.GetComInterfaceForObject(this, typeof(IInternetSecurityManager));
  3978. // hr = Hresults.S_OK;
  3979. // }
  3980. // else if ((guidService == Iid_Clsids.IID_IAuthenticate)
  3981. // && (riid == Iid_Clsids.IID_IAuthenticate))
  3982. // {
  3983. // ppvObject = Marshal.GetComInterfaceForObject(this, typeof(IAuthenticate));
  3984. // hr = Hresults.S_OK;
  3985. // }
  3986. // else if (riid == Iid_Clsids.IID_IProtectFocus) //IE7 + Vista
  3987. // {
  3988. // ppvObject = Marshal.GetComInterfaceForObject(this, typeof(IProtectFocus));
  3989. // hr = Hresults.S_OK;
  3990. // }
  3991. // else if ((riid == Iid_Clsids.IID_IHTMLOMWindowServices) &&
  3992. // (guidService == Iid_Clsids.IID_IHTMLOMWindowServices))
  3993. // {
  3994. // ppvObject = Marshal.GetComInterfaceForObject(this, typeof(IHTMLOMWindowServices));
  3995. // hr = Hresults.S_OK;
  3996. // }
  3997. // else if ((riid == Iid_Clsids.IID_IHTMLEditHost) &&
  3998. // (guidService == Iid_Clsids.SID_SHTMLEditHost))
  3999. // {
  4000. // ppvObject = Marshal.GetComInterfaceForObject(this, typeof(IHTMLEditHost));
  4001. // hr = Hresults.S_OK;
  4002. // }
  4003. // return hr;
  4004. // }
  4005. // #endregion
  4006. // #region IHttpSecurity Members
  4007. // int IHttpSecurity.GetWindow(ref Guid rguidReason, ref IntPtr phwnd)
  4008. // {
  4009. // phwnd = m_NullPointer;
  4010. // int hr = Hresults.S_FALSE;
  4011. // if ((rguidReason == Iid_Clsids.IID_IHttpSecurity) || (rguidReason == Iid_Clsids.IID_IAuthenticate))
  4012. // {
  4013. // if (!WBIEServerHandle().Equals(m_NullPointer))
  4014. // {
  4015. // phwnd = m_hWBServerHandle;
  4016. // hr = Hresults.S_OK;
  4017. // }
  4018. // }
  4019. // return hr;
  4020. // }
  4021. // int IHttpSecurity.OnSecurityProblem(uint dwProblem)
  4022. // {
  4023. // /*
  4024. // IHttpSecurity, Some possible problems:
  4025. // ERROR_INTERNET_SEC_CERT_DATE_INVALID
  4026. // ERROR_INTERNET_SEC_CERT_CN_INVALID
  4027. // ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR
  4028. // ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR
  4029. // ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION
  4030. // ERROR_INTERNET_INVALID_CA
  4031. // ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED
  4032. // Implementing this method incorrectly can compromise the security of your application.
  4033. // Returning a value of RPC_E_RETRY can potentially leave users of your application exposed
  4034. // to unwanted information disclosure. RPC_E_RETRY should only be returned when
  4035. // the application is running on a known trusted server or after you have verified
  4036. // information from the user.
  4037. // Returning S_FALSE implies that you have asked the user
  4038. // if it is ok to proceed despite a security problem and they have agreed
  4039. // return RPC_E_RETRY;
  4040. // Retries using Registry options and most likely fails again
  4041. // */
  4042. // //dwProblem one of WinInetErrors enum (need more additions)
  4043. // int iRet = Hresults.S_FALSE;
  4044. // int hr = iRet;
  4045. // if (WBSecurityProblem != null)
  4046. // {
  4047. // SecurityProblemEvent.SetParameters((int)dwProblem);
  4048. // WBSecurityProblem(this, SecurityProblemEvent);
  4049. // //Possible ret values
  4050. // if (SecurityProblemEvent.handled == true)
  4051. // {
  4052. // iRet = SecurityProblemEvent.retvalue;
  4053. // if ((iRet == Hresults.RPC_E_RETRY) || (iRet == Hresults.S_FALSE) || (iRet == Hresults.E_ABORT))
  4054. // hr = iRet;
  4055. // }
  4056. // }
  4057. // //Possible return values;
  4058. // //RPC_E_RETRY (cautious) The calling application should continue or retry the download.
  4059. // //S_FALSE The calling application should open a dialog box to warn the user.
  4060. // //E_ABORT The calling application should abort the download.
  4061. // return hr;
  4062. // }
  4063. // #endregion
  4064. // #region IWindowForBindingUI Members
  4065. // int IWindowForBindingUI.GetWindow(ref Guid rguidReason, ref IntPtr phwnd)
  4066. // {
  4067. // phwnd = m_NullPointer;
  4068. // int hr = Hresults.S_FALSE;
  4069. // if ((rguidReason == Iid_Clsids.IID_IHttpSecurity) || (rguidReason == Iid_Clsids.IID_IAuthenticate))
  4070. // {
  4071. // if (!WBIEServerHandle().Equals(m_NullPointer))
  4072. // {
  4073. // phwnd = m_hWBServerHandle;
  4074. // hr = Hresults.S_OK;
  4075. // }
  4076. // }
  4077. // return hr;
  4078. // }
  4079. // #endregion
  4080. // #region INewWindowManager Members
  4081. // int INewWindowManager.EvaluateNewWindow(string pszUrl, string pszName,
  4082. // string pszUrlContext, string pszFeatures, bool fReplace, uint dwFlags, uint dwUserActionTime)
  4083. // {
  4084. // int hr = Hresults.E_FAIL; //To perform default IE action - Calls NewWindow3 else NewWindow2 else shows popup
  4085. // if (WBEvaluteNewWindow != null)
  4086. // {
  4087. // EvaluateNewWindowEvent.SetParameters(pszUrl, pszName, pszUrlContext, pszFeatures, fReplace, (int)dwFlags, (int)dwUserActionTime);
  4088. // WBEvaluteNewWindow(this, EvaluateNewWindowEvent);
  4089. // if (EvaluateNewWindowEvent.Cancel == true)
  4090. // hr = Hresults.S_FALSE; //Block
  4091. // //hr = Hresults.S_OK; //Allow all
  4092. // EvaluateNewWindowEvent.Reset();
  4093. // }
  4094. // return hr;
  4095. // }
  4096. // #endregion
  4097. // #region IAuthenticate Members
  4098. // //To pass a doamin as in a NTLM authentication scheme, use this format: Username = Domain\username
  4099. // int IAuthenticate.Authenticate(ref IntPtr phwnd, ref IntPtr pszUsername, ref IntPtr pszPassword)
  4100. // {
  4101. // int hr = Hresults.E_ACCESSDENIED; //to abort, to proceed Hresults.S_OK
  4102. // int iRet = hr; //Assume failure
  4103. // phwnd = this.Handle;
  4104. // pszUsername = IntPtr.Zero;
  4105. // pszPassword = IntPtr.Zero;
  4106. // if (WBAuthenticate != null)
  4107. // {
  4108. // AuthenticateEvent.SetParameters();
  4109. // WBAuthenticate(this, AuthenticateEvent);
  4110. // if (AuthenticateEvent.handled == true)
  4111. // {
  4112. // //Marshal.StringToCoTaskMemAuto
  4113. // pszUsername = Marshal.StringToCoTaskMemUni(AuthenticateEvent.username);
  4114. // pszPassword = Marshal.StringToCoTaskMemUni(AuthenticateEvent.password);
  4115. // iRet = AuthenticateEvent.retvalue; //Should be 0
  4116. // }
  4117. // //Reset
  4118. // AuthenticateEvent.SetParameters();
  4119. // //accepted return values
  4120. // if ((iRet == Hresults.S_OK) || (iRet == Hresults.E_INVALIDARG) || (iRet == Hresults.E_ACCESSDENIED))
  4121. // hr = iRet;
  4122. // }
  4123. // return hr;
  4124. // }
  4125. // #endregion
  4126. // #region IInternetSecurityManager Members
  4127. // int IInternetSecurityManager.SetSecuritySite(IntPtr pSite)
  4128. // {
  4129. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4130. // }
  4131. // int IInternetSecurityManager.GetSecuritySite(out IntPtr pSite)
  4132. // {
  4133. // pSite = IntPtr.Zero;
  4134. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4135. // }
  4136. // int IInternetSecurityManager.MapUrlToZone(string pwszUrl, out uint pdwZone, uint dwFlags)
  4137. // {
  4138. // // All URLs are on the local machine - most trusted and return S_OK;
  4139. // //pdwZone = (uint)tagURLZONE.URLZONE_LOCAL_MACHINE;
  4140. // //pdwZone = (uint)tagURLZONE.URLZONE_INTRANET;
  4141. // //pdwZone = (uint)tagURLZONE.URLZONE_TRUSTED; //....
  4142. // //return Hresults.S_OK;
  4143. // pdwZone = 0;
  4144. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4145. // }
  4146. // //private const string m_strSecurity = "None:localhost+My Computer";
  4147. // int IInternetSecurityManager.GetSecurityId(string pwszUrl, IntPtr pbSecurityId, ref uint pcbSecurityId, ref uint dwReserved)
  4148. // {
  4149. // //pbSecurityId = Marshal.StringToCoTaskMemAnsi(m_strSecurity);
  4150. // //pcbSecurityId = (uint)m_strSecurity.Length;
  4151. // //return Hresults.S_OK;
  4152. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4153. // }
  4154. // /*
  4155. // MSDN:
  4156. // The current list of URLACTION that will not be passed to the custom security manager
  4157. // in most circumstances by Internet Explorer 5 are:
  4158. // URLACTION_SHELL_FILE_DOWNLOAD
  4159. // URLACTION_COOKIES
  4160. // URLACTION_JAVA_PERMISSIONS
  4161. // URLACTION_SCRIPT_PASTE
  4162. // There is no workaround for this problem. The behavior for the URLACTION can only be
  4163. // changed for all browser clients on the system by altering the security zone settings
  4164. // from Internet Options.
  4165. // */
  4166. // int IInternetSecurityManager.ProcessUrlAction(string pwszUrl, uint dwAction, IntPtr pPolicy, uint cbPolicy, IntPtr pContext, uint cbContext, uint dwFlags, uint dwReserved)
  4167. // {
  4168. // if (ProcessUrlAction == null)
  4169. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4170. // try
  4171. // {
  4172. // URLACTION action = (URLACTION)dwAction;
  4173. // ProcessUrlActionFlags flags = (ProcessUrlActionFlags)dwFlags;
  4174. // bool hasUrlPolicy = (cbPolicy >= unchecked((uint)Marshal.SizeOf(typeof(int))));
  4175. // URLPOLICY urlPolicy = (hasUrlPolicy) ? urlPolicy = (URLPOLICY)Marshal.ReadInt32(pPolicy) : URLPOLICY.ALLOW;
  4176. // bool hasContext = (cbContext >= unchecked((uint)Marshal.SizeOf(typeof(Guid))));
  4177. // Guid context = (hasContext) ? (Guid)Marshal.PtrToStructure(pContext, typeof(Guid)) : Guid.Empty;
  4178. // ProcessUrlActionEvent.SetParameters(pwszUrl, action, urlPolicy, context, flags, hasContext);
  4179. // ProcessUrlAction(this, ProcessUrlActionEvent);
  4180. // if (ProcessUrlActionEvent.handled && hasUrlPolicy)
  4181. // {
  4182. // Marshal.WriteInt32(pPolicy, (int)ProcessUrlActionEvent.urlPolicy);
  4183. // return (ProcessUrlActionEvent.Cancel) ? Hresults.S_FALSE : Hresults.S_OK;
  4184. // }
  4185. // }
  4186. // finally
  4187. // {
  4188. // ProcessUrlActionEvent.ResetParameters();
  4189. // }
  4190. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4191. // }
  4192. // int IInternetSecurityManager.QueryCustomPolicy(string pwszUrl, ref Guid guidKey, out IntPtr ppPolicy, out uint pcbPolicy, IntPtr pContext, uint cbContext, uint dwReserved)
  4193. // {
  4194. // ppPolicy = IntPtr.Zero;
  4195. // pcbPolicy = 0;
  4196. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4197. // }
  4198. // int IInternetSecurityManager.SetZoneMapping(uint dwZone, string lpszPattern, uint dwFlags)
  4199. // {
  4200. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4201. // }
  4202. // int IInternetSecurityManager.GetZoneMappings(uint dwZone, out IEnumString ppenumString, uint dwFlags)
  4203. // {
  4204. // ppenumString = null;
  4205. // return (int)WinInetErrors.INET_E_DEFAULT_ACTION;
  4206. // }
  4207. // #endregion
  4208. // #region IProtectFocus Members
  4209. // void IProtectFocus.AllowFocusChange(ref bool pfAllow)
  4210. // {
  4211. // if (AllowFocusChange != null)
  4212. // {
  4213. // AllowFocusChangeEvent.Cancel = false;
  4214. // AllowFocusChange(this, AllowFocusChangeEvent);
  4215. // if (AllowFocusChangeEvent.Cancel)
  4216. // pfAllow = false;
  4217. // }
  4218. // }
  4219. // #endregion
  4220. // #region IHTMLOMWindowServices Members
  4221. // void IHTMLOMWindowServices.moveTo(int x, int y)
  4222. // {
  4223. // if (HTMLOMWindowServices_moveTo != null)
  4224. // {
  4225. // HTMLOMWindowServicesEvent.SetParameters(x, y);
  4226. // HTMLOMWindowServices_moveTo(this, HTMLOMWindowServicesEvent);
  4227. // }
  4228. // }
  4229. // void IHTMLOMWindowServices.moveBy(int x, int y)
  4230. // {
  4231. // if (HTMLOMWindowServices_moveBy != null)
  4232. // {
  4233. // HTMLOMWindowServicesEvent.SetParameters(x, y);
  4234. // HTMLOMWindowServices_moveBy(this, HTMLOMWindowServicesEvent);
  4235. // }
  4236. // }
  4237. // void IHTMLOMWindowServices.resizeTo(int x, int y)
  4238. // {
  4239. // if (HTMLOMWindowServices_resizeTo != null)
  4240. // {
  4241. // HTMLOMWindowServicesEvent.SetParameters(x, y);
  4242. // HTMLOMWindowServices_resizeTo(this, HTMLOMWindowServicesEvent);
  4243. // }
  4244. // }
  4245. // void IHTMLOMWindowServices.resizeBy(int x, int y)
  4246. // {
  4247. // if (HTMLOMWindowServices_resizeBy != null)
  4248. // {
  4249. // HTMLOMWindowServicesEvent.SetParameters(x, y);
  4250. // HTMLOMWindowServices_resizeBy(this, HTMLOMWindowServicesEvent);
  4251. // }
  4252. // }
  4253. // #endregion
  4254. // #endregion //Interfaces Implementation
  4255. // #region HTML Document and Window Events
  4256. // //For now, only HtmlDocumentEvents and HtmlWindowEvents2 are supported
  4257. // public void ActivateHTMLEvents(HTMLEventType EventType, int[] HTMLEventDispIds)
  4258. // {
  4259. // if (EventType == HTMLEventType.HTMLDocumentEvent)
  4260. // {
  4261. // m_TopLevelHtmlDocumentevents.InitHTMLEvents(this, HTMLEventDispIds, Iid_Clsids.DIID_HTMLDocumentEvents2);
  4262. // m_WantHtmlDocumentEvents = true;
  4263. // }
  4264. // else if (EventType == HTMLEventType.HTMLWindowEvent)
  4265. // {
  4266. // m_TopLevelHtmlWindowEvents.InitHTMLEvents(this, HTMLEventDispIds, Iid_Clsids.DIID_HTMLWindowEvents2);
  4267. // m_WantHtmlWindowEvents = true;
  4268. // }
  4269. // else
  4270. // return;
  4271. // m_WantHTMLEvents = true;
  4272. // }
  4273. // private void ActivateSecondaryHtmlDocumentEvents(ref cHTMLDocumentEvents doceve)
  4274. // {
  4275. // if (m_HtmlDocumentEventsList.Count == 0) //first one
  4276. // {
  4277. // doceve = new cHTMLDocumentEvents();
  4278. // }
  4279. // else
  4280. // {
  4281. // //Search for an idle one
  4282. // foreach (cHTMLDocumentEvents eve in m_HtmlDocumentEventsList)
  4283. // {
  4284. // if (!eve.m_IsCOnnected)
  4285. // {
  4286. // doceve = eve;
  4287. // break;
  4288. // }
  4289. // }
  4290. // //Did we find any
  4291. // if (doceve == null)
  4292. // doceve = new cHTMLDocumentEvents();
  4293. // }
  4294. // if (doceve != null)
  4295. // {
  4296. // doceve.InitHTMLEvents(this, m_TopLevelHtmlDocumentevents.m_dispIds, m_TopLevelHtmlDocumentevents.m_guid);
  4297. // m_HtmlDocumentEventsList.Add(doceve);
  4298. // }
  4299. // }
  4300. // private void ActivateSecondaryHtmlWindowEvents(ref cHTMLWindowEvents wineve)
  4301. // {
  4302. // if (m_HtmlWindowEventsList.Count == 0)
  4303. // {
  4304. // wineve = new cHTMLWindowEvents();
  4305. // }
  4306. // else
  4307. // {
  4308. // foreach (cHTMLWindowEvents eve in m_HtmlWindowEventsList)
  4309. // {
  4310. // if (!eve.m_IsCOnnected)
  4311. // {
  4312. // wineve = eve;
  4313. // break;
  4314. // }
  4315. // }
  4316. // if (wineve == null)
  4317. // wineve = new cHTMLWindowEvents();
  4318. // }
  4319. // if (wineve != null)
  4320. // {
  4321. // wineve.InitHTMLEvents(this, m_TopLevelHtmlWindowEvents.m_dispIds, m_TopLevelHtmlWindowEvents.m_guid);
  4322. // m_HtmlWindowEventsList.Add(wineve);
  4323. // }
  4324. // }
  4325. // private void DisconnectHtmlDocumentEvents()
  4326. // {
  4327. // if (m_HtmlDocumentEventsList.Count > 0)
  4328. // {
  4329. // foreach (cHTMLDocumentEvents doceve in m_HtmlDocumentEventsList)
  4330. // {
  4331. // doceve.DisconnectHtmlEvents();
  4332. // }
  4333. // }
  4334. // }
  4335. // private void DisconnectHtmlWindowEvnets()
  4336. // {
  4337. // if (m_HtmlWindowEventsList.Count > 0)
  4338. // {
  4339. // foreach (cHTMLWindowEvents wineven in m_HtmlWindowEventsList)
  4340. // {
  4341. // wineven.DisconnectHtmlEvents();
  4342. // }
  4343. // }
  4344. // }
  4345. // public void DeactivateHTMLEvents(HTMLEventType EventType)
  4346. // {
  4347. // m_WantHTMLEvents = false;
  4348. // if (EventType == HTMLEventType.HTMLDocumentEvent)
  4349. // {
  4350. // m_WantHtmlDocumentEvents = false;
  4351. // m_TopLevelHtmlDocumentevents.DisconnectHtmlEvents();
  4352. // DisconnectHtmlDocumentEvents();
  4353. // }
  4354. // else
  4355. // {
  4356. // m_WantHtmlWindowEvents = false;
  4357. // m_TopLevelHtmlWindowEvents.DisconnectHtmlEvents();
  4358. // DisconnectHtmlWindowEvnets();
  4359. // }
  4360. // }
  4361. // bool IHTMLEventCallBack.HandleHTMLEvent(HTMLEventType EventType, HTMLEventDispIds EventDispId, IHTMLEventObj pEvtObj)
  4362. // {
  4363. // bool bret = true; //always allow default processing
  4364. // if (HTMLEvent != null)
  4365. // {
  4366. // HtmlEventArg.ResetParameters(EventType, EventDispId, pEvtObj);
  4367. // HTMLEvent(this, HtmlEventArg);
  4368. // //Not all events are cancellable
  4369. // if (HtmlEventArg.Cancel)
  4370. // bret = false;
  4371. // HtmlEventArg.ResetParameters(HTMLEventType.HTMLEventNone, 0, null);
  4372. // }
  4373. // return bret;
  4374. // }
  4375. // #endregion //HTML Document and Window Events
  4376. // #region Subclassing IEServer
  4377. // /// <summary>
  4378. // /// Class to enable this control to catch back and forward mouse buttons
  4379. // /// and call webbrowser GoBack and GoForward methods.
  4380. // /// Contributed by logan1337 - Aug 13 2007
  4381. // /// http://www.codeproject.com/cs/miscctrl/csEXWB.asp?df=100&forumid=422031&select=2180453#xx2180453xx
  4382. // /// </summary>
  4383. // [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
  4384. // internal class IEServerWindow : NativeWindow
  4385. // {
  4386. // private cEXWB browser;
  4387. // public IEServerWindow(cEXWB wb)
  4388. // {
  4389. // this.browser = wb;
  4390. // if (!wb.IEServerHwnd.Equals(IntPtr.Zero))
  4391. // {
  4392. // AssignHandle(wb.IEServerHwnd);
  4393. // }
  4394. // }
  4395. // public void Release()
  4396. // {
  4397. // ReleaseHandle();
  4398. // }
  4399. // [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
  4400. // protected override void WndProc(ref Message m)
  4401. // {
  4402. // switch (m.Msg)
  4403. // {
  4404. // case WindowsMessages.WM_XBUTTONDOWN:
  4405. // if (m.WParam.ToInt32() >> 16 == 1) // back button
  4406. // {
  4407. // if (browser.CanGoBack)
  4408. // browser.GoBack();
  4409. // }
  4410. // else if (m.WParam.ToInt32() >> 16 == 2) // forward button
  4411. // {
  4412. // if (browser.CanGoForward)
  4413. // browser.GoForward();
  4414. // }
  4415. // break;
  4416. // default:
  4417. // break;
  4418. // }
  4419. // base.WndProc(ref m);
  4420. // }
  4421. // }
  4422. // #endregion
  4423. // #region Downloader + Asynchronous pluggable protocols (APP), via CSEXWBDLMAN COM assembly
  4424. // private string m_DownloadDir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + System.IO.Path.DirectorySeparatorChar.ToString();
  4425. // private bool m_UseInternalDownloadManager = true;
  4426. // private CSEXWBDLMANLib.csDLManClass m_csexwbCOMLib = null;
  4427. // public event csExWB.FileDownloadExEventHandler FileDownloadExStart = null;
  4428. // public event csExWB.FileDownloadExEndEventHandler FileDownloadExEnd = null;
  4429. // public event csExWB.FileDownloadExProgressEventHandler FileDownloadExProgress = null;
  4430. // public event csExWB.FileDownloadExAuthenticateEventHandler FileDownloadExAuthenticate = null;
  4431. // public event csExWB.FileDownloadExErrorEventHandler FileDownloadExError = null;
  4432. // public event csExWB.ProtocolHandlerOnBeginTransactionEventHandler ProtocolHandlerOnBeginTransaction = null;
  4433. // public event csExWB.ProtocolHandlerOnResponseEventHandler ProtocolHandlerOnResponse = null;
  4434. // private FileDownloadExEventArgs FileDownloadExEventArg = new FileDownloadExEventArgs();
  4435. // private FileDownloadExEndEventArgs FileDownloadExEndEventArg = new FileDownloadExEndEventArgs();
  4436. // private FileDownloadExProgressEventArgs FileDownloadExProgressEventArg = new FileDownloadExProgressEventArgs();
  4437. // private FileDownloadExAuthenticateEventArgs FileDownloadExAuthenticateEventArg = new FileDownloadExAuthenticateEventArgs();
  4438. // private FileDownloadExErrorEventArgs FileDownloadExErrorEventArg = new FileDownloadExErrorEventArgs();
  4439. // private ProtocolHandlerOnBeginTransactionEventArgs ProtocolHandlerOnBeginTransactionEventArg = new ProtocolHandlerOnBeginTransactionEventArgs();
  4440. // private ProtocolHandlerOnResponseEventArgs ProtocolHandlerOnResponseEventArg = new ProtocolHandlerOnResponseEventArgs();
  4441. // [Category("ExWB"), Description("Set to true, default, to allow the control to take over file downloads. FileDownloadExxxx events are fired instead of FileDownload.")]
  4442. // public bool UseInternalDownloadManager
  4443. // {
  4444. // get
  4445. // {
  4446. // return m_UseInternalDownloadManager;
  4447. // }
  4448. // set
  4449. // {
  4450. // m_UseInternalDownloadManager = value;
  4451. // }
  4452. // }
  4453. // [Category("ExWB"), Description("Default file download directory. Set to MyDocuments by default. Used only if UseInternalDownloadManager property is set to true.")]
  4454. // public string FileDownloadDirectory
  4455. // {
  4456. // get
  4457. // {
  4458. // return m_DownloadDir;
  4459. // }
  4460. // set
  4461. // {
  4462. // if (!string.IsNullOrEmpty(value))
  4463. // {
  4464. // if (value.EndsWith(System.IO.Path.DirectorySeparatorChar.ToString()))
  4465. // m_DownloadDir = value;
  4466. // else
  4467. // m_DownloadDir = value + System.IO.Path.DirectorySeparatorChar;
  4468. // }
  4469. // }
  4470. // }
  4471. // /// <summary>
  4472. // /// Checks to determine if m_DownloadManager object has been set up.
  4473. // /// </summary>
  4474. // private void InitCOMLibrary()
  4475. // {
  4476. // //if (m_DownloadManager == null)
  4477. // //{
  4478. // m_csexwbCOMLib = new CSEXWBDLMANLib.csDLManClass();
  4479. // m_csexwbCOMLib.ProtocolHandlerOnBeginTransaction += new CSEXWBDLMANLib._IcsDLManEvents_ProtocolHandlerOnBeginTransactionEventHandler(dlman_ProtocolHandlerOnBeginTransaction);
  4480. // m_csexwbCOMLib.ProtocolHandlerOnResponse += new CSEXWBDLMANLib._IcsDLManEvents_ProtocolHandlerOnResponseEventHandler(dlman_ProtocolHandlerOnResponse);
  4481. // m_csexwbCOMLib.FileDownloadEx += new CSEXWBDLMANLib._IcsDLManEvents_FileDownloadExEventHandler(dl_FileDownloadEx);
  4482. // m_csexwbCOMLib.OnFileDLEndDownload += new CSEXWBDLMANLib._IcsDLManEvents_OnFileDLEndDownloadEventHandler(dl_OnFileDLEndDownload);
  4483. // m_csexwbCOMLib.OnFileDLDownloadError += new CSEXWBDLMANLib._IcsDLManEvents_OnFileDLDownloadErrorEventHandler(dl_OnFileDLDownloadError);
  4484. // m_csexwbCOMLib.OnFileDLAuthenticate += new CSEXWBDLMANLib._IcsDLManEvents_OnFileDLAuthenticateEventHandler(m_DownloadManager_OnFileDLAuthenticate);
  4485. // m_csexwbCOMLib.OnFileDLProgress += new CSEXWBDLMANLib._IcsDLManEvents_OnFileDLProgressEventHandler(m_DownloadManager_OnFileDLProgress);
  4486. // //m_DownloadManager.OnFileDLBeginningTransaction += new CSEXWBDLMANLib._IcsDLManEvents_OnFileDLBeginningTransactionEventHandler(m_DownloadManager_OnFileDLBeginningTransaction);
  4487. // //m_DownloadManager.OnFileDLResponse += new CSEXWBDLMANLib._IcsDLManEvents_OnFileDLResponseEventHandler(m_DownloadManager_OnFileDLResponse);
  4488. // //}
  4489. // }
  4490. // private void AddThisIEServerHwndToComLib()
  4491. // {
  4492. // if (m_hWBServerHandle != IntPtr.Zero)
  4493. // m_csexwbCOMLib.HWNDInternetExplorerServer = m_hWBServerHandle.ToInt32();
  4494. // else if (WBIEServerHandle() != IntPtr.Zero)
  4495. // m_csexwbCOMLib.HWNDInternetExplorerServer = m_hWBServerHandle.ToInt32();
  4496. // }
  4497. // /// <summary>
  4498. // /// Attempts to download a file asynch.
  4499. // /// FileDownloadExxxx events are used for notifications.
  4500. // /// </summary>
  4501. // /// <param name="Url"></param>
  4502. // /// <returns>A unique id assigned to this file download.
  4503. // /// Can be used to cancel a download.</returns>
  4504. // public int DownloadFile(string Url)
  4505. // {
  4506. // AddThisIEServerHwndToComLib();
  4507. // int i = 0;
  4508. // m_csexwbCOMLib.DownloadUrlAsync(Url, ref i);
  4509. // return i;
  4510. // }
  4511. // /// <summary>
  4512. // /// Stops a file download
  4513. // /// </summary>
  4514. // /// <param name="dlUID">Unique id for this file download</param>
  4515. // public void StopFileDownload(int dlUID)
  4516. // {
  4517. // if (m_csexwbCOMLib == null)
  4518. // return;
  4519. // m_csexwbCOMLib.CancelFileDownload(dlUID);
  4520. // }
  4521. // /// <summary>
  4522. // /// Monitor and/or cancel every HTTP protocol request and responde
  4523. // /// including images, sounds, scripts, ...
  4524. // /// Notifications are send via ProtocolHandlerOnResponse and
  4525. // /// ProtocolHandlerOnBeginTransaction events
  4526. // /// </summary>
  4527. // public void StartHTTPAPP()
  4528. // {
  4529. // AddThisIEServerHwndToComLib();
  4530. // if (!m_csexwbCOMLib.HTTPprotocol)
  4531. // {
  4532. // m_csexwbCOMLib.HTTPprotocol = true;
  4533. // }
  4534. // }
  4535. // public void StopHTTPAPP()
  4536. // {
  4537. // if (m_csexwbCOMLib.HTTPprotocol)
  4538. // {
  4539. // m_csexwbCOMLib.HTTPprotocol = false;
  4540. // }
  4541. // }
  4542. // public void StopHTTPSAPP()
  4543. // {
  4544. // if (m_csexwbCOMLib.HTTPSprotocol)
  4545. // {
  4546. // m_csexwbCOMLib.HTTPSprotocol = false;
  4547. // }
  4548. // }
  4549. // /// <summary>
  4550. // /// Monitor and/or cancel every HTTPS protocol request and responde
  4551. // /// including images, sounds, scripts, ...
  4552. // /// Notifications are send via ProtocolHandlerOnResponse and
  4553. // /// ProtocolHandlerOnBeginTransaction events
  4554. // /// </summary>
  4555. // public void StartHTTPSAPP()
  4556. // {
  4557. // AddThisIEServerHwndToComLib();
  4558. // if (!m_csexwbCOMLib.HTTPSprotocol)
  4559. // {
  4560. // m_csexwbCOMLib.HTTPSprotocol = true;
  4561. // }
  4562. // }
  4563. // //
  4564. // //EVENTS
  4565. // //
  4566. // void dlman_ProtocolHandlerOnResponse(int IEServerHwnd, string sURL, string sResponseHeaders, string sRedirectedUrl, string sRedirectHeaders, ref bool Cancel)
  4567. // {
  4568. // if (ProtocolHandlerOnResponse != null)
  4569. // {
  4570. // ProtocolHandlerOnResponseEventArg.SetParameters(sURL, sResponseHeaders, sRedirectedUrl, sRedirectHeaders);
  4571. // ProtocolHandlerOnResponse(this, ProtocolHandlerOnResponseEventArg);
  4572. // if (ProtocolHandlerOnResponseEventArg.Cancel)
  4573. // Cancel = true;
  4574. // ProtocolHandlerOnResponseEventArg.Reset();
  4575. // }
  4576. // }
  4577. // void dlman_ProtocolHandlerOnBeginTransaction(int IEServerHwnd, string sURL, string sRequestHeaders, ref string sAdditionalHeaders, ref bool Cancel)
  4578. // {
  4579. // if (ProtocolHandlerOnBeginTransaction != null)
  4580. // {
  4581. // ProtocolHandlerOnBeginTransactionEventArg.SetParameters(sURL, sRequestHeaders);
  4582. // ProtocolHandlerOnBeginTransaction(this, ProtocolHandlerOnBeginTransactionEventArg);
  4583. // if (!ProtocolHandlerOnBeginTransactionEventArg.Cancel)
  4584. // {
  4585. // //Additional headers can be added to what is already
  4586. // //being send by Webbrowser control
  4587. // if (!string.IsNullOrEmpty(ProtocolHandlerOnBeginTransactionEventArg.m_AdditionalHeadersToAdd))
  4588. // sAdditionalHeaders = ProtocolHandlerOnBeginTransactionEventArg.m_AdditionalHeadersToAdd;
  4589. // }
  4590. // else
  4591. // Cancel = true;
  4592. // ProtocolHandlerOnBeginTransactionEventArg.Reset();
  4593. // }
  4594. // }
  4595. // void dl_OnFileDLDownloadError(int dlUID, string sURL, string sErrorMsg)
  4596. // {
  4597. // if (FileDownloadExError != null)
  4598. // {
  4599. // FileDownloadExErrorEventArg.SetParameters(dlUID, sURL, sErrorMsg);
  4600. // FileDownloadExError(this, FileDownloadExErrorEventArg);
  4601. // FileDownloadExErrorEventArg.Reset();
  4602. // }
  4603. // }
  4604. // void m_DownloadManager_OnFileDLProgress(int dlUID, string sURL, int lProgress, int lProgressMax, ref bool CancelDl)
  4605. // {
  4606. // if (this.FileDownloadExProgress != null)
  4607. // {
  4608. // FileDownloadExProgressEventArg.SetParameters(dlUID, sURL, lProgress, lProgressMax);
  4609. // FileDownloadExProgress(this, FileDownloadExProgressEventArg);
  4610. // if (FileDownloadExProgressEventArg.Cancel)
  4611. // CancelDl = FileDownloadExProgressEventArg.Cancel;
  4612. // FileDownloadExProgressEventArg.Reset();
  4613. // }
  4614. // }
  4615. // //Default value of Cancel = false
  4616. // void m_DownloadManager_OnFileDLAuthenticate(int dlUID, ref string sUsername, ref string sPassword, ref bool Cancel)
  4617. // {
  4618. // if (FileDownloadExAuthenticate != null)
  4619. // {
  4620. // FileDownloadExAuthenticateEventArg.SetParameters(dlUID);
  4621. // FileDownloadExAuthenticate(this, FileDownloadExAuthenticateEventArg);
  4622. // if (!FileDownloadExAuthenticateEventArg.Cancel)
  4623. // {
  4624. // sUsername = FileDownloadExAuthenticateEventArg.username;
  4625. // sPassword = FileDownloadExAuthenticateEventArg.password;
  4626. // }
  4627. // FileDownloadExAuthenticateEventArg.Reset();
  4628. // }
  4629. // }
  4630. // void dl_OnFileDLEndDownload(int dlUID, string sURL, string sSavedFilePath)
  4631. // {
  4632. // if (FileDownloadExEnd != null)
  4633. // {
  4634. // FileDownloadExEndEventArg.SetParameters(dlUID, sURL, sSavedFilePath);
  4635. // FileDownloadExEnd(this, FileDownloadExEndEventArg);
  4636. // FileDownloadExEndEventArg.Reset();
  4637. // }
  4638. // else
  4639. // {
  4640. // //Just let user know for now
  4641. // WinApis.MessageBox(this.Handle, "Download URL:\r\n" + sURL + "Saved To:\r\n" + sSavedFilePath, "File Download Completed", 0);
  4642. // }
  4643. // }
  4644. // void dl_FileDownloadEx(int dlUID, string sURL, string sFilename, string sExt, string sFileSize, string sExtraHeaders, string sRedirURL, ref bool SendProgressEvents, ref bool bStopDownload, ref string sPathToSave)
  4645. // {
  4646. // if (FileDownloadExStart != null)
  4647. // {
  4648. // FileDownloadExEventArg.SetParameters(dlUID, sURL, sFilename, sExt, sFileSize, sExtraHeaders, sRedirURL);
  4649. // FileDownloadExStart(this, FileDownloadExEventArg);
  4650. // if (!FileDownloadExEventArg.Cancel)
  4651. // {
  4652. // //Otherwise file will be saved in the same dir as exe
  4653. // //with the sFilename (file.zip)
  4654. // if (!string.IsNullOrEmpty(FileDownloadExEventArg.m_PathToSave))
  4655. // sPathToSave = FileDownloadExEventArg.m_PathToSave;
  4656. // SendProgressEvents = FileDownloadExEventArg.m_SendProgressEvents;
  4657. // }
  4658. // else
  4659. // bStopDownload = true;
  4660. // FileDownloadExEventArg.Reset();
  4661. // }
  4662. // else
  4663. // {
  4664. // SendProgressEvents = false;
  4665. // //Save it in the downloaddir
  4666. // if (!string.IsNullOrEmpty(m_DownloadDir)) //Users MyDocument
  4667. // sPathToSave = m_DownloadDir + sFilename;
  4668. // }
  4669. // }
  4670. // //void m_DownloadManager_OnFileDLResponse(int dlUID, string sURL, int lResponseCode, string sResponseHeaders, ref bool CancelDl)
  4671. // //{
  4672. // // //Check against WinInetErrors enum
  4673. // // if( (lResponseCode == 301) || (lResponseCode > 399) ) //abort and notify the user
  4674. // //}
  4675. // ////Only fired if file download is initiated using DownloadFile method
  4676. // ////gives the client a chnace to add extra headers. Example: resume header
  4677. // ////Syntax: Range: bytes=n-m
  4678. // ////bResuming = true;
  4679. // ////sAdditionalRequestHeaders = "Range: bytes=" + iLocalFileSize.ToString() + "-\r\n"
  4680. // //void m_DownloadManager_OnFileDLBeginningTransaction(int dlUID, string sURL, string sRequestHeaders, ref string sAdditionalRequestHeaders, ref bool bResuming, ref bool bCancel)
  4681. // //{
  4682. // //
  4683. // //}
  4684. // #endregion
  4685. // #region Automation of webbrowser control
  4686. // //All elements are searched by id and name for a match
  4687. // //If frameset, it will search all frames for given element name or id.
  4688. // //Please refer to frmAutomation for an example of usage
  4689. // private enum AutomationTasks
  4690. // {
  4691. // ClickButton = 0,
  4692. // ClickLink,
  4693. // EnterData,
  4694. // EnterDataTextArea,
  4695. // SelectListItem,
  4696. // SelectRadioButton,
  4697. // SubmitForm
  4698. // }
  4699. // private bool GetElementByName(AutomationTasks task, string elemname, string data)
  4700. // {
  4701. // if ((this.m_WBWebBrowser2 == null) ||
  4702. // string.IsNullOrEmpty(elemname))
  4703. // return false;
  4704. // bool result = false;
  4705. // IHTMLDocument2 doc2 = this.m_WBWebBrowser2.Document as IHTMLDocument2;
  4706. // if (doc2 == null)
  4707. // return false;
  4708. // IHTMLElementCollection col = null;
  4709. // if (this.IsWBFrameset(doc2))
  4710. // {
  4711. // List<IWebBrowser2> frames = this.GetFrames(this.m_WBWebBrowser2);
  4712. // if (frames == null)
  4713. // return false;
  4714. // foreach (IWebBrowser2 wb in frames)
  4715. // {
  4716. // if (task == AutomationTasks.ClickLink)
  4717. // {
  4718. // IHTMLDocument2 framedoc = wb.Document as IHTMLDocument2;
  4719. // if (framedoc == null)
  4720. // continue;
  4721. // col = framedoc.anchors as IHTMLElementCollection;
  4722. // }
  4723. // else if (task == AutomationTasks.SelectListItem)
  4724. // {
  4725. // IHTMLDocument3 doc3 = wb.Document as IHTMLDocument3;
  4726. // if (doc3 == null)
  4727. // continue;
  4728. // col = doc3.getElementsByTagName("select") as IHTMLElementCollection;
  4729. // }
  4730. // else if (task == AutomationTasks.EnterDataTextArea)
  4731. // {
  4732. // IHTMLDocument3 doc3 = wb.Document as IHTMLDocument3;
  4733. // if (doc3 == null)
  4734. // continue;
  4735. // col = doc3.getElementsByTagName("textarea") as IHTMLElementCollection;
  4736. // }
  4737. // else if (task == AutomationTasks.SubmitForm)
  4738. // {
  4739. // IHTMLDocument2 framedoc = wb.Document as IHTMLDocument2;
  4740. // if (framedoc == null)
  4741. // continue;
  4742. // col = framedoc.forms as IHTMLElementCollection;
  4743. // }
  4744. // else
  4745. // {
  4746. // IHTMLDocument3 doc3 = wb.Document as IHTMLDocument3;
  4747. // if (doc3 == null)
  4748. // continue;
  4749. // col = doc3.getElementsByTagName("input") as IHTMLElementCollection;
  4750. // }
  4751. // if (col == null)
  4752. // continue;
  4753. // result = this.PerformAutomationTask(col, task, elemname, data);
  4754. // if (result)
  4755. // return result;
  4756. // }
  4757. // }
  4758. // else
  4759. // {
  4760. // if (task == AutomationTasks.ClickLink)
  4761. // {
  4762. // col = doc2.anchors as IHTMLElementCollection;
  4763. // //IHTMLElement elem = col.item(elemname, 0) as IHTMLElement;
  4764. // //if (elem != null)
  4765. // // elem.click();
  4766. // //return true;
  4767. // }
  4768. // else if (task == AutomationTasks.SelectListItem)
  4769. // {
  4770. // //IHTMLDocument2 framedoc = this.m_WBWebBrowser2.Document as IHTMLDocument2;
  4771. // //if (framedoc == null)
  4772. // // return result;
  4773. // //col = framedoc.all as IHTMLElementCollection;
  4774. // //IHTMLElement elem = col.item(elemname, 0) as IHTMLElement;
  4775. // //if (elem != null)
  4776. // //{
  4777. // // IHTMLSelectElement selelem = elem as IHTMLSelectElement;
  4778. // // if (selelem != null)
  4779. // // selelem.value = data;
  4780. // //}
  4781. // //return true;
  4782. // IHTMLDocument3 doc3 = this.m_WBWebBrowser2.Document as IHTMLDocument3;
  4783. // if (doc3 == null)
  4784. // return result;
  4785. // col = doc3.getElementsByTagName("select") as IHTMLElementCollection;
  4786. // }
  4787. // else if (task == AutomationTasks.EnterDataTextArea)
  4788. // {
  4789. // IHTMLDocument3 doc3 = this.m_WBWebBrowser2.Document as IHTMLDocument3;
  4790. // if (doc3 == null)
  4791. // return result;
  4792. // col = doc3.getElementsByTagName("textarea") as IHTMLElementCollection;
  4793. // }
  4794. // else if (task == AutomationTasks.SubmitForm)
  4795. // {
  4796. // IHTMLDocument2 framedoc = this.m_WBWebBrowser2.Document as IHTMLDocument2;
  4797. // if (framedoc == null)
  4798. // return result;
  4799. // col = framedoc.forms as IHTMLElementCollection;
  4800. // }
  4801. // else
  4802. // {
  4803. // IHTMLDocument3 doc3 = this.m_WBWebBrowser2.Document as IHTMLDocument3;
  4804. // if (doc3 == null)
  4805. // return result;
  4806. // col = doc3.getElementsByTagName("input") as IHTMLElementCollection;
  4807. // }
  4808. // if (col == null)
  4809. // return result;
  4810. // result = this.PerformAutomationTask(col, task, elemname, data);
  4811. // }
  4812. // return result;
  4813. // }
  4814. // private bool PerformAutomationTask(IHTMLElementCollection col, AutomationTasks task, string elemname, string data)
  4815. // {
  4816. // bool bret = false;
  4817. // if (col == null) return bret;
  4818. // foreach (IHTMLElement elem in col)
  4819. // {
  4820. // if (elem != null)
  4821. // {
  4822. // switch (task)
  4823. // {
  4824. // case AutomationTasks.ClickButton:
  4825. // {
  4826. // IHTMLInputElement btn = elem as IHTMLInputElement;
  4827. // if ((btn != null) &&
  4828. // ((elem.id == elemname) || (btn.name == elemname))
  4829. // )
  4830. // {
  4831. // elem.click();
  4832. // return true;
  4833. // }
  4834. // }
  4835. // break;
  4836. // case AutomationTasks.ClickLink:
  4837. // {
  4838. // IHTMLAnchorElement anchor = elem as IHTMLAnchorElement;
  4839. // if ((anchor != null) &&
  4840. // ((elem.id == elemname) || (anchor.name == elemname))
  4841. // )
  4842. // {
  4843. // elem.click();
  4844. // return true;
  4845. // }
  4846. // }
  4847. // break;
  4848. // case AutomationTasks.EnterData:
  4849. // {
  4850. // IHTMLInputElement inputelem = elem as IHTMLInputElement;
  4851. // if ((inputelem != null) &&
  4852. // ((elem.id == elemname) || (inputelem.name == elemname))
  4853. // )
  4854. // {
  4855. // inputelem.value = data;
  4856. // return true;
  4857. // }
  4858. // }
  4859. // break;
  4860. // case AutomationTasks.EnterDataTextArea:
  4861. // {
  4862. // IHTMLTextAreaElement txtarea = elem as IHTMLTextAreaElement;
  4863. // if ((txtarea != null) &&
  4864. // ((elem.id == elemname) || (txtarea.name == elemname))
  4865. // )
  4866. // {
  4867. // txtarea.value = data;
  4868. // return true;
  4869. // }
  4870. // }
  4871. // break;
  4872. // case AutomationTasks.SelectListItem:
  4873. // {
  4874. // IHTMLSelectElement selelem = elem as IHTMLSelectElement;
  4875. // if ((selelem != null) &&
  4876. // ((elem.id == elemname) || (selelem.name == elemname))
  4877. // )
  4878. // {
  4879. // //data can be value or text of the htmloptionelement
  4880. // // Obtain the number of option objects in the select object.
  4881. // int icount = selelem.length;
  4882. // IHTMLOptionElement optelem = null;
  4883. // for (int i = 0; i < icount; i++)
  4884. // {
  4885. // optelem = selelem.item(i, i) as IHTMLOptionElement;
  4886. // if (optelem != null)
  4887. // {
  4888. // if ((optelem.text == data) ||
  4889. // (optelem.value == data))
  4890. // {
  4891. // optelem.selected = true;
  4892. // return true;
  4893. // }
  4894. // }
  4895. // }
  4896. // return false;
  4897. // }
  4898. // }
  4899. // break;
  4900. // case AutomationTasks.SelectRadioButton:
  4901. // {
  4902. // IHTMLInputElement inputelem = elem as IHTMLInputElement;
  4903. // if ((inputelem != null) &&
  4904. // ((elem.id == elemname) || (inputelem.name == elemname))
  4905. // )
  4906. // {
  4907. // inputelem.checkeda = true;
  4908. // return true;
  4909. // }
  4910. // }
  4911. // break;
  4912. // case AutomationTasks.SubmitForm:
  4913. // {
  4914. // IHTMLFormElement form = elem as IHTMLFormElement;
  4915. // if ((form != null) &&
  4916. // ((elem.id == elemname) || (form.name == elemname))
  4917. // )
  4918. // {
  4919. // form.submit();
  4920. // return true;
  4921. // }
  4922. // }
  4923. // break;
  4924. // default:
  4925. // break;
  4926. // }
  4927. // }
  4928. // } //End foreach
  4929. // return bret;
  4930. // }
  4931. // /// <summary>
  4932. // /// Performs a click on a Button element with given name
  4933. // /// </summary>
  4934. // /// <param name="elemname">Name of Button element</param>
  4935. // /// <returns></returns>
  4936. // public bool AutomationTask_PerformClickButton(string btnnameorid)
  4937. // {
  4938. // return this.GetElementByName(AutomationTasks.ClickButton, btnnameorid, string.Empty);
  4939. // }
  4940. // public bool AutomationTask_PerformClickLink(string linknameorid)
  4941. // {
  4942. // return this.GetElementByName(AutomationTasks.ClickLink, linknameorid, string.Empty);
  4943. // }
  4944. // public bool AutomationTask_PerformEnterData(string inputnameorid, string strValue)
  4945. // {
  4946. // return this.GetElementByName(AutomationTasks.EnterData, inputnameorid, strValue);
  4947. // }
  4948. // public bool AutomationTask_PerformEnterDataTextArea(string inputnameorid, string strValue)
  4949. // {
  4950. // return this.GetElementByName(AutomationTasks.EnterDataTextArea, inputnameorid, strValue);
  4951. // }
  4952. // /// <summary>
  4953. // /// Attempts to select an item from a selection list
  4954. // /// based on the item value or text
  4955. // /// </summary>
  4956. // /// <param name="selectnameorid"></param>
  4957. // /// <param name="listitemvalueortext"></param>
  4958. // /// <returns></returns>
  4959. // public bool AutomationTask_PerformSelectList(string selectnameorid, string listitemvalueortext)
  4960. // {
  4961. // return this.GetElementByName(AutomationTasks.SelectListItem, selectnameorid, listitemvalueortext);
  4962. // }
  4963. // public bool AutomationTask_PerformSelectRadio(string radionameorid)
  4964. // {
  4965. // return this.GetElementByName(AutomationTasks.SelectRadioButton, radionameorid, string.Empty);
  4966. // }
  4967. // public bool AutomationTask_PerformSubmitForm(string formnameorid)
  4968. // {
  4969. // return this.GetElementByName(AutomationTasks.SubmitForm, formnameorid, string.Empty);
  4970. // }
  4971. // /// <summary>
  4972. // /// Attempts to scroll into view a link given it's name or id
  4973. // /// </summary>
  4974. // /// <param name="nameorid"></param>
  4975. // public bool AutomationTask_NamedLinkScrollIntoView(string nameorid)
  4976. // {
  4977. // IHTMLDocument2 pdoc2 = m_WBWebBrowser2.Document as IHTMLDocument2;
  4978. // if (pdoc2 != null)
  4979. // {
  4980. // IHTMLElementCollection hrefs = pdoc2.anchors as IHTMLElementCollection;
  4981. // if (hrefs != null)
  4982. // {
  4983. // ////If there are two elements by the same name exists
  4984. // ////we receive the item based on the index passed (0)
  4985. // //IHTMLElement elem = hrefs.item(namedLink, 0) as IHTMLElement;
  4986. // //if (elem != null)
  4987. // // elem.scrollIntoView(true);
  4988. // foreach (IHTMLElement elem in hrefs)
  4989. // {
  4990. // if (elem != null)
  4991. // {
  4992. // IHTMLAnchorElement anchor = elem as IHTMLAnchorElement;
  4993. // if ((anchor != null) &&
  4994. // ((elem.id == nameorid) || (anchor.name == nameorid)))
  4995. // {
  4996. // elem.scrollIntoView(true);
  4997. // return true;
  4998. // }
  4999. // }
  5000. // }
  5001. // }
  5002. // }
  5003. // return false;
  5004. // }
  5005. // /// <summary>
  5006. // /// Simulates a keystroke. The targetelement must have focus
  5007. // /// </summary>
  5008. // /// <param name="keycode">One of Keys enum</param>
  5009. // public void AutomationTask_SimulateKeyStroke(Keys keycode)
  5010. // {
  5011. // WinApis.keybd_event((byte)keycode, 0, 0, UIntPtr.Zero); //keydown
  5012. // WinApis.keybd_event((byte)keycode, 0, WinApis.KEYEVENTF_KEYUP, UIntPtr.Zero); //Keydown
  5013. // }
  5014. // /// <summary>
  5015. // /// Attempts to select all the items within a given select list
  5016. // /// </summary>
  5017. // /// <param name="selects">A List of MultiSelectHTMLList classes containning a list of
  5018. // /// items to select</param>
  5019. // public void AutomationTask_PerformMultiSelectListItems(List<MultiSelectHTMLList> selects)
  5020. // {
  5021. // if ((this.m_WBWebBrowser2 == null) ||
  5022. // (selects == null) || (selects.Count == 0))
  5023. // return;
  5024. // //throw new Exception("
  5025. // //get the select collection from IHTMLDocument3
  5026. // IHTMLDocument3 doc3 = this.m_WBWebBrowser2.Document as IHTMLDocument3;
  5027. // if (doc3 == null)
  5028. // return;
  5029. // IHTMLElementCollection col = doc3.getElementsByTagName("select") as IHTMLElementCollection;
  5030. // if (col == null)
  5031. // return;
  5032. // int icount = 0;
  5033. // int i = 0;
  5034. // IHTMLOptionElement optelem = null;
  5035. // IHTMLSelectElement selelem = null;
  5036. // //Loop through
  5037. // foreach (MultiSelectHTMLList list in selects)
  5038. // {
  5039. // if ((list != null) && (!string.IsNullOrEmpty(list.m_SelectNameOrId)) &&
  5040. // (list.m_ListItemsNamesOrIds != null) && (list.m_ListItemsNamesOrIds.Count > 0))
  5041. // {
  5042. // //find the list in the collection
  5043. // foreach (IHTMLElement elem in col)
  5044. // {
  5045. // if (elem != null)
  5046. // {
  5047. // selelem = elem as IHTMLSelectElement;
  5048. // if ((selelem != null) &&
  5049. // ((elem.id == list.m_SelectNameOrId) || //check id
  5050. // (selelem.name == list.m_SelectNameOrId)) //check name as well
  5051. // )
  5052. // {
  5053. // //data can be value or text of the htmloptionelement
  5054. // // Obtain the number of option objects in the select object.
  5055. // icount = selelem.length;
  5056. // //loop through all items
  5057. // for (i = 0; i < icount; i++)
  5058. // {
  5059. // optelem = selelem.item(i, i) as IHTMLOptionElement;
  5060. // if (optelem != null)
  5061. // {
  5062. // //see if this the one
  5063. // foreach (string data in list.m_ListItemsNamesOrIds)
  5064. // {
  5065. // if ((optelem.text == data) ||
  5066. // (optelem.value == data))
  5067. // {
  5068. // optelem.selected = true;
  5069. // //selected this item, break and
  5070. // //continue with the rest of the items
  5071. // break;
  5072. // }
  5073. // }
  5074. // }
  5075. // }
  5076. // //Checked this select, break and continue with the next select in the list
  5077. // break;
  5078. // }
  5079. // }
  5080. // }
  5081. // }
  5082. // }
  5083. // }
  5084. // public bool AutomationTask_PerformAuthentication(string txtUserNameOrId, string txtPasswordNameOrId, string strUserName, string strPassword, bool bForceNewValue, bool bAutoSubmit)
  5085. // {
  5086. // bool result = false;
  5087. // bool doneusername = false;
  5088. // bool donepassword = false;
  5089. // //checks
  5090. // if (this.m_WBWebBrowser2 == null)
  5091. // return result;
  5092. // //get the select collection from IHTMLDocument3
  5093. // IHTMLDocument3 doc3 = this.m_WBWebBrowser2.Document as IHTMLDocument3;
  5094. // if (doc3 == null)
  5095. // return result;
  5096. // IHTMLElementCollection col = doc3.getElementsByTagName("input") as IHTMLElementCollection;
  5097. // if (col == null)
  5098. // return result;
  5099. // IHTMLInputElement inputelem = null;
  5100. // foreach (IHTMLElement elem in col)
  5101. // {
  5102. // if (elem != null)
  5103. // {
  5104. // inputelem = elem as IHTMLInputElement;
  5105. // if (inputelem != null)
  5106. // {
  5107. // if ((elem.id == txtUserNameOrId) ||
  5108. // (inputelem.name == txtUserNameOrId))
  5109. // {
  5110. // if ((string.IsNullOrEmpty(inputelem.value)) ||
  5111. // (bForceNewValue))
  5112. // {
  5113. // doneusername = true;
  5114. // inputelem.value = strUserName;
  5115. // }
  5116. // }
  5117. // else if ((elem.id == txtPasswordNameOrId) ||
  5118. // (inputelem.name == txtPasswordNameOrId))
  5119. // {
  5120. // //To make sure this is the one we
  5121. // //can also check for hidden or password
  5122. // //value indicated by type property.
  5123. // if ((string.IsNullOrEmpty(inputelem.value)) ||
  5124. // (bForceNewValue))
  5125. // {
  5126. // donepassword = true;
  5127. // inputelem.value = strPassword;
  5128. // }
  5129. // }
  5130. // }
  5131. // if ((doneusername) && (donepassword))
  5132. // break;
  5133. // }
  5134. // }
  5135. // if (((doneusername) && (donepassword)) && bAutoSubmit)
  5136. // {
  5137. // this.AutomationTask_SimulateKeyStroke(Keys.Enter);
  5138. // //if ((inputelem != null) && (inputelem.form != null))
  5139. // //{
  5140. // // IHTMLFormElement form = inputelem.form as IHTMLFormElement;
  5141. // // if (form != null)
  5142. // // form.submit();
  5143. // //}
  5144. // }
  5145. // return ((doneusername) && (donepassword)) ? true : false;
  5146. // }
  5147. // #endregion
  5148. // #region TravelLog - this webbrowser session history
  5149. // private ITravelLogStg m_TravelLogStg = null;
  5150. // private bool GetHistorySession()
  5151. // {
  5152. // if (m_TravelLogStg != null)
  5153. // return true;
  5154. // //QI for serviceprovider
  5155. // IfacesEnumsStructsClasses.IServiceProvider psp = m_WBUnknown as IfacesEnumsStructsClasses.IServiceProvider;
  5156. // if (psp == null)
  5157. // return false;
  5158. // IntPtr oret = IntPtr.Zero;
  5159. // //QueryService for ITravelLogStg
  5160. // int hr = psp.QueryService(ref Iid_Clsids.SID_STravelLogCursor, ref Iid_Clsids.IID_ITravelLogStg, out oret);
  5161. // if ((oret == IntPtr.Zero) || (hr != Hresults.S_OK))
  5162. // return false;
  5163. // Marshal.ReleaseComObject(psp);
  5164. // m_TravelLogStg = Marshal.GetObjectForIUnknown(oret) as ITravelLogStg;
  5165. // return (m_TravelLogStg != null) ? true : false;
  5166. // }
  5167. // public int GetTravelLogCount()
  5168. // {
  5169. // int iret = 0;
  5170. // if (!GetHistorySession())
  5171. // return iret;
  5172. // m_TravelLogStg.GetCount((int)TLMENUF.TLEF_ABSOLUTE, out iret);
  5173. // return iret;
  5174. // }
  5175. // //If there is no title, the method returns the URL of the page.
  5176. // //The method returns zero length string for the
  5177. // //current page's title and url
  5178. // public List<TravelLogStruct> GetTraveLogEntries()
  5179. // {
  5180. // List<TravelLogStruct> entries = new List<TravelLogStruct>();
  5181. // if (!GetHistorySession())
  5182. // return entries;
  5183. // //Enum the travel log entries
  5184. // IEnumTravelLogEntry penumtle = null;
  5185. // m_TravelLogStg.EnumEntries((int)TLMENUF.TLEF_ABSOLUTE, out penumtle);
  5186. // if (penumtle == null)
  5187. // return entries;
  5188. // int hr = 0;
  5189. // ITravelLogEntry ptle = null;
  5190. // int fetched = 0;
  5191. // IntPtr pTitle = IntPtr.Zero;
  5192. // IntPtr pUrl = IntPtr.Zero;
  5193. // const int MAX_FETCH_COUNT = 1;
  5194. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5195. // Marshal.ThrowExceptionForHR(hr);
  5196. // //while sucess, continue
  5197. // for (int i = 0; Hresults.S_OK == hr; i++)
  5198. // {
  5199. // if (ptle != null)
  5200. // {
  5201. // pTitle = IntPtr.Zero;
  5202. // pUrl = IntPtr.Zero;
  5203. // ptle.GetTitle(out pTitle);
  5204. // TravelLogStruct tlg = new TravelLogStruct();
  5205. // if (pTitle != IntPtr.Zero)
  5206. // tlg.Title = Marshal.PtrToStringUni(pTitle);
  5207. // else
  5208. // tlg.Title = string.Empty;
  5209. // ptle.GetURL(out pUrl);
  5210. // if (pUrl != IntPtr.Zero)
  5211. // tlg.URL = Marshal.PtrToStringUni(pUrl);
  5212. // else
  5213. // tlg.URL = string.Empty;
  5214. // entries.Add(tlg);
  5215. // //We are responsible to free the memory
  5216. // Marshal.FreeCoTaskMem(pTitle);
  5217. // Marshal.FreeCoTaskMem(pUrl);
  5218. // //http://msdn2.microsoft.com/en-us/library/aa753624.aspx
  5219. // }
  5220. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5221. // Marshal.ThrowExceptionForHR(hr);
  5222. // }
  5223. // Marshal.ReleaseComObject(penumtle);
  5224. // return entries;
  5225. // }
  5226. // public ITravelLogEntry AddTravelLogEntry(string url, string title)
  5227. // {
  5228. // ITravelLogEntry ptle = null;
  5229. // if (!GetHistorySession())
  5230. // return ptle;
  5231. // m_TravelLogStg.CreateEntry(url, title, null, true, out ptle);
  5232. // return ptle;
  5233. // }
  5234. // /// <summary>
  5235. // /// Removes all travel log entries for this webbrowser instance
  5236. // /// </summary>
  5237. // /// <returns></returns>
  5238. // public bool RemoveAllTravelLogEntries()
  5239. // {
  5240. // if (!GetHistorySession())
  5241. // return false;
  5242. // int hr = 0;
  5243. // int fetched = 0;
  5244. // const int MAX_FETCH_COUNT = 1;
  5245. // IntPtr pTitle = IntPtr.Zero;
  5246. // ITravelLogEntry ptle = null;
  5247. // IEnumTravelLogEntry penumtle = null;
  5248. // //Find entries
  5249. // m_TravelLogStg.EnumEntries((int)TLMENUF.TLEF_ABSOLUTE, out penumtle);
  5250. // if (penumtle == null)
  5251. // return false;
  5252. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5253. // Marshal.ThrowExceptionForHR(hr);
  5254. // //while sucess, continue
  5255. // for (int i = 0; Hresults.S_OK == hr; i++)
  5256. // {
  5257. // if (ptle != null)
  5258. // {
  5259. // pTitle = IntPtr.Zero;
  5260. // ptle.GetTitle(out pTitle);
  5261. // if (pTitle != IntPtr.Zero) //Current entry?
  5262. // {
  5263. // Marshal.FreeCoTaskMem(pTitle);
  5264. // m_TravelLogStg.RemoveEntry(ptle);
  5265. // }
  5266. // }
  5267. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5268. // Marshal.ThrowExceptionForHR(hr);
  5269. // }
  5270. // Marshal.ReleaseComObject(penumtle);
  5271. // return true;
  5272. // }
  5273. // /// <summary>
  5274. // /// Removes all entries matching given url
  5275. // /// The current entry cannot be deleted.
  5276. // /// </summary>
  5277. // /// <param name="url"></param>
  5278. // /// <param name="title"></param>
  5279. // /// <returns></returns>
  5280. // public bool RemoveTravelLogEntries(string url)
  5281. // {
  5282. // if (!GetHistorySession())
  5283. // return false;
  5284. // int hr = 0;
  5285. // int fetched = 0;
  5286. // const int MAX_FETCH_COUNT = 1;
  5287. // IntPtr pUrl = IntPtr.Zero;
  5288. // string targeturl = string.Empty;
  5289. // ITravelLogEntry ptle = null;
  5290. // IEnumTravelLogEntry penumtle = null;
  5291. // //Find entries
  5292. // m_TravelLogStg.EnumEntries((int)TLMENUF.TLEF_ABSOLUTE, out penumtle);
  5293. // if (penumtle == null)
  5294. // return false;
  5295. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5296. // Marshal.ThrowExceptionForHR(hr);
  5297. // //while sucess, continue
  5298. // for (int i = 0; Hresults.S_OK == hr; i++)
  5299. // {
  5300. // if (ptle != null)
  5301. // {
  5302. // pUrl = IntPtr.Zero;
  5303. // ptle.GetURL(out pUrl);
  5304. // if (pUrl != IntPtr.Zero)
  5305. // {
  5306. // targeturl = Marshal.PtrToStringUni(pUrl);
  5307. // Marshal.FreeCoTaskMem(pUrl);
  5308. // if ((!string.IsNullOrEmpty(targeturl)) &&
  5309. // (targeturl == url))
  5310. // m_TravelLogStg.RemoveEntry(ptle);
  5311. // }
  5312. // }
  5313. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5314. // Marshal.ThrowExceptionForHR(hr);
  5315. // }
  5316. // Marshal.ReleaseComObject(penumtle);
  5317. // return true;
  5318. // }
  5319. // /// <summary>
  5320. // /// Removes first entry matching given url and title
  5321. // /// </summary>
  5322. // /// <param name="url"></param>
  5323. // /// <param name="title"></param>
  5324. // /// <returns></returns>
  5325. // public bool RemoveTravelLogEntry(string url, string title)
  5326. // {
  5327. // if (!GetHistorySession())
  5328. // return false;
  5329. // int hr = 0;
  5330. // int fetched = 0;
  5331. // const int MAX_FETCH_COUNT = 1;
  5332. // IntPtr pTitle = IntPtr.Zero;
  5333. // IntPtr pUrl = IntPtr.Zero;
  5334. // string targeturl = string.Empty;
  5335. // string targettitle = string.Empty;
  5336. // ITravelLogEntry ptle = null;
  5337. // IEnumTravelLogEntry penumtle = null;
  5338. // //Find entries
  5339. // m_TravelLogStg.EnumEntries((int)TLMENUF.TLEF_ABSOLUTE, out penumtle);
  5340. // if (penumtle == null)
  5341. // return false;
  5342. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5343. // Marshal.ThrowExceptionForHR(hr);
  5344. // //while sucess, continue
  5345. // for (int i = 0; Hresults.S_OK == hr; i++)
  5346. // {
  5347. // if (ptle != null)
  5348. // {
  5349. // pTitle = IntPtr.Zero;
  5350. // pUrl = IntPtr.Zero;
  5351. // ptle.GetURL(out pUrl);
  5352. // ptle.GetTitle(out pTitle);
  5353. // if ((pUrl != IntPtr.Zero) &&
  5354. // (pTitle != IntPtr.Zero))
  5355. // {
  5356. // targeturl = Marshal.PtrToStringUni(pUrl);
  5357. // targettitle = Marshal.PtrToStringUni(pTitle);
  5358. // Marshal.FreeCoTaskMem(pTitle);
  5359. // Marshal.FreeCoTaskMem(pUrl);
  5360. // if ((!string.IsNullOrEmpty(targettitle)) &&
  5361. // (targettitle == title) &&
  5362. // (!string.IsNullOrEmpty(targeturl)) &&
  5363. // (targeturl == url))
  5364. // {
  5365. // m_TravelLogStg.RemoveEntry(ptle);
  5366. // return true;
  5367. // }
  5368. // }
  5369. // }
  5370. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5371. // Marshal.ThrowExceptionForHR(hr);
  5372. // }
  5373. // Marshal.ReleaseComObject(penumtle);
  5374. // return false;
  5375. // }
  5376. // /// <summary>
  5377. // /// Removes one entry based on index
  5378. // /// Can not delete current entry
  5379. // /// </summary>
  5380. // /// <param name="index">0 based index</param>
  5381. // /// <returns></returns>
  5382. // public bool RemoveTravelLogEntry(int index)
  5383. // {
  5384. // if (!GetHistorySession())
  5385. // return false;
  5386. // int hr = 0;
  5387. // int fetched = 0;
  5388. // const int MAX_FETCH_COUNT = 1;
  5389. // IntPtr pTitle = IntPtr.Zero;
  5390. // ITravelLogEntry ptle = null;
  5391. // IEnumTravelLogEntry penumtle = null;
  5392. // //Find entries
  5393. // m_TravelLogStg.EnumEntries((int)TLMENUF.TLEF_ABSOLUTE, out penumtle);
  5394. // if (penumtle == null)
  5395. // return false;
  5396. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5397. // Marshal.ThrowExceptionForHR(hr);
  5398. // //while sucess, continue
  5399. // for (int i = 0; Hresults.S_OK == hr; i++)
  5400. // {
  5401. // if ((ptle != null) &&
  5402. // (i == index))
  5403. // {
  5404. // pTitle = IntPtr.Zero;
  5405. // ptle.GetTitle(out pTitle);
  5406. // if (pTitle != IntPtr.Zero) //Current entry?
  5407. // {
  5408. // Marshal.FreeCoTaskMem(pTitle);
  5409. // m_TravelLogStg.RemoveEntry(ptle);
  5410. // return true;
  5411. // }
  5412. // else
  5413. // return false;
  5414. // }
  5415. // hr = penumtle.Next(MAX_FETCH_COUNT, out ptle, out fetched);
  5416. // Marshal.ThrowExceptionForHR(hr);
  5417. // }
  5418. // Marshal.ReleaseComObject(penumtle);
  5419. // return false;
  5420. // }
  5421. // #endregion
  5422. // #region IHTMLEditHost Members
  5423. // public event HTMLEditHostSnapRectEventHandler HTMLEditHostSnapRect = null;
  5424. // private HTMLEditHostSnapRectEventArgs HTMLEditHostSnapRectEvent = new HTMLEditHostSnapRectEventArgs();
  5425. // int IHTMLEditHost.SnapRect(IHTMLElement pIElement, ref tagRECT prcNew, int eHandle)
  5426. // {
  5427. // if (HTMLEditHostSnapRect != null)
  5428. // {
  5429. // HTMLEditHostSnapRectEvent.SetParameters(pIElement, prcNew, eHandle);
  5430. // HTMLEditHostSnapRect(this, HTMLEditHostSnapRectEvent);
  5431. // //if things changed
  5432. // prcNew = HTMLEditHostSnapRectEvent.ElemRect;
  5433. // }
  5434. // return Hresults.S_OK;
  5435. // }
  5436. // #endregion
  5437. // } //class cEXWB
  5438. //} //csExWB