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
- XmlSerializer.cs
- BigIntegerStorage.cs
- TextRangeSerialization.cs
- Binding.cs
- StreamFormatter.cs
- Selection.cs
- ColorIndependentAnimationStorage.cs
- StateDesigner.Layouts.cs
- SamlAuthenticationStatement.cs
- DefaultValueConverter.cs
- ellipse.cs
- EventLogPermissionEntryCollection.cs
- TextRangeBase.cs
- SerialErrors.cs
- PageContentAsyncResult.cs
- DrawingAttributesDefaultValueFactory.cs
- SqlStream.cs
- GroupItemAutomationPeer.cs
- SqlTopReducer.cs
- TypeUnloadedException.cs
- QilBinary.cs
- WindowsRegion.cs
- LocatorManager.cs
- TypeElementCollection.cs
- TextEditorSpelling.cs
- UnauthorizedAccessException.cs
- PaginationProgressEventArgs.cs
- nulltextnavigator.cs
- TrackingWorkflowEventArgs.cs
- HMAC.cs
- FileDialog.cs
- HttpCapabilitiesEvaluator.cs
- DataMemberFieldEditor.cs
- DataServiceRequestOfT.cs
- DriveNotFoundException.cs
- DataGridViewCellMouseEventArgs.cs
- RawContentTypeMapper.cs
- ResourcePart.cs
- Currency.cs
- TypeDescriptorContext.cs
- Console.cs
- LicenseManager.cs
- Descriptor.cs
- SoapProcessingBehavior.cs
- IsolatedStoragePermission.cs
- TextFormatter.cs
- PointF.cs
- SectionRecord.cs
- _PooledStream.cs
- LockedActivityGlyph.cs
- CounterSampleCalculator.cs
- ToolStripManager.cs
- EdmTypeAttribute.cs
- KeySplineConverter.cs
- ChtmlLinkAdapter.cs
- CompositeFontInfo.cs
- MeasureItemEvent.cs
- SimpleType.cs
- APCustomTypeDescriptor.cs
- AnimationTimeline.cs
- Rect3D.cs
- RadioButton.cs
- HandlerFactoryCache.cs
- UnknownWrapper.cs
- EncryptedType.cs
- RSAOAEPKeyExchangeDeformatter.cs
- GridLength.cs
- ExternalCalls.cs
- UrlMappingsSection.cs
- TraceFilter.cs
- DocumentViewerHelper.cs
- AtomicFile.cs
- SeverityFilter.cs
- ErrorTableItemStyle.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- ActivatedMessageQueue.cs
- MetadataCollection.cs
- ButtonField.cs
- DataServiceHostWrapper.cs
- NameValuePair.cs
- XmlLoader.cs
- CodeGotoStatement.cs
- CssStyleCollection.cs
- xmlglyphRunInfo.cs
- AutomationPatternInfo.cs
- Marshal.cs
- TextCompositionManager.cs
- ChangeProcessor.cs
- FontNamesConverter.cs
- NamespaceTable.cs
- DragCompletedEventArgs.cs
- TextRange.cs
- OutputCacheSettingsSection.cs
- DataTemplateSelector.cs
- GlobalizationAssembly.cs
- RegexStringValidator.cs
- CompositeScriptReference.cs
- AttachmentService.cs
- SharedUtils.cs
- IpcServerChannel.cs