Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2ComponentEditor.cs / 1305376 / COM2ComponentEditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System.Runtime.Remoting; using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System; using System.Collections; using Microsoft.Win32; using System.Windows.Forms.Design; internal class Com2ComponentEditor : WindowsFormsComponentEditor { public static bool NeedsComponentEditor(object obj) { if (obj is NativeMethods.IPerPropertyBrowsing) { // check for a property page Guid guid = Guid.Empty; int hr = ((NativeMethods.IPerPropertyBrowsing)obj).MapPropertyToPage(NativeMethods.MEMBERID_NIL, out guid); if ((hr == NativeMethods.S_OK) && !guid.Equals(Guid.Empty)) { return true; } } if (obj is NativeMethods.ISpecifyPropertyPages) { try { NativeMethods.tagCAUUID uuids = new NativeMethods.tagCAUUID(); try { ((NativeMethods.ISpecifyPropertyPages)obj).GetPages(uuids); if (uuids.cElems > 0) { return true; } } finally { if (uuids.pElems != IntPtr.Zero) { Marshal.FreeCoTaskMem(uuids.pElems); } } } catch { } return false; } return false; } [ SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters") // This was shipped in Everett. ] public override bool EditComponent(ITypeDescriptorContext context, object obj, IWin32Window parent) { IntPtr handle = (parent == null ? IntPtr.Zero : parent.Handle); // try to get the page guid if (obj is NativeMethods.IPerPropertyBrowsing) { // check for a property page Guid guid = Guid.Empty; int hr = ((NativeMethods.IPerPropertyBrowsing)obj).MapPropertyToPage(NativeMethods.MEMBERID_NIL, out guid); if (hr == NativeMethods.S_OK) { if (!guid.Equals(Guid.Empty)) { object o = obj; SafeNativeMethods.OleCreatePropertyFrame(new HandleRef(parent, handle), 0, 0, "PropertyPages", 1, ref o, 1, new Guid[]{guid}, Application.CurrentCulture.LCID, 0, IntPtr.Zero); return true; } } } if (obj is NativeMethods.ISpecifyPropertyPages) { bool failed = false; Exception failureException; try { NativeMethods.tagCAUUID uuids = new NativeMethods.tagCAUUID(); try { ((NativeMethods.ISpecifyPropertyPages)obj).GetPages(uuids); if (uuids.cElems <= 0) { return false; } } catch { return false; } try { object o = obj; SafeNativeMethods.OleCreatePropertyFrame(new HandleRef(parent, handle), 0, 0, "PropertyPages", 1, ref o, uuids.cElems, new HandleRef(uuids, uuids.pElems), Application.CurrentCulture.LCID, 0, IntPtr.Zero); return true; } finally { if (uuids.pElems != IntPtr.Zero) { Marshal.FreeCoTaskMem(uuids.pElems); } } } catch (Exception ex1) { failed = true; failureException = ex1; } if (failed) { String errString = SR.GetString(SR.ErrorPropertyPageFailed); IUIService uiSvc = (context != null) ? ((IUIService) context.GetService(typeof(IUIService))) : null; if (uiSvc == null) { RTLAwareMessageBox.Show(null, errString, SR.GetString(SR.PropertyGridTitle), MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0); } else if (failureException != null) { uiSvc.ShowError(failureException, errString); } else { uiSvc.ShowError(errString); } } } return false; } } } // 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
- DiscoveryMessageSequence11.cs
- SplitterCancelEvent.cs
- ObjectNavigationPropertyMapping.cs
- SymmetricAlgorithm.cs
- WebPartConnection.cs
- ResetableIterator.cs
- Image.cs
- NamespaceInfo.cs
- PageBuildProvider.cs
- EditorAttributeInfo.cs
- ExtenderControl.cs
- TextParagraphView.cs
- TreeNodeBindingCollection.cs
- MatrixStack.cs
- HandleTable.cs
- MetafileHeaderEmf.cs
- ImageListStreamer.cs
- Quaternion.cs
- RpcCryptoRequest.cs
- PnrpPeerResolver.cs
- HashMembershipCondition.cs
- CompositeControlDesigner.cs
- CopyOfAction.cs
- MembershipAdapter.cs
- ViewService.cs
- MenuCommandService.cs
- Rotation3D.cs
- OleDbCommandBuilder.cs
- BaseCAMarshaler.cs
- Int32AnimationUsingKeyFrames.cs
- GridViewRowPresenter.cs
- errorpatternmatcher.cs
- XmlRootAttribute.cs
- AnnouncementInnerClientCD1.cs
- ListSortDescription.cs
- ListViewCommandEventArgs.cs
- PageSetupDialog.cs
- COM2PropertyBuilderUITypeEditor.cs
- SequentialActivityDesigner.cs
- SQLBytes.cs
- ParallelQuery.cs
- BitmapCodecInfo.cs
- DbConvert.cs
- TemplateColumn.cs
- FloatUtil.cs
- _Win32.cs
- OutOfProcStateClientManager.cs
- ChangeInterceptorAttribute.cs
- StrokeSerializer.cs
- ListItemCollection.cs
- ValidationSummaryDesigner.cs
- DesignerGenericWebPart.cs
- ToolStripSplitButton.cs
- WpfMemberInvoker.cs
- ComponentCollection.cs
- DataGridView.cs
- SizeConverter.cs
- TransformConverter.cs
- BlurBitmapEffect.cs
- Domain.cs
- EventTrigger.cs
- SimpleApplicationHost.cs
- BuildManagerHost.cs
- SendMailErrorEventArgs.cs
- CodeIdentifier.cs
- PropertyInformation.cs
- StorageSetMapping.cs
- HitTestDrawingContextWalker.cs
- SecurityDocument.cs
- XmlILStorageConverter.cs
- InputMethodStateTypeInfo.cs
- PrtCap_Public_Simple.cs
- MethodSet.cs
- RuleSetCollection.cs
- FlagsAttribute.cs
- WebPartRestoreVerb.cs
- Qualifier.cs
- TextRange.cs
- WrappedReader.cs
- XsltQilFactory.cs
- UndoManager.cs
- SafeMemoryMappedFileHandle.cs
- PtsCache.cs
- SecurityUtils.cs
- NgenServicingAttributes.cs
- ByteConverter.cs
- PauseStoryboard.cs
- InteropBitmapSource.cs
- BatchStream.cs
- PropertyTabChangedEvent.cs
- DataRecordInfo.cs
- BinaryUtilClasses.cs
- LinqDataSourceValidationException.cs
- OleDbException.cs
- ClientType.cs
- PropertyChange.cs
- TargetException.cs
- TemplatedMailWebEventProvider.cs
- FileDialog_Vista_Interop.cs
- TextLineResult.cs