Что может привести к тому, что компонент COM будет зарегистрирован (показан в разделе COM визуальной студии), но не виден в офисных компонентах ActiveX? - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь добавить пользовательский компонент ActiveX к слайду PowerPoint, я пробовал много вещей, моя версия PowerPoint 32-битная, теперь я пытаюсь сделать его максимально простым. Проект AnyCPU и .net 4.7.

VSTO не соответствует моим потребностям, поэтому это не вариант (насколько я могу судить, он не позволяет добавлять пользовательские элементы управления в слайды, которые мне нужны)

[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("87622EEA-5A6A-4F1B-A56A-AC0F88603EF6")]
public interface IBasicActiveXSampleInterface
{
    string testOne();
}

[ClassInterface(ClassInterfaceType.None)]
[Guid("B2B334B3-2785-40C6-A3B9-1CEF9D7D4D94")]
[ProgId("EKATONXSampleProg")]
public class BasicActiveXSample : IBasicActiveXSampleInterface
{
    public string testOne()
    {
        return "test 1234";
    }
}

Также объявлено на уровне сборки:

[assembly: ComVisible(true)]

Я отключил регистрацию для COM в свойствах проекта и добавил событие postbuild, думая, что это может быть проблема битности, поэтому проект будет зарегистрированс помощью обоих .net 4 regasm (framework и framework 64).

Компонент отображается в списке компонентов COM при добавлении ссылки в Visual Studio, но независимо от того, что я делаю, он не будет отображаться в режиме разработки Powerpoint в разделедругие элементы управления (все же другие элементы управления работают просто отлично, например, я могу добавить медиаплеер к слайду).

Редактировать: конечная цель - создать видимый элемент управления winform для размещения содержимого WPF, но как только яУ меня будет элемент управления ActiveX, написанный на C #, я буду чувствовать себя как дома, я попытался пойти на это с самого начала, следуя скудным учебникам (и довольно многоo документация) по теме, все не удалось, за исключением того, что мой элемент управления отображался в списке случайным образом и падал при добавлении с ошибкой, говорящей, что powerpoint не может прочитать реестр.

Список страниц, которые я просмотрел и воспроизвелбезрезультатно:

https://www.codeguru.com/csharp/.net/net_general/comcom/article.php/c16257/Create-an-ActiveX-using-a-Csharp-Usercontrol.htm

https://codedocu.com/Office-365/Office/COM-Controls/Code_colon_-Create-your-own-ActiveX-Component-in-Visual-Studio-2017-and-Office-2016-365?2075

https://codedocu.com/Details_mobile?d=2382&z=1&t=Create+C%23+COM+Control+for+Office

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...