Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Controls / webbrowsersite.cs / 1 / webbrowsersite.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // // Description: // WebBrowserSite is a sub-class of ActiveXSite. // Used to implement IDocHostUIHandler. // // Copied from WebBrowser.cs in winforms // // History // 06/16/05 - [....] - Created // //----------------------------------------------------------------------------- using System; using System.ComponentModel; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows; using MS.Win32; using System.Security ; using MS.Internal.PresentationFramework; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; namespace MS.Internal.Controls { // // WebBrowserSite class: // /// ////// /// Provides a default WebBrowserSite implementation for use in the CreateWebBrowserSite /// method in the WebBrowser class. /// /// internal class WebBrowserSite : ActiveXSite , UnsafeNativeMethods.IDocHostUIHandler { /// ////// WebBrowser implementation of ActiveXSite. Used to override GetHostInfo. /// and "turn on" our redirect notifications. /// ////// Critical - calls base class ctor which is critical. /// [ SecurityCritical ] internal WebBrowserSite(WebBrowser host) : base(host) { } // // IDocHostUIHandler Implementation // /// int UnsafeNativeMethods.IDocHostUIHandler.ShowContextMenu(int dwID, NativeMethods.POINT pt, object pcmdtReserved, object pdispReserved) { // // Returning S_FALSE will allow the native control to do default processing, // i.e., execute the shortcut key. Returning S_OK will cancel the context menu // return NativeMethods.S_FALSE; } ////// Critical - calls critical code. /// If you change this method - you could affect mitigations. /// **Needs to be critical.** /// TreatAsSafe - information returned from this method is innocous. /// lists the set of browser features/options we've enabled. /// [ SecurityCritical, SecurityTreatAsSafe ] int UnsafeNativeMethods.IDocHostUIHandler.GetHostInfo(NativeMethods.DOCHOSTUIINFO info) { WebBrowser wb = (WebBrowser)this.Host; info.dwDoubleClick = (int) NativeMethods.DOCHOSTUIDBLCLICK.DEFAULT; // // These are the current flags shdocvw uses. Assumed we want the same. // info.dwFlags = (int) ( NativeMethods.DOCHOSTUIFLAG.DISABLE_HELP_MENU | NativeMethods.DOCHOSTUIFLAG.DISABLE_SCRIPT_INACTIVE | NativeMethods.DOCHOSTUIFLAG.ENABLE_INPLACE_NAVIGATION | NativeMethods.DOCHOSTUIFLAG.IME_ENABLE_RECONVERSION | NativeMethods.DOCHOSTUIFLAG.THEME | NativeMethods.DOCHOSTUIFLAG.ENABLE_FORMS_AUTOCOMPLETE | NativeMethods.DOCHOSTUIFLAG.DISABLE_UNTRUSTEDPROTOCOL | NativeMethods.DOCHOSTUIFLAG.LOCAL_MACHINE_ACCESS_CHECK | NativeMethods.DOCHOSTUIFLAG.ENABLE_REDIRECT_NOTIFICATION ); return NativeMethods.S_OK; } int UnsafeNativeMethods.IDocHostUIHandler.EnableModeless(bool fEnable) { return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.ShowUI(int dwID, UnsafeNativeMethods.IOleInPlaceActiveObject activeObject, NativeMethods.IOleCommandTarget commandTarget, UnsafeNativeMethods.IOleInPlaceFrame frame, UnsafeNativeMethods.IOleInPlaceUIWindow doc) { return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.HideUI() { return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.UpdateUI() { return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.OnDocWindowActivate(bool fActivate) { return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.OnFrameWindowActivate(bool fActivate) { return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.ResizeBorder(NativeMethods.COMRECT rect, UnsafeNativeMethods.IOleInPlaceUIWindow doc, bool fFrameWindow) { return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.GetOptionKeyPath(string[] pbstrKey, int dw) { return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.GetDropTarget(UnsafeNativeMethods.IOleDropTarget pDropTarget, out UnsafeNativeMethods.IOleDropTarget ppDropTarget) { // // Set to null no matter what we return, to prevent the marshaller // from going crazy if the pointer points to random stuff. ppDropTarget = null; return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.GetExternal(out object ppDispatch) { /* WebBrowser wb = (WebBrowser)this.Host; ppDispatch = wb.ObjectForScripting; return NativeMethods.S_OK; */ ppDispatch = null; return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.TranslateAccelerator(ref System.Windows.Interop.MSG msg, ref Guid group, int nCmdID) { // // Returning S_FALSE will allow the native control to do default processing, // i.e., execute the shortcut key. Returning S_OK will cancel the shortcut key. /* WebBrowser wb = (WebBrowser)this.Host; if (!wb.WebBrowserShortcutsEnabled) { int keyCode = (int)msg.wParam | (int)Control.ModifierKeys; if (msg.message != NativeMethods.WM_CHAR && Enum.IsDefined(typeof(Shortcut), (Shortcut)keyCode)) { return NativeMethods.S_OK; } return NativeMethods.S_FALSE; } */ return NativeMethods.S_FALSE; } int UnsafeNativeMethods.IDocHostUIHandler.TranslateUrl(int dwTranslate, string strUrlIn, out string pstrUrlOut) { // // Set to null no matter what we return, to prevent the marshaller // from going crazy if the pointer points to random stuff. pstrUrlOut = null; return NativeMethods.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.FilterDataObject(IComDataObject pDO, out IComDataObject ppDORet) { // // Set to null no matter what we return, to prevent the marshaller // from going crazy if the pointer points to random stuff. ppDORet = null; return NativeMethods.E_NOTIMPL; } // // Internal methods // /* internal override void OnPropertyChanged(int dispid) { if (dispid != NativeMethods.ActiveX.DISPID_READYSTATE) { base.OnPropertyChanged(dispid); } } */ } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WorkflowNamespace.cs
- EntitySetRetriever.cs
- Quaternion.cs
- SettingsPropertyWrongTypeException.cs
- TraceSection.cs
- TextRangeEdit.cs
- VideoDrawing.cs
- ExpressionParser.cs
- PeerCustomResolverElement.cs
- ListViewHitTestInfo.cs
- XsdValidatingReader.cs
- PointHitTestResult.cs
- CodeCommentStatementCollection.cs
- CounterCreationData.cs
- SafeNativeMethodsOther.cs
- Command.cs
- ConfigXmlComment.cs
- AddToCollection.cs
- RelationshipDetailsRow.cs
- AsymmetricKeyExchangeFormatter.cs
- MailSettingsSection.cs
- LogicalChannelCollection.cs
- ProviderMetadataCachedInformation.cs
- EncoderExceptionFallback.cs
- MemberRelationshipService.cs
- PriorityBindingExpression.cs
- M3DUtil.cs
- StylusPointPropertyUnit.cs
- LinqDataSourceView.cs
- RuleRefElement.cs
- PlainXmlDeserializer.cs
- DrawToolTipEventArgs.cs
- ToolBarTray.cs
- ResponseStream.cs
- WSFederationHttpSecurityMode.cs
- XPathBinder.cs
- QuaternionKeyFrameCollection.cs
- CompilerWrapper.cs
- FlowDecisionDesigner.xaml.cs
- DefaultEvaluationContext.cs
- BufferModesCollection.cs
- _DomainName.cs
- ServiceOperationViewControl.cs
- RemoteWebConfigurationHost.cs
- ItemsChangedEventArgs.cs
- ConnectionPoint.cs
- DataGridColumnHeader.cs
- EdmFunctions.cs
- ActiveXContainer.cs
- FrameworkContentElement.cs
- RSAPKCS1SignatureDeformatter.cs
- DynamicField.cs
- UInt64Converter.cs
- TimelineGroup.cs
- COM2IPerPropertyBrowsingHandler.cs
- PropertyEntry.cs
- TextTreeInsertUndoUnit.cs
- CurrencyManager.cs
- TargetParameterCountException.cs
- EntityDesignerBuildProvider.cs
- LateBoundBitmapDecoder.cs
- TrackingMemoryStreamFactory.cs
- DataGridViewComboBoxEditingControl.cs
- ListViewDataItem.cs
- InkCollectionBehavior.cs
- ColorConvertedBitmap.cs
- SiteOfOriginContainer.cs
- CalendarDesigner.cs
- URLString.cs
- OperationCanceledException.cs
- CommentEmitter.cs
- SmtpReplyReaderFactory.cs
- MenuAdapter.cs
- MetadataCache.cs
- XmlNavigatorFilter.cs
- ConnectionsZone.cs
- DataContractJsonSerializer.cs
- MarginsConverter.cs
- TaskHelper.cs
- DefaultValidator.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- xamlnodes.cs
- HttpCookieCollection.cs
- Selection.cs
- XmlEntity.cs
- RemotingException.cs
- X509WindowsSecurityToken.cs
- SqlTypeSystemProvider.cs
- XpsPackagingPolicy.cs
- XamlGridLengthSerializer.cs
- Int16Converter.cs
- WebServiceEnumData.cs
- KeyGestureValueSerializer.cs
- ProtocolElementCollection.cs
- StorageEntitySetMapping.cs
- XmlChildEnumerator.cs
- FileUtil.cs
- FusionWrap.cs
- ValidationRuleCollection.cs
- controlskin.cs