Я пытаюсь открыть и запустить событие клиенту VBA. Пока что на стороне клиента VBA это событие открыто, и я вижу, что метод обработки событий метода добавлен в мой класс модулей, однако метод обработки событий VBA не срабатывает. По какой-то причине, когда отладка события равна нулю. Модификация моего кода синхронно тоже не помогла.
Для записи я проверил другие вопросы SO, но они не помогли.
Любые хорошие ответы будут оценены.
[ComVisible(true)]
[Guid("56C41646-10CB-4188-979D-23F70E0FFDF5")]
[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces(typeof(IWebEvents))]
[ProgId("MyAssembly.MyClass")]
public class MyClass : ServicedComponent, IMyClass
{
public string _address { get; private set; }
public string _filename { get; private set; }
[DispId(4)]
public void DownloadFileAsync(string address, string filename)
{
_address = address;
_filename = filename;
System.Net.WebClient wc = new System.Net.WebClient();
Task.Factory.StartNew(() => wc.DownloadFile(_address, _filename))
.ContinueWith((t) =>
{
if (null != this.OnDownloadCompleted)
OnDownloadCompleted();
});
}
public event OnDownloadCompletedEventHandler OnDownloadCompleted;
}
[ComVisible(false)]
public delegate void OnDownloadCompletedEventHandler();
[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IWebEvents
{
[DispId(1)]
void OnDownloadCompleted();
}
Это хороший концерт для вас, всех охотников за головами, 200 рецензий.