Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2PropertyBuilderUITypeEditor.cs / 1305376 / COM2PropertyBuilderUITypeEditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using Microsoft.Win32; using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Diagnostics; using System.Drawing; using System.Drawing.Design; using System.Runtime.InteropServices; using System.Windows.Forms.Design; using System.Globalization; ////// /// internal class Com2PropertyBuilderUITypeEditor : Com2ExtendedUITypeEditor { private Com2PropertyDescriptor propDesc; string guidString; int bldrType; public Com2PropertyBuilderUITypeEditor(Com2PropertyDescriptor pd, string guidString, int type, UITypeEditor baseEditor) : base(baseEditor) { propDesc = pd; this.guidString = guidString; this.bldrType = type; } ////// /// Takes the value returned from valueAccess.getValue() and modifies or replaces /// the value, passing the result into valueAccess.setValue(). This is where /// an editor can launch a modal dialog or create a drop down editor to allow /// the user to modify the value. Host assistance in presenting UI to the user /// can be found through the valueAccess.getService function. /// public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { IntPtr parentHandle = (IntPtr)UnsafeNativeMethods.GetFocus(); IUIService uiSvc = (IUIService)provider.GetService(typeof(IUIService)); if (uiSvc != null) { IWin32Window parent = uiSvc.GetDialogOwnerWindow(); if (parent != null) { parentHandle = parent.Handle; } } bool useValue = false; //VARIANT pValue = null; object pValue = value; try{ object obj = propDesc.TargetObject; if (obj is ICustomTypeDescriptor) { obj = ((ICustomTypeDescriptor)obj).GetPropertyOwner(propDesc); } Debug.Assert(obj is NativeMethods.IProvidePropertyBuilder, "object is not IProvidePropertyBuilder"); NativeMethods.IProvidePropertyBuilder propBuilder = (NativeMethods.IProvidePropertyBuilder)obj; if (NativeMethods.Failed(propBuilder.ExecuteBuilder(propDesc.DISPID, guidString, null, new HandleRef(null, parentHandle), ref pValue, ref useValue))){ useValue = false; } }catch(ExternalException ex) { Debug.Fail("Failed to show property frame: " + ex.ErrorCode.ToString(CultureInfo.InvariantCulture)); } if (useValue && (bldrType & _CTLBLDTYPE.CTLBLDTYPE_FEDITSOBJDIRECTLY) == 0){ return pValue;//pValue.ToVariant(); } return value; } ////// /// Retrieves the editing style of the Edit method. If the method /// is not supported, this will return None. /// public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { return UITypeEditorEditStyle.Modal; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReferenceService.cs
- DocumentEventArgs.cs
- XmlSchemaGroup.cs
- ClientSession.cs
- TracingConnectionListener.cs
- PasswordTextNavigator.cs
- ObjectQuery_EntitySqlExtensions.cs
- Receive.cs
- ThemeableAttribute.cs
- StylusPlugInCollection.cs
- QilStrConcat.cs
- XPathAxisIterator.cs
- DataGridViewSelectedRowCollection.cs
- ZoneIdentityPermission.cs
- Tokenizer.cs
- ExpandCollapseProviderWrapper.cs
- TableLayoutCellPaintEventArgs.cs
- TypeGeneratedEventArgs.cs
- Wizard.cs
- FixedHyperLink.cs
- JapaneseCalendar.cs
- CollectionView.cs
- XmlBinaryReader.cs
- ActivationService.cs
- TreeBuilderXamlTranslator.cs
- PolygonHotSpot.cs
- XmlDeclaration.cs
- SvcMapFileLoader.cs
- Utils.cs
- TagPrefixAttribute.cs
- RemoteHelper.cs
- SqlFunctionAttribute.cs
- RichTextBoxAutomationPeer.cs
- XmlNavigatorFilter.cs
- PointHitTestParameters.cs
- RenderContext.cs
- ProtocolsSection.cs
- WsatEtwTraceListener.cs
- ReflectionTypeLoadException.cs
- BasePattern.cs
- Byte.cs
- Application.cs
- XPathAxisIterator.cs
- Wizard.cs
- LineProperties.cs
- Parser.cs
- DynamicQueryableWrapper.cs
- TextParaClient.cs
- CodeEntryPointMethod.cs
- _LocalDataStoreMgr.cs
- AttributeTableBuilder.cs
- Volatile.cs
- TypeBuilderInstantiation.cs
- HeaderUtility.cs
- EdmFunction.cs
- SecurityTokenResolver.cs
- CodeDOMUtility.cs
- WebPartDisplayMode.cs
- CacheVirtualItemsEvent.cs
- TcpConnectionPoolSettingsElement.cs
- TimeZoneNotFoundException.cs
- LayoutUtils.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- MemberDescriptor.cs
- Mappings.cs
- Int32RectConverter.cs
- DSACryptoServiceProvider.cs
- UnSafeCharBuffer.cs
- Effect.cs
- ClusterRegistryConfigurationProvider.cs
- securitycriticaldata.cs
- Privilege.cs
- AuthenticatingEventArgs.cs
- Signature.cs
- ToolTip.cs
- TdsValueSetter.cs
- EncodingDataItem.cs
- XappLauncher.cs
- PointLight.cs
- XmlNamedNodeMap.cs
- SqlComparer.cs
- DirtyTextRange.cs
- Parser.cs
- XpsSerializationException.cs
- Keyboard.cs
- BasicHttpSecurityMode.cs
- TrimSurroundingWhitespaceAttribute.cs
- CollectionConverter.cs
- LazyTextWriterCreator.cs
- HierarchicalDataBoundControl.cs
- EUCJPEncoding.cs
- ClientProxyGenerator.cs
- Variant.cs
- TextDpi.cs
- UrlAuthorizationModule.cs
- BitArray.cs
- WebControl.cs
- DSASignatureDeformatter.cs
- METAHEADER.cs
- DataKey.cs