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
- ViewSimplifier.cs
- TraceSection.cs
- HostUtils.cs
- VarRefManager.cs
- ErasingStroke.cs
- DiscoveryClientOutputChannel.cs
- JsonFormatReaderGenerator.cs
- AccessorTable.cs
- ValidationResult.cs
- FocusManager.cs
- Vector3DConverter.cs
- DesignerAutoFormatCollection.cs
- CodeConditionStatement.cs
- _SslState.cs
- GlyphRunDrawing.cs
- DisplayMemberTemplateSelector.cs
- SchemaTableColumn.cs
- VisualStyleElement.cs
- LocalizableAttribute.cs
- WebPartActionVerb.cs
- SecurityTokenValidationException.cs
- MemoryStream.cs
- XmlSchemaResource.cs
- PositiveTimeSpanValidatorAttribute.cs
- BadImageFormatException.cs
- SessionStateItemCollection.cs
- XmlSchemaRedefine.cs
- SynchronizedRandom.cs
- ResourceReferenceKeyNotFoundException.cs
- CustomAssemblyResolver.cs
- ButtonAutomationPeer.cs
- FontConverter.cs
- ValidationSummaryDesigner.cs
- DisposableCollectionWrapper.cs
- XmlCharType.cs
- InteropAutomationProvider.cs
- DateTimeFormatInfo.cs
- StringPropertyBuilder.cs
- SelectedGridItemChangedEvent.cs
- LinkedList.cs
- HttpCacheVaryByContentEncodings.cs
- IChannel.cs
- IsolatedStorageSecurityState.cs
- SchemaTypeEmitter.cs
- EmptyReadOnlyDictionaryInternal.cs
- PenLineCapValidation.cs
- DataRowView.cs
- ShaperBuffers.cs
- EntityProxyTypeInfo.cs
- SqlInternalConnectionTds.cs
- QueryExecutionOption.cs
- StylusDownEventArgs.cs
- SafeRightsManagementEnvironmentHandle.cs
- ECDsaCng.cs
- Int16AnimationBase.cs
- CompositeControl.cs
- RepeatButtonAutomationPeer.cs
- DeviceContexts.cs
- DataGridViewLinkCell.cs
- XmlSchemaGroup.cs
- XslNumber.cs
- CompositeDuplexBindingElement.cs
- MouseEventArgs.cs
- Instrumentation.cs
- StorageBasedPackageProperties.cs
- DiscoveryMessageProperty.cs
- DataGridViewRowsAddedEventArgs.cs
- TextAction.cs
- Base64Decoder.cs
- SchemaTypeEmitter.cs
- XPathDocument.cs
- MailWriter.cs
- AssociationSet.cs
- XmlSchemaInclude.cs
- WorkflowApplication.cs
- LineSegment.cs
- FontFamily.cs
- ControlPropertyNameConverter.cs
- ExpressionPrefixAttribute.cs
- PeerApplicationLaunchInfo.cs
- ToolStripPanelSelectionBehavior.cs
- KeyValueInternalCollection.cs
- CultureTableRecord.cs
- CapabilitiesState.cs
- FilterableAttribute.cs
- SQLGuid.cs
- TransformValueSerializer.cs
- ProtocolException.cs
- NamespaceEmitter.cs
- SecureEnvironment.cs
- SQLString.cs
- VisualTreeUtils.cs
- DetailsViewInsertedEventArgs.cs
- GeometryCombineModeValidation.cs
- CompressStream.cs
- XmlTextReaderImpl.cs
- MetadataException.cs
- FragmentNavigationEventArgs.cs
- CodeAccessPermission.cs
- CompiledQueryCacheKey.cs