Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не клеится событиями 
:(
    Опции темы
Guest
Дата 10.11.2003, 16:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Короче победилась ента ошибка withstupid.gif
Заменил
[ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), GuidAttribute("A7B88841-A812-11cf-8011-00A0C90A8F78")]
на
[Guid("A7B88841-A812-11cf-8011-00A0C90A8F78")]
public interface IDCCMan {}
и использовал
FIDCCMan = Activator.CreateInstance(tmpIDCCManType) as CSyncPocketLib.IDCCMan;
Спасибо.
Но надо еще проверить работу событий.
  Вверх
Unregistered
Дата 10.11.2003, 16:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Скажи, мне что на каждое событие IDCCManSink писать делегат?
[CODE]
public delegate void DelegateLogIpAddr(uint dwIpAddr);
public delegate void DelegateLogTerminated();
public delegate void DelegateLogActive();
public delegate void DelegateLogInactive();
public delegate void DelegateLogAnswered();
public delegate void DelegateLogListen();
public delegate void DelegateLogDisconnection();
public delegate void DelegateLogError();

[Guid("A7B88840-A812-11cf-8011-00A0C90A8F78")]
public interface IDCCManSink
{
event DelegateLogIpAddr EventLogIpAddr;
void OnLogIpAddr(uint dwIpAddr);
event DelegateLogTerminated EventLogTerminated;
void OnLogTerminated();
event DelegateLogActive EventLogActive;
void OnLogActive();
event DelegateLogInactive EventLogInactive;
void OnLogInactive();
event DelegateLogAnswered EventLogAnswered;
void OnLogAnswered();
event DelegateLogListen EventLogListen;
void OnLogListen();
event DelegateLogDisconnection EventLogDisconnection;
void OnLogDisconnection();
event DelegateLogError EventLogDisconnection;
void OnLogError();
}
  Вверх
stab
Дата 10.11.2003, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Цитата
Скажи, мне что на каждое событие IDCCManSink писать делегат?


нет, я бы так сделал:

public delegate void DelegateLogIpAddr(uint dwIpAddr);
public delegate void DelegateGenericLog();

[Guid("A7B88840-A812-11cf-8011-00A0C90A8F78")]
public interface IDCCManSink
{
event DelegateLogIpAddr EventLogIpAddr;
void OnLogIpAddr(uint dwIpAddr);
event DelegateGenericLog EventLogTerminated;
void OnLogTerminated();
event DelegateGenericLog EventLogActive;
void OnLogActive();
event DelegateGenericLog EventLogInactive;
void OnLogInactive();

.
.
.

}


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Unregistered
Дата 10.11.2003, 17:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так, а в классе как описать ??
Извини за такие вопросы, но не врубаюсь в MSDN-ое описание.
  Вверх
stab
Дата 10.11.2003, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Объясни какую роль этот интерфейс выполняет или ссылку дай где почитать, а то так ни че не могу точно сказать.



--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Unregistered
Дата 10.11.2003, 18:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











  Вверх
stab
Дата 11.11.2003, 04:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



вроде так:

Код

public interface IDCCManSink
{
void OnLogIpAddr(uint dwIpAddr);
void OnLogTerminated();
void OnLogActive();
void OnLogInactive();
void OnLogAnswered();
void OnLogListen();
void OnLogDisconnection();
void OnLogError();
}

public delegate void DelegateLogIpAddr(uint dwIpAddr);
public delegate void DelegateGenericLog();

public class CDCCManSink: IDCCManSink
{

public event DelegateLogIpAddr OnLogIpAddrEvent;
void OnLogIpAddr(uint dwIpAddr)
{
 if (OnLogIpAddrEvent != null) OnLogIpAddrEvent(dwIpAddr);
}

public event DelegateGenericLog OnLogTerminatedEvent;
void OnLogTerminated()
{
 if (OnLogTerminatedEvent != null) OnLogTerminatedEvent();
}
.
.
.
}



и перед передачей в Advise

CDCCManSink DCCManSink = new CDCCManSink();
.... настройка событий
FDCCMan.Advise(DCCManSink, ptr)

или если у тебя сам компонент будет реализовывать IDCCManSink способом описанным выше, тогда просто FDCCMan.Advise(this, ptr)


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Unregistered
Дата 11.11.2003, 10:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Advise у меня проходит. Мне не понятно следующее:
когда я кладу компонент на форму, то в инспекторе объектов появляются события OnLogIpAddrEvent, OnLogTerminatedEvent... а при 2-ом клике в редакторе кода
Код

private void cTestComp1_OnLogAnsweredEvent()
{
this.Text = "Status: " + cTestComp1.NewStatusConnection; // мой код
}

Так вот упоминания OnLogIpAddr или OnLogTerminated нет. Может этого не хватает?
  Вверх
Guest
  Дата 12.11.2003, 11:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Все в общем-то получилось после следующего объявлении интерфейса
Код

[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("A7B88840-A812-11cf-8011-00A0C90A8F78")]
public interface IDCCManSink
{
void OnLogIpAddr(uint dwIpAddr);
void OnLogTerminated();  
void OnLogActive();  
void OnLogInactive();  
void OnLogAnswered();  
void OnLogListen();  
void OnLogDisconnection();  
void OnLogError();
}

Дело в том, что IDCCManSink - это CОМ интерфейс.
Всем спасибо, особенно cully exclamation.gif
  Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0927 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.