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
- FieldMetadata.cs
- PasswordTextNavigator.cs
- MatchingStyle.cs
- CompilerWrapper.cs
- diagnosticsswitches.cs
- _emptywebproxy.cs
- CroppedBitmap.cs
- WinFormsUtils.cs
- ListViewItem.cs
- hresults.cs
- CancellationTokenSource.cs
- COM2Enum.cs
- ISAPIWorkerRequest.cs
- RectangleHotSpot.cs
- XmlSignatureProperties.cs
- AncestorChangedEventArgs.cs
- StreamingContext.cs
- DictionaryChange.cs
- SqlPersonalizationProvider.cs
- ScrollBar.cs
- EventLogEntry.cs
- ObjectTokenCategory.cs
- HttpCookie.cs
- TextParagraph.cs
- CornerRadiusConverter.cs
- MatrixTransform3D.cs
- QueryableDataSourceHelper.cs
- ExpressionHelper.cs
- Bits.cs
- StrongNamePublicKeyBlob.cs
- InfoCardSymmetricCrypto.cs
- TemplateBuilder.cs
- XmlComment.cs
- WorkflowPrinting.cs
- Size.cs
- Touch.cs
- ObjectContext.cs
- LockCookie.cs
- FlowDocumentFormatter.cs
- ContractCodeDomInfo.cs
- EventManager.cs
- PageBuildProvider.cs
- Rule.cs
- ExpressionWriter.cs
- PartitionedStreamMerger.cs
- ContentPresenter.cs
- HtmlInputText.cs
- FlowLayoutSettings.cs
- BulletedListEventArgs.cs
- PowerStatus.cs
- MatrixUtil.cs
- CopyNamespacesAction.cs
- ItemsPresenter.cs
- InheritanceContextHelper.cs
- DeferredElementTreeState.cs
- SignedXml.cs
- AnimatedTypeHelpers.cs
- Root.cs
- XmlAttributeAttribute.cs
- SqlCommand.cs
- Classification.cs
- SqlDataSourceCache.cs
- ContentElement.cs
- IISUnsafeMethods.cs
- Control.cs
- AsyncCompletedEventArgs.cs
- LocalValueEnumerator.cs
- DataViewSettingCollection.cs
- MappingMetadataHelper.cs
- GlyphTypeface.cs
- XamlTypeMapper.cs
- RowToParametersTransformer.cs
- OletxVolatileEnlistment.cs
- UnsafeNativeMethods.cs
- SqlRowUpdatedEvent.cs
- WmlMobileTextWriter.cs
- InputDevice.cs
- XmlSchemaSimpleTypeRestriction.cs
- CardSpaceShim.cs
- SynchronizationLockException.cs
- GacUtil.cs
- FlowLayoutPanelDesigner.cs
- ChannelSinkStacks.cs
- SslStream.cs
- PersonalizationAdministration.cs
- Int32Animation.cs
- ContextConfiguration.cs
- DataGridViewUtilities.cs
- TcpClientChannel.cs
- CompoundFileStreamReference.cs
- ByteFacetDescriptionElement.cs
- EventData.cs
- ObjectDataSourceView.cs
- UnaryNode.cs
- SessionSwitchEventArgs.cs
- ImageIndexConverter.cs
- SiteMap.cs
- SafeLocalMemHandle.cs
- odbcmetadatacolumnnames.cs
- EnumMemberAttribute.cs