Autor Wątek: Kontrolka wysyłania wiadomości  (Przeczytany 2240 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Kontrolka wysyłania wiadomości
« dnia: Maj 27, 2011, 13:01:02 pm »
1. Teraz jest tak:
  • Wyślij/ENTER
  • WTW_EVENT_CHATWND_BEFORE_MSG_PROC
  • Wyczyszczenie "edit'a" od wysyłania
Czy mogło by być tak?:
  • Wyślij/ENTER
  • Wyczyszczenie "edit'a" od wysyłania
  • WTW_EVENT_CHATWND_BEFORE_MSG_PROC

2. Brakuje API do ustawiania/pobierania zawartości kontrolki wysyłania, nadal przydałoby się to co zaproponowałem pół roku temu -> klik. Wiem, że można przy pomocy WinApi, ale to niewygodne.

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Kontrolka wysyłania wiadomości
« Odpowiedź #1 dnia: Maj 27, 2011, 15:12:41 pm »
1. Nie mogło by, wyczyszczenie edita następuje po tym jak wtyczka (albo coś z hooka) potwierdzi że wysłało/zjadło;
2. A po sooo?

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: Kontrolka wysyłania wiadomości
« Odpowiedź #2 dnia: Maj 27, 2011, 16:17:12 pm »
1. W takim razie, czy możesz dodać nowy event WTW_EVENT_CHATWND_AFTER_MSG_PROC z wP=wtwMessageDef*, które wywoływałoby się po zjedzeniu wiadomości przez jakąś wtyczkę/hook i wyczyszczeniu edit'a?
2. Żeby nie hook'ować tworzenia i niszczenia każdego okna rozmowy, nie przechowywać listy wszystkich otwartych okien wraz z ich kontaktami, nie konwertować UTF-16 <-> UTF-8.

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Kontrolka wysyłania wiadomości
« Odpowiedź #3 dnia: Maj 27, 2011, 18:16:07 pm »
1. WTW_EVENT_ON_CHATWND_MSG_SENT
2. Dodane

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: Kontrolka wysyłania wiadomości
« Odpowiedź #4 dnia: Maj 28, 2011, 11:35:31 am »
Dzięki za wprowadzenie zmian, niestety nowe funkcje nie do końca działają ;)

WTW_CHATWND_INPUT_TEXT_SET działa, z WTW_CHATWND_INPUT_TEXT_GET mam problem:
wtwChatWndText text;
text.contactInfo = info->contact;

// to dziala
text.buffer.pBuffer = NULL; // get the buffer size
text.buffer.bufferSize = -1;
wtw->fnCall(WTW_CHATWND_INPUT_TEXT_GET, reinterpret_cast<WTW_PARAM>(&text), NULL); // S_OK, w bufferSize potrzebny rozmiar

// to nie
text.buffer.pBuffer = new wchar_t[1024]; // get text, probowalem bufferSize, wiekszych wartosci i to samo
text.buffer.bufferSize = 1024;
HRESULT res = wtw->fnCall(WTW_CHATWND_INPUT_TEXT_GET, reinterpret_cast<WTW_PARAM>(&text), NULL); // zawsze E_HANDLE - za maly bufor?
delete [] text.buffer.pBuffer;

A jeśli chodzi o WTW_EVENT_ON_CHATWND_MSG_SENT, to nie wywołuje się jeśli jakiś (np mój) hook zje wiadomość (zwróci BMP_NO_PROCESS).

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Kontrolka wysyłania wiadomości
« Odpowiedź #5 dnia: Maj 28, 2011, 14:20:08 pm »
1. Oh, faktycznie, chyba poprawione;
2. No, event po poprawnym wysłaniu ;P

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: Kontrolka wysyłania wiadomości
« Odpowiedź #6 dnia: Maj 28, 2011, 21:16:05 pm »
1. Ok, WTW_CHATWND_INPUT_TEXT_GET już działa spoko, dzięki.

2. Jeśli chciałbym zobaczyć czy wiadomość została poprawnie wysłana (przez co rozumiem, że mówisz o obsłudze przez wtyczkę protokołu) to mogę to zrobić w WTW_EVENT_CHATWND_BEFORE_MSG_DISP1 i tam sprawdzić czy wiadomość jest outgoing. Sensem istnienia tego eventu jest właśnie wykrywanie wszystkich "zjedzeń" wiadomości ;)

edit: dzięki, teraz już wszystko działa :)
« Ostatnia zmiana: Maj 30, 2011, 09:54:08 am wysłana przez mucha »

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Kontrolka wysyłania wiadomości
« Odpowiedź #7 dnia: Maj 28, 2011, 22:09:50 pm »
2. W następnej nightly/stabilnej będzie reagowało w obu wypadkach;