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
- Reference.cs
- SectionRecord.cs
- SqlDependencyListener.cs
- SecurityContext.cs
- ControlBindingsCollection.cs
- TriState.cs
- ILGenerator.cs
- BindingList.cs
- QuerySetOp.cs
- XamlTypeWithExplicitNamespace.cs
- TreeBuilderXamlTranslator.cs
- ObjectContextServiceProvider.cs
- WebPartConnectionsEventArgs.cs
- SubpageParaClient.cs
- QilName.cs
- Deflater.cs
- AstTree.cs
- DataTemplateSelector.cs
- ServiceOperation.cs
- Dictionary.cs
- DbParameterCollection.cs
- HwndKeyboardInputProvider.cs
- ItemContainerGenerator.cs
- MaxMessageSizeStream.cs
- ObservableDictionary.cs
- TrackingCondition.cs
- GrammarBuilder.cs
- DataControlImageButton.cs
- SettingsBindableAttribute.cs
- NonClientArea.cs
- UdpUtility.cs
- LambdaCompiler.cs
- SqlBulkCopyColumnMappingCollection.cs
- Byte.cs
- PixelFormatConverter.cs
- Range.cs
- HtmlShimManager.cs
- embossbitmapeffect.cs
- AccessedThroughPropertyAttribute.cs
- CompositeTypefaceMetrics.cs
- CompiledRegexRunner.cs
- Button.cs
- HtmlProps.cs
- SoapUnknownHeader.cs
- PenContext.cs
- WindowsToolbarItemAsMenuItem.cs
- ConnectionsZoneDesigner.cs
- FixedSOMTableCell.cs
- ContentPlaceHolder.cs
- SchemaCollectionCompiler.cs
- ScrollableControlDesigner.cs
- HuffModule.cs
- DependsOnAttribute.cs
- AppearanceEditorPart.cs
- GuidTagList.cs
- CodeLabeledStatement.cs
- LogEntry.cs
- Decoder.cs
- ChineseLunisolarCalendar.cs
- MatrixTransform3D.cs
- PropertyChangedEventArgs.cs
- FramingDecoders.cs
- DoubleIndependentAnimationStorage.cs
- ResourceSet.cs
- WebPartHelpVerb.cs
- TableLayoutSettings.cs
- CroppedBitmap.cs
- RedistVersionInfo.cs
- XmlSchemaValidationException.cs
- Mutex.cs
- NamespaceCollection.cs
- TrustManagerPromptUI.cs
- COSERVERINFO.cs
- InstanceDescriptor.cs
- PrintPreviewGraphics.cs
- SecurityDescriptor.cs
- GenericIdentity.cs
- ImageListStreamer.cs
- MediaContextNotificationWindow.cs
- XmlNavigatorFilter.cs
- SQLMembershipProvider.cs
- TabRenderer.cs
- JsonGlobals.cs
- FlatButtonAppearance.cs
- CanonicalFormWriter.cs
- DateTimeFormatInfoScanner.cs
- HttpValueCollection.cs
- Visual.cs
- Bind.cs
- XmlILConstructAnalyzer.cs
- TextEditor.cs
- DocumentGridPage.cs
- _NTAuthentication.cs
- EncryptedKey.cs
- SpeechDetectedEventArgs.cs
- DefaultSection.cs
- PublishLicense.cs
- Array.cs
- UnsafeNetInfoNativeMethods.cs
- WebPartConnectVerb.cs