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
- SerializationAttributes.cs
- CollectionViewSource.cs
- ReadOnlyMetadataCollection.cs
- KernelTypeValidation.cs
- ColorConvertedBitmap.cs
- OleDbError.cs
- shaperfactoryquerycachekey.cs
- EntityContainerEntitySet.cs
- XmlDocumentSerializer.cs
- TypeRefElement.cs
- DragEvent.cs
- ScrollBar.cs
- HttpListener.cs
- StreamingContext.cs
- Emitter.cs
- VarRemapper.cs
- PropagationProtocolsTracing.cs
- ContentPlaceHolderDesigner.cs
- CLSCompliantAttribute.cs
- ObfuscationAttribute.cs
- CharacterHit.cs
- RemoteCryptoDecryptRequest.cs
- SelectionPattern.cs
- ConsoleCancelEventArgs.cs
- CodeObjectCreateExpression.cs
- safemediahandle.cs
- NumberFunctions.cs
- ClrProviderManifest.cs
- Size.cs
- XmlValidatingReaderImpl.cs
- ContainerSelectorActiveEvent.cs
- RegularExpressionValidator.cs
- TextEditorTables.cs
- WorkflowInstanceSuspendedRecord.cs
- PreDigestedSignedInfo.cs
- ProfileParameter.cs
- ExtendedProtectionPolicyElement.cs
- DataDocumentXPathNavigator.cs
- TextDocumentView.cs
- PackagePartCollection.cs
- SimpleWebHandlerParser.cs
- DoubleAnimationUsingKeyFrames.cs
- ClientReliableChannelBinder.cs
- DataSourceXmlSubItemAttribute.cs
- RoleManagerEventArgs.cs
- XslVisitor.cs
- TcpHostedTransportConfiguration.cs
- StringDictionaryWithComparer.cs
- DeflateStreamAsyncResult.cs
- CollectionConverter.cs
- ExpressionBindingCollection.cs
- WSFederationHttpSecurityElement.cs
- SqlConnectionStringBuilder.cs
- OutputCacheProfileCollection.cs
- OrderByBuilder.cs
- Win32Native.cs
- EventLogHandle.cs
- EditorPart.cs
- QilTargetType.cs
- ControlAdapter.cs
- XmlWhitespace.cs
- SQLBinaryStorage.cs
- CompilationLock.cs
- WindowsStatusBar.cs
- DataGridViewCheckBoxColumn.cs
- InputDevice.cs
- RepeaterItemEventArgs.cs
- SHA256Cng.cs
- ActiveXSite.cs
- SecureStringHasher.cs
- StorageInfo.cs
- DefaultValueAttribute.cs
- DataGridViewCellStyleEditor.cs
- AttachedAnnotation.cs
- TreeNodeBinding.cs
- ContentControl.cs
- FormViewRow.cs
- IHttpResponseInternal.cs
- TextSegment.cs
- NumberFunctions.cs
- mongolianshape.cs
- Point3DAnimation.cs
- JapaneseLunisolarCalendar.cs
- ConsumerConnectionPoint.cs
- XMLUtil.cs
- WmfPlaceableFileHeader.cs
- XamlTreeBuilderBamlRecordWriter.cs
- StringInfo.cs
- HtmlSelectionListAdapter.cs
- PostBackOptions.cs
- RuntimeIdentifierPropertyAttribute.cs
- UnaryNode.cs
- AnimationClock.cs
- FigureParaClient.cs
- TextProperties.cs
- EntityDataSourceStatementEditorForm.cs
- Screen.cs
- ValueQuery.cs
- LinkDesigner.cs
- TableItemPatternIdentifiers.cs