Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2ICategorizePropertiesHandler.cs / 1 / 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
- RestHandler.cs
- XmlAttribute.cs
- Size.cs
- LineMetrics.cs
- DirectoryNotFoundException.cs
- LinqDataSourceInsertEventArgs.cs
- ActivitySurrogate.cs
- ElementUtil.cs
- _NativeSSPI.cs
- DiscriminatorMap.cs
- FontFamilyIdentifier.cs
- VirtualDirectoryMappingCollection.cs
- FileClassifier.cs
- TabControl.cs
- SQLBytesStorage.cs
- ObfuscationAttribute.cs
- ToolZone.cs
- GPPOINT.cs
- ProtocolElementCollection.cs
- DbConnectionFactory.cs
- CqlErrorHelper.cs
- DataSourceDescriptorCollection.cs
- TypeResolvingOptionsAttribute.cs
- MemberDescriptor.cs
- OdbcErrorCollection.cs
- DataListItemCollection.cs
- SyndicationDeserializer.cs
- PeerDuplexChannelListener.cs
- PointAnimation.cs
- SqlCommandAsyncResult.cs
- TreeViewItemAutomationPeer.cs
- MimePart.cs
- XmlResolver.cs
- CngAlgorithmGroup.cs
- DropTarget.cs
- PageParser.cs
- BlurBitmapEffect.cs
- ObjectDataSourceEventArgs.cs
- BinaryCommonClasses.cs
- PathFigureCollection.cs
- SafeRightsManagementPubHandle.cs
- LayoutDump.cs
- OSEnvironmentHelper.cs
- XmlSchemaDocumentation.cs
- VisualSerializer.cs
- StateChangeEvent.cs
- TaiwanCalendar.cs
- NavigatingCancelEventArgs.cs
- BooleanFunctions.cs
- Vector3dCollection.cs
- EntitySqlQueryBuilder.cs
- FlowLayout.cs
- FixedSOMImage.cs
- SmtpNegotiateAuthenticationModule.cs
- XmlHierarchyData.cs
- Point3DConverter.cs
- ComplexTypeEmitter.cs
- SqlRetyper.cs
- TdsParserStateObject.cs
- ArrayTypeMismatchException.cs
- CustomAttributeBuilder.cs
- ExtensionWindowHeader.cs
- NetworkStream.cs
- PerfService.cs
- Base64Encoder.cs
- MultitargetUtil.cs
- Message.cs
- DSASignatureFormatter.cs
- EventToken.cs
- RequestCacheManager.cs
- NamespaceQuery.cs
- Converter.cs
- KeyEvent.cs
- PenLineCapValidation.cs
- ControlBuilderAttribute.cs
- Compiler.cs
- PageFunction.cs
- MemberInfoSerializationHolder.cs
- ChannelManagerHelpers.cs
- DataBoundControl.cs
- ToolStripRenderEventArgs.cs
- UnsafeNativeMethods.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- BypassElement.cs
- Activator.cs
- CodeAttributeDeclaration.cs
- PerformanceCounterPermissionEntryCollection.cs
- DispatchOperationRuntime.cs
- ScrollPatternIdentifiers.cs
- DefaultSection.cs
- ImageListStreamer.cs
- LinqDataSourceHelper.cs
- SiteMapNodeItem.cs
- DrawingState.cs
- Odbc32.cs
- InputLangChangeEvent.cs
- Utils.cs
- IndicFontClient.cs
- PathData.cs
- ChannelSinkStacks.cs