public int GetCompatibleEventHandlers( string pszClassName, string pszObjectTypeName, string pszNameOfEvent, out int pcMembers, IntPtr ppbstrEventHandlerNames, IntPtr ppbstrMemberIDs) { IEnumerable <Tuple <string, string> > membersAndIds = null; var uiThreadOperationExecutor = ComponentModel.GetService <IUIThreadOperationExecutor>(); uiThreadOperationExecutor.Execute( "Intellisense", defaultDescription: "", allowCancellation: false, showProgress: false, action: c => membersAndIds = ContainedLanguageCodeSupport.GetCompatibleEventHandlers(GetThisDocument(), pszClassName, pszObjectTypeName, pszNameOfEvent, c.UserCancellationToken)); pcMembers = membersAndIds.Count(); CreateBSTRArray(ppbstrEventHandlerNames, membersAndIds.Select(t => t.Item1)); CreateBSTRArray(ppbstrMemberIDs, membersAndIds.Select(t => t.Item2)); return(VSConstants.S_OK); }
public int GetCompatibleEventHandlers( string pszClassName, string pszObjectTypeName, string pszNameOfEvent, out int pcMembers, IntPtr ppbstrEventHandlerNames, IntPtr ppbstrMemberIDs ) { IEnumerable <Tuple <string, string> > membersAndIds = null; var waitIndicator = this.ComponentModel.GetService <IWaitIndicator>(); waitIndicator.Wait( "Intellisense", allowCancel: false, action: c => membersAndIds = ContainedLanguageCodeSupport.GetCompatibleEventHandlers( GetThisDocument(), pszClassName, pszObjectTypeName, pszNameOfEvent, c.CancellationToken ) ); pcMembers = membersAndIds.Count(); CreateBSTRArray(ppbstrEventHandlerNames, membersAndIds.Select(t => t.Item1)); CreateBSTRArray(ppbstrMemberIDs, membersAndIds.Select(t => t.Item2)); return(VSConstants.S_OK); }