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);
        }
Example #2
0
        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);
        }