Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2ICategorizePropertiesHandler.cs / 1305376 / COM2ICategorizePropertiesHandler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using Microsoft.Win32; [System.Security.SuppressUnmanagedCodeSecurityAttribute()] internal class Com2ICategorizePropertiesHandler : Com2ExtendedBrowsingHandler { public override Type Interface { get { return typeof(NativeMethods.ICategorizeProperties); } } private string GetCategoryFromObject(object obj, int dispid) { if (obj == null) { return null; } if (obj is NativeMethods.ICategorizeProperties) { NativeMethods.ICategorizeProperties catObj = (NativeMethods.ICategorizeProperties)obj; try { int categoryID = 0; if (NativeMethods.S_OK == catObj.MapPropertyToCategory(dispid, ref categoryID)) { string categoryName = null; switch (categoryID) { case NativeMethods.ActiveX.PROPCAT_Nil: return ""; case NativeMethods.ActiveX.PROPCAT_Misc: return SR.GetString(SR.PropertyCategoryMisc); case NativeMethods.ActiveX.PROPCAT_Font: return SR.GetString(SR.PropertyCategoryFont); case NativeMethods.ActiveX.PROPCAT_Position: return SR.GetString(SR.PropertyCategoryPosition); case NativeMethods.ActiveX.PROPCAT_Appearance: return SR.GetString(SR.PropertyCategoryAppearance); case NativeMethods.ActiveX.PROPCAT_Behavior: return SR.GetString(SR.PropertyCategoryBehavior); case NativeMethods.ActiveX.PROPCAT_Data: return SR.GetString(SR.PropertyCategoryData); case NativeMethods.ActiveX.PROPCAT_List: return SR.GetString(SR.PropertyCategoryList); case NativeMethods.ActiveX.PROPCAT_Text: return SR.GetString(SR.PropertyCategoryText); case NativeMethods.ActiveX.PROPCAT_Scale: return SR.GetString(SR.PropertyCategoryScale); case NativeMethods.ActiveX.PROPCAT_DDE: return SR.GetString(SR.PropertyCategoryDDE); } if (NativeMethods.S_OK == catObj.GetCategoryName(categoryID, CultureInfo.CurrentCulture.LCID, out categoryName)) { return categoryName; } } } catch { } } return null; } public override void SetupPropertyHandlers(Com2PropertyDescriptor[] propDesc) { if (propDesc == null) { return; } for (int i = 0; i < propDesc.Length; i++) { propDesc[i].QueryGetBaseAttributes += new GetAttributesEventHandler(this.OnGetAttributes); } } private void OnGetAttributes(Com2PropertyDescriptor sender, GetAttributesEvent attrEvent) { string cat = GetCategoryFromObject(sender.TargetObject, sender.DISPID); if (cat != null && cat.Length > 0) { attrEvent.Add(new CategoryAttribute(cat)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using Microsoft.Win32; [System.Security.SuppressUnmanagedCodeSecurityAttribute()] internal class Com2ICategorizePropertiesHandler : Com2ExtendedBrowsingHandler { public override Type Interface { get { return typeof(NativeMethods.ICategorizeProperties); } } private string GetCategoryFromObject(object obj, int dispid) { if (obj == null) { return null; } if (obj is NativeMethods.ICategorizeProperties) { NativeMethods.ICategorizeProperties catObj = (NativeMethods.ICategorizeProperties)obj; try { int categoryID = 0; if (NativeMethods.S_OK == catObj.MapPropertyToCategory(dispid, ref categoryID)) { string categoryName = null; switch (categoryID) { case NativeMethods.ActiveX.PROPCAT_Nil: return ""; case NativeMethods.ActiveX.PROPCAT_Misc: return SR.GetString(SR.PropertyCategoryMisc); case NativeMethods.ActiveX.PROPCAT_Font: return SR.GetString(SR.PropertyCategoryFont); case NativeMethods.ActiveX.PROPCAT_Position: return SR.GetString(SR.PropertyCategoryPosition); case NativeMethods.ActiveX.PROPCAT_Appearance: return SR.GetString(SR.PropertyCategoryAppearance); case NativeMethods.ActiveX.PROPCAT_Behavior: return SR.GetString(SR.PropertyCategoryBehavior); case NativeMethods.ActiveX.PROPCAT_Data: return SR.GetString(SR.PropertyCategoryData); case NativeMethods.ActiveX.PROPCAT_List: return SR.GetString(SR.PropertyCategoryList); case NativeMethods.ActiveX.PROPCAT_Text: return SR.GetString(SR.PropertyCategoryText); case NativeMethods.ActiveX.PROPCAT_Scale: return SR.GetString(SR.PropertyCategoryScale); case NativeMethods.ActiveX.PROPCAT_DDE: return SR.GetString(SR.PropertyCategoryDDE); } if (NativeMethods.S_OK == catObj.GetCategoryName(categoryID, CultureInfo.CurrentCulture.LCID, out categoryName)) { return categoryName; } } } catch { } } return null; } public override void SetupPropertyHandlers(Com2PropertyDescriptor[] propDesc) { if (propDesc == null) { return; } for (int i = 0; i < propDesc.Length; i++) { propDesc[i].QueryGetBaseAttributes += new GetAttributesEventHandler(this.OnGetAttributes); } } private void OnGetAttributes(Com2PropertyDescriptor sender, GetAttributesEvent attrEvent) { string cat = GetCategoryFromObject(sender.TargetObject, sender.DISPID); if (cat != null && cat.Length > 0) { attrEvent.Add(new CategoryAttribute(cat)); } } } } // 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
- CreateUserErrorEventArgs.cs
- SqlConnectionPoolProviderInfo.cs
- ProjectionPlan.cs
- Composition.cs
- Rijndael.cs
- SafeNativeMethods.cs
- PrinterUnitConvert.cs
- XmlIncludeAttribute.cs
- ImageFormatConverter.cs
- GridViewDeleteEventArgs.cs
- ISAPIApplicationHost.cs
- ContentType.cs
- DeflateStream.cs
- HttpApplicationFactory.cs
- _AutoWebProxyScriptEngine.cs
- ImageInfo.cs
- GenerateHelper.cs
- URL.cs
- TemplateDefinition.cs
- PropertyCollection.cs
- translator.cs
- JournalEntry.cs
- TextTreeInsertElementUndoUnit.cs
- BatchServiceHost.cs
- MissingMemberException.cs
- SiteMapProvider.cs
- CodeAttributeDeclarationCollection.cs
- XamlPathDataSerializer.cs
- DecimalAnimation.cs
- ConnectionPoint.cs
- HttpSessionStateWrapper.cs
- _FtpControlStream.cs
- SystemResources.cs
- NavigationEventArgs.cs
- FixedSOMTableRow.cs
- DeferredElementTreeState.cs
- RightsManagementPermission.cs
- MailWriter.cs
- WebPartEditorCancelVerb.cs
- DatagridviewDisplayedBandsData.cs
- ComponentResourceKey.cs
- Baml2006KeyRecord.cs
- ResourceContainer.cs
- ProxyGenerator.cs
- ItemsControlAutomationPeer.cs
- InkCollectionBehavior.cs
- FocusManager.cs
- Journaling.cs
- DataGridBeginningEditEventArgs.cs
- ComponentFactoryHelpers.cs
- InvalidOperationException.cs
- NotCondition.cs
- FastEncoderStatics.cs
- TabControl.cs
- CFStream.cs
- ListBindableAttribute.cs
- WorkflowApplicationException.cs
- FastPropertyAccessor.cs
- Rect3DValueSerializer.cs
- SetterBase.cs
- MasterPageCodeDomTreeGenerator.cs
- OutOfMemoryException.cs
- DataGridCell.cs
- RemoteWebConfigurationHostStream.cs
- AddressingVersion.cs
- Executor.cs
- EntityParameter.cs
- XmlDocumentType.cs
- WebPartUserCapability.cs
- RemotingClientProxy.cs
- StreamGeometry.cs
- DelayLoadType.cs
- MessageBuffer.cs
- MembershipSection.cs
- BaseCodeDomTreeGenerator.cs
- RichTextBox.cs
- querybuilder.cs
- SafeFileHandle.cs
- ProfileBuildProvider.cs
- WSFederationHttpBindingCollectionElement.cs
- ISCIIEncoding.cs
- AdornedElementPlaceholder.cs
- DataGridRowsPresenter.cs
- RequestCachePolicy.cs
- CFStream.cs
- XMLDiffLoader.cs
- HealthMonitoringSection.cs
- ChunkedMemoryStream.cs
- ToolStripItem.cs
- WinFormsUtils.cs
- XmlMembersMapping.cs
- PresentationTraceSources.cs
- StyleXamlTreeBuilder.cs
- CollectionViewGroup.cs
- PageWrapper.cs
- DataServiceQueryContinuation.cs
- HttpHandler.cs
- PageCatalogPart.cs
- WebBrowserSiteBase.cs
- KoreanLunisolarCalendar.cs