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
- ActivationArguments.cs
- GenerateHelper.cs
- Trace.cs
- Resources.Designer.cs
- DataPager.cs
- Int32Converter.cs
- AspNetHostingPermission.cs
- DependencyPropertyChangedEventArgs.cs
- SQLDoubleStorage.cs
- ProcessHostFactoryHelper.cs
- TypeReference.cs
- VBCodeProvider.cs
- TypedElement.cs
- RuntimeConfigurationRecord.cs
- DataGridViewComboBoxColumnDesigner.cs
- OracleFactory.cs
- FixedSOMLineCollection.cs
- MemberCollection.cs
- ReadWriteSpinLock.cs
- LostFocusEventManager.cs
- ApplicationProxyInternal.cs
- BitVector32.cs
- HtmlAnchor.cs
- CodeExpressionStatement.cs
- NativeMethods.cs
- FontStretchConverter.cs
- EventManager.cs
- InternalTypeHelper.cs
- EventProvider.cs
- MatrixTransform.cs
- TextElementCollectionHelper.cs
- Selector.cs
- XmlIlGenerator.cs
- WinCategoryAttribute.cs
- _OverlappedAsyncResult.cs
- ProcessThread.cs
- File.cs
- DataFormat.cs
- SmiEventSink_DeferedProcessing.cs
- InlineObject.cs
- ListBindingHelper.cs
- SecurityManager.cs
- LazyTextWriterCreator.cs
- InternalResources.cs
- XmlQueryContext.cs
- ConsumerConnectionPointCollection.cs
- QilBinary.cs
- ConfigurationSectionGroup.cs
- SizeAnimationClockResource.cs
- xmlglyphRunInfo.cs
- OdbcReferenceCollection.cs
- LiteralControl.cs
- MsdtcClusterUtils.cs
- WebPartEditorCancelVerb.cs
- SaveFileDialog.cs
- DatatypeImplementation.cs
- DBSchemaTable.cs
- _LocalDataStore.cs
- AbstractSvcMapFileLoader.cs
- ToolBar.cs
- BlurBitmapEffect.cs
- InvalidOperationException.cs
- ConfigurationManagerInternalFactory.cs
- PrimitiveCodeDomSerializer.cs
- Int16AnimationUsingKeyFrames.cs
- EmissiveMaterial.cs
- XmlNullResolver.cs
- FillBehavior.cs
- _BaseOverlappedAsyncResult.cs
- ImageClickEventArgs.cs
- Message.cs
- EndpointAddressMessageFilter.cs
- TextElementCollection.cs
- DiagnosticsConfigurationHandler.cs
- LongValidator.cs
- HttpHandlersSection.cs
- WebBrowserContainer.cs
- SplineQuaternionKeyFrame.cs
- RestHandler.cs
- BrowserCapabilitiesFactory35.cs
- Dictionary.cs
- AttributeProviderAttribute.cs
- DataGridViewSelectedRowCollection.cs
- SelectedDatesCollection.cs
- ContourSegment.cs
- TypeForwardedToAttribute.cs
- ExpressionBindings.cs
- XmlSchemaDatatype.cs
- DataGridViewDataErrorEventArgs.cs
- HelpEvent.cs
- EventRoute.cs
- HelpInfo.cs
- PerfCounterSection.cs
- HeaderLabel.cs
- EntityDescriptor.cs
- EmbeddedObject.cs
- Base64Encoder.cs
- CacheOutputQuery.cs
- TrustSection.cs
- CommonDialog.cs