Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2IProvidePropertyBuilderHandler.cs / 1305376 / COM2IProvidePropertyBuilderHandler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System.ComponentModel; using System.Diagnostics; using System; using System.Collections; using Microsoft.Win32; using System.Drawing.Design; [System.Security.SuppressUnmanagedCodeSecurityAttribute()] internal class Com2IProvidePropertyBuilderHandler : Com2ExtendedBrowsingHandler { public override Type Interface { get { return typeof(NativeMethods.IProvidePropertyBuilder); } } private bool GetBuilderGuidString(NativeMethods.IProvidePropertyBuilder target, int dispid, ref string strGuidBldr, int[] bldrType) { bool valid = false; string[] pGuidBldr = new string[1]; if (NativeMethods.Failed(target.MapPropertyToBuilder(dispid, bldrType, pGuidBldr, ref valid))) { valid = false; } if (valid && (bldrType[0] & _CTLBLDTYPE.CTLBLDTYPE_FINTERNALBUILDER) == 0) { valid = false; Debug.Fail("Property Browser doesn't support standard builders -- NYI"); } if (!valid) { return false; } if (pGuidBldr[0] == null) { strGuidBldr = Guid.Empty.ToString(); } else { strGuidBldr = pGuidBldr[0]; } return true; } public override void SetupPropertyHandlers(Com2PropertyDescriptor[] propDesc) { if (propDesc == null) { return; } for (int i = 0; i < propDesc.Length; i++) { propDesc[i].QueryGetBaseAttributes += new GetAttributesEventHandler(this.OnGetBaseAttributes); propDesc[i].QueryGetTypeConverterAndTypeEditor += new GetTypeConverterAndTypeEditorEventHandler(this.OnGetTypeConverterAndTypeEditor); } } ////// /// Here is where we handle IVsPerPropertyBrowsing.GetLocalizedPropertyInfo and IVsPerPropertyBrowsing. HideProperty /// such as IPerPropertyBrowsing, IProvidePropertyBuilder, etc. /// private void OnGetBaseAttributes(Com2PropertyDescriptor sender, GetAttributesEvent attrEvent) { NativeMethods.IProvidePropertyBuilder target = sender.TargetObject as NativeMethods.IProvidePropertyBuilder; if (target != null ) { string s = null; bool builderValid = GetBuilderGuidString(target, sender.DISPID, ref s, new int[1]); // we hide IDispatch props by default, we we need to force showing them here if (sender.CanShow && builderValid) { if (typeof(UnsafeNativeMethods.IDispatch).IsAssignableFrom(sender.PropertyType)) { attrEvent.Add(BrowsableAttribute.Yes); } } } } private void OnGetTypeConverterAndTypeEditor(Com2PropertyDescriptor sender, GetTypeConverterAndTypeEditorEvent gveevent) { object target = sender.TargetObject; if (target is NativeMethods.IProvidePropertyBuilder) { NativeMethods.IProvidePropertyBuilder propBuilder = (NativeMethods.IProvidePropertyBuilder)target; int[] pctlBldType = new int[1]; string guidString = null; if (GetBuilderGuidString(propBuilder, sender.DISPID, ref guidString, pctlBldType)) { gveevent.TypeEditor = new Com2PropertyBuilderUITypeEditor(sender, guidString, pctlBldType[0], (UITypeEditor)gveevent.TypeEditor); } } } } } // 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
- ComponentChangedEvent.cs
- ClientTargetCollection.cs
- DbProviderConfigurationHandler.cs
- AnonymousIdentificationModule.cs
- ClosableStream.cs
- ListBoxItem.cs
- DataGridViewAutoSizeModeEventArgs.cs
- MappingException.cs
- WmlValidatorAdapter.cs
- MessagePropertyDescriptionCollection.cs
- PermissionAttributes.cs
- InplaceBitmapMetadataWriter.cs
- _FtpDataStream.cs
- SponsorHelper.cs
- ToolStripDropDownButton.cs
- Debug.cs
- TextParaClient.cs
- TextDecorationCollection.cs
- UTF7Encoding.cs
- PerformanceCountersElement.cs
- HostingEnvironmentException.cs
- DataGridTablesFactory.cs
- AbstractExpressions.cs
- StateItem.cs
- FixedSOMLineCollection.cs
- XPathCompileException.cs
- TypeGeneratedEventArgs.cs
- UrlSyndicationContent.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- TableLayoutStyleCollection.cs
- RankException.cs
- VerbConverter.cs
- DrawingImage.cs
- ReceiveContextCollection.cs
- UpdatePanel.cs
- FontUnitConverter.cs
- mda.cs
- ReadonlyMessageFilter.cs
- cookieexception.cs
- XamlClipboardData.cs
- ChannelPoolSettingsElement.cs
- Metadata.cs
- ListViewSelectEventArgs.cs
- MainMenu.cs
- Misc.cs
- ProfileGroupSettings.cs
- ImportContext.cs
- ShutDownListener.cs
- TypeBuilder.cs
- SoapFault.cs
- XmlArrayItemAttributes.cs
- DataControlFieldCollection.cs
- JsonWriterDelegator.cs
- CompositeFontFamily.cs
- wgx_commands.cs
- AssemblyLoader.cs
- ExtendedPropertyDescriptor.cs
- XmlWrappingReader.cs
- ISessionStateStore.cs
- WmlImageAdapter.cs
- SQLCharsStorage.cs
- AlphaSortedEnumConverter.cs
- WebPartConnectionsCancelVerb.cs
- HijriCalendar.cs
- DataViewSettingCollection.cs
- ColumnWidthChangedEvent.cs
- Application.cs
- OrderByQueryOptionExpression.cs
- KnownBoxes.cs
- XmlCharType.cs
- MethodBuilder.cs
- StatusBar.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- OrderedEnumerableRowCollection.cs
- Pkcs7Recipient.cs
- UTF8Encoding.cs
- ProtectedConfigurationSection.cs
- MimeMultiPart.cs
- ObjectListCommandCollection.cs
- DebugView.cs
- DomainConstraint.cs
- IDReferencePropertyAttribute.cs
- HyperLinkStyle.cs
- XmlTextEncoder.cs
- DataListCommandEventArgs.cs
- ControlDesigner.cs
- SecUtil.cs
- VectorValueSerializer.cs
- Debug.cs
- OpCellTreeNode.cs
- FileRecordSequenceHelper.cs
- UICuesEvent.cs
- ArrayElementGridEntry.cs
- WindowsListViewSubItem.cs
- SqlClientWrapperSmiStream.cs
- Internal.cs
- ContextInformation.cs
- DbConnectionFactory.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- ChangeBlockUndoRecord.cs