Program telewizyjny z powiadamiaczem.
Zadaniem wtyczek funkcyjnych jest poszerzenie możliwości aplikacji, poprzez dodanie obsługi nowych funkcji do programu "Program TV".
Wtyczki funkcyjne są to biblioteki dll, które znajdują się w podfolderze Wtyczki w katalogu głównym aplikacji Program TV. Nazwy tych plików składają się z unikatowej nazwy (wykorzystywanej do dwukierunkowego komunikowania się aplikacji z wtyczką) i rozrzerzenia dll. Biblioteki te muszą udostępniać dwie funkcje: Start i Koniec. Dodatkowo biblioteki mogą również opcjonalnie udostępniać dwie funkcję: Menu i Ustawienia.
Wtyczki mogą również wysyłać do aplikacji trzy rodzaje komunikatów.
Funkcja ta służy do wystartowania wtyczki zaraz po uruchomieniu programu lub po dodaniu wtyczki w ustawieniach programu. Po zakończeniu działania tej funkcji uruchamiana jest bezpośrednio przez program funkcja Koniec, która sprawdza czy wtyczka może być zwolniona z pamięci.
Funkcja ta wykorzystywana jest do odczytania pełnej nazwy wtyczki, do uruchomienia automatycznych działań wykonywanych przez wtyczkę i do dodania do menu wtyczek własnych wpisów poprzez przesyłanie odpowiednich komunikatów.
Parametry wejściowe to: | ||
TApplication *Host | - | uchwyt aplikacji wykorzystywany do scalenia wtyczki z aplikacją (na przykład aby na pasku zadań nie było dodatkowego przycisku wtyczki). |
HWND Komunikaty | - | uchwyt okna aplikacji do którego należy kierować komunikaty zdarzeń. |
String KomunikatID | - | unikalna nazwa pliku wtyczki, bez rozszerzenia (służy do zidentyfikowania wtyczki). |
Funkcja zwraca wartość typu char* którą jest rozszerzona nazwa wtyczki wyświetlana na liście wtyczek w oknie ustawień aplikacji.
Funkcja ta służy do sprawdzania przez aplikację czy wtyczka może zostać zwolniona z pamięci oraz do natychmiastowego zatrzymywania działającej wtyczki i jest ona uruchamiana przez aplikację bezpośrednio po poleceniu Start i Menu. Uruchomiona powinna być również po zakończeniu wszystkich wykonywanych działań przez wtyczkę (wątkach, timerach czy też po zamknięciu okna ustawień wtyczki) poprzez przesłanie do aplikacji komunikatu z informacją którą wtyczkę należy zwolnić z pamięci, aby program wywołał tę funkcję ponownie dla danej wtyczki.
Parametrem wejściowym funkcji jest zmienna Zamknij typu bool. Dla wartości true funkcja ta powinna natychmiast przerwać wszystkie działania wtyczki i zwolnić wszystkie zasoby oraz zwrócić wartość "0". Natomiast dla wartości false funkcja ta powinna zwrócić jedną z trzech wartości: "0", "1" lub "2" oraz gdy tylko to możliwe powinna zwolnić wszystkie zasoby.
Funkcja zwraca wartość typu int: | ||
0 | - | gdy wtyczka ma być zwolniona z pamięci. |
1 | - | gdy wtyczka nadal pracuje. |
2 | - | gdy wtyczka ma być zwolniona z pamięci oraz gdy program ma zostać zamknięty i uruchomiony skrypt Instaluj.bat. |
Funkcja ta służy do obsługi poleceń dodanych do menu wtyczek, a więc musi być obecna tylko wtedy, gdy do menu wtyczek dodano jakiś wpis. Po zakończeniu działania tej funkcji uruchamiana jest bezpośrednio przez program funkcja Koniec, która sprawdza czy wtyczka może być zwolniona z pamięci.
Parametry wejściowe to: | ||
TApplication *Host | - | uchwyt aplikacji wykorzystywany do scalenia wtyczki z aplikacją (na przykład aby na pasku zadań nie było dodatkowego przycisku wtyczki). |
HWND Komunikaty | - | uchwyt okna aplikacji do którego należy kierować komunikaty zdarzeń. |
String KomunikatID | - | unikalna nazwa pliku wtyczki, bez rozszerzenia (służy do zidentyfikowania wtyczki). |
String Polecenie | - | identyfikator polecenia - jest to unikatowa nazwa polecenia w menu wtyczek, która wywołała tę funkcję (składa się z KomunikatID i numeru polecenia). |
Jeżeli wtyczka zawiera okno ustawień, to funkcja ta służy do otwarcja tego okna, po kliknięciu nazwy wtyczki, na liście wtyczek, w ustawieniach programu.
Parametry wejściowe to: | ||
TApplication *Host | - | uchwyt aplikacji wykorzystywany do scalenia wtyczki z aplikacją (na przykład aby na pasku zadań nie było dodatkowego przycisku wtyczki). |
HWND Komunikaty | - | uchwyt okna aplikacji do którego należy kierować komunikaty zdarzeń. |
String KomunikatID | - | unikalna nazwa pliku wtyczki, bez rozszerzenia (służy do zidentyfikowania wtyczki). |
Jest to komunikat informujący aplikację, że ma ona wykonać obsługę funkcji Koniec.
SendMessage(Komunikaty,WM_COPYDATA,1,(int)&Komunikat);
gdzie Komunikat jest strukturą danych którą tworzy się następująco:
char* Dane=KomunikatID.c_str(); COPYDATASTRUCT Komunikat; Komunikat.dwData=0; Komunikat.cbData=strlen(Dane)+1; Komunikat.lpData=Dane;
Zmienne Komunikaty i KomunikatID uzyskuje się z funkcji która zapoczątkowała dane działanie to jest z parametrów funkcji Start, Menu lub Ustawienia.
Jest to komunikat informujący aplikację, że ma ona dodać wpis do menu wtyczek.
SendMessage(Komunikaty,WM_COPYDATA,2,(int)&Komunikat);
gdzie Komunikat jest strukturą danych którą tworzy się następująco:
String Dane;
Dane=KomunikatID+"|"+"Nazwa polecenia w głównym menu wtyczek";
Dane=KomunikatID+"|"+ "Numer polecenia do którego należy podpiąć aktualne polecenie"+ "|"+"Nazwa polecenia w podmenu";
COPYDATASTRUCT Komunikat;
Komunikat.dwData=1; // Numer polecenia (zwiększany dla każdego następnego polecenia).
Komunikat.cbData=strlen(Dane.c_str())+1;
Komunikat.lpData=Dane.c_str();
Zmienne Komunikaty i KomunikatID uzyskuje się z funkcji która zapoczątkowała dane działanie to jest z parametrów funkcji Start, Menu lub Ustawienia.
Jest to komunikat informujący aplikację, że ma ona wyświetlić wiadomość w obszarze powiadomień.
SendMessage(Komunikaty,WM_COPYDATA,3,(int)&Komunikat);
gdzie Komunikat jest strukturą danych którą tworzy się następująco:
String Dane;
Dane="Tekst dymka ikonki";
Dane="Tytuł balonika"+"|"+"Tekst balonika";
Dane="Tekst dymka ikonki"+"|"+"Tytuł balonika"+"|"+"Tekst balonika";
COPYDATASTRUCT Komunikat; Komunikat.dwData=0; Komunikat.cbData=strlen(Dane.c_str())+1; Komunikat.lpData=Dane.c_str();
Zmienną Komunikaty uzyskuje się z funkcji która zapoczątkowała dane działanie to jest z parametrów funkcji Start, Menu lub Ustawienia.
Stronę tę odwiedziło 2000 użytkowników. |