Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AttributeCollection.cs
- PolyQuadraticBezierSegment.cs
- HttpPostedFile.cs
- TreeNode.cs
- WindowsTitleBar.cs
- WriteableBitmap.cs
- NegatedCellConstant.cs
- SamlAuthorityBinding.cs
- DynamicMethod.cs
- OrderByExpression.cs
- PopOutPanel.cs
- BaseTemplateParser.cs
- DataObjectFieldAttribute.cs
- oledbmetadatacolumnnames.cs
- Misc.cs
- WasEndpointConfigContainer.cs
- XPathBinder.cs
- CollectionViewGroup.cs
- EventLogHandle.cs
- MexTcpBindingCollectionElement.cs
- PermissionListSet.cs
- SettingsPropertyWrongTypeException.cs
- UserControl.cs
- Attributes.cs
- NotifyIcon.cs
- DisplayMemberTemplateSelector.cs
- ImageSourceValueSerializer.cs
- SafeFileMappingHandle.cs
- WebServiceMethodData.cs
- DataGridViewLinkColumn.cs
- DragDrop.cs
- LocalizabilityAttribute.cs
- AtomEntry.cs
- SecureUICommand.cs
- SqlDependencyListener.cs
- ValueSerializerAttribute.cs
- ArrayWithOffset.cs
- ReadOnlyHierarchicalDataSource.cs
- ContractTypeNameCollection.cs
- FormViewPageEventArgs.cs
- XXXInfos.cs
- FormatSettings.cs
- ContractListAdapter.cs
- Math.cs
- CreateCardRequest.cs
- WebPartConnectionsCloseVerb.cs
- DataSourceExpression.cs
- CharacterHit.cs
- EntityCommandCompilationException.cs
- WorkflowServiceBehavior.cs
- MailAddress.cs
- TrackingProfile.cs
- ActivityExecutionFilter.cs
- METAHEADER.cs
- ClientProxyGenerator.cs
- SequentialActivityDesigner.cs
- CodeDesigner.cs
- AsnEncodedData.cs
- SingletonInstanceContextProvider.cs
- HtmlForm.cs
- DataContractJsonSerializerOperationBehavior.cs
- DesigntimeLicenseContextSerializer.cs
- TextRunTypographyProperties.cs
- SectionRecord.cs
- ListCollectionView.cs
- StreamMarshaler.cs
- XmlNullResolver.cs
- SerializationAttributes.cs
- FrugalMap.cs
- Compilation.cs
- metadatamappinghashervisitor.cs
- DebugView.cs
- RowType.cs
- DataRelationPropertyDescriptor.cs
- RegionIterator.cs
- AutomationIdentifierGuids.cs
- Positioning.cs
- ParserContext.cs
- KoreanLunisolarCalendar.cs
- SqlDelegatedTransaction.cs
- WebPartAuthorizationEventArgs.cs
- SerializationAttributes.cs
- unsafenativemethodsother.cs
- ItemCheckEvent.cs
- GridViewRow.cs
- WorkflowRuntime.cs
- ping.cs
- GlobalEventManager.cs
- FixUpCollection.cs
- BitmapFrameEncode.cs
- CryptoConfig.cs
- Translator.cs
- XdrBuilder.cs
- NamedPermissionSet.cs
- DataGrid.cs
- Substitution.cs
- XmlAtomicValue.cs
- ForwardPositionQuery.cs
- dbdatarecord.cs
- ThreadSafeList.cs