70 lines
2.7 KiB
C++
70 lines
2.7 KiB
C++
#pragma once
|
|
|
|
#include "stdafx.h"
|
|
#include <windows.h>
|
|
#include "resource.h"
|
|
#include "beacon.h"
|
|
#include "winsock2.h"
|
|
|
|
#define WM_APP_TRAYMESSAGE WM_APP
|
|
#define WM_APP_ADDBEACON WM_APP+1 // wParam: unused, lParam: IInternetGateway*
|
|
#define WM_APP_REMOVEBEACON WM_APP+2 // wParam: unused, lParam: unused
|
|
#define WM_APP_SOCKET_NOTIFICATION WM_APP+3
|
|
#define WM_APP_GETBEACON WM_APP+4
|
|
|
|
|
|
class CICSTrayIcon : public CWindowImpl<CICSTrayIcon>
|
|
{
|
|
|
|
public:
|
|
BEGIN_MSG_MAP(CICSTrayIcon)
|
|
MESSAGE_HANDLER(WM_CREATE, OnCreate)
|
|
MESSAGE_HANDLER(WM_CLOSE, OnClose)
|
|
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
|
|
MESSAGE_HANDLER(WM_APP_TRAYMESSAGE, OnTrayMessage)
|
|
MESSAGE_HANDLER(WM_APP_ADDBEACON, OnAddBeacon)
|
|
MESSAGE_HANDLER(WM_APP_REMOVEBEACON, OnRemoveBeacon)
|
|
MESSAGE_HANDLER(WM_APP_SOCKET_NOTIFICATION, OnSocketNotification)
|
|
MESSAGE_HANDLER(WM_APP_GETBEACON, OnGetBeacon)
|
|
COMMAND_ID_HANDLER(IDM_TRAYICON_STATUS, OnStatus)
|
|
COMMAND_ID_HANDLER(IDM_TRAYICON_PROPERTIES, OnProperties)
|
|
COMMAND_ID_HANDLER(IDM_TRAYICON_CONNECT, OnConnect)
|
|
COMMAND_ID_HANDLER(IDM_TRAYICON_DISCONNECT, OnDisconnect)
|
|
END_MSG_MAP()
|
|
|
|
CICSTrayIcon();
|
|
~CICSTrayIcon();
|
|
|
|
private:
|
|
HRESULT GetInternetGateway(IInternetGateway** ppInternetGateway);
|
|
HRESULT ShowTrayIcon(UINT uID);
|
|
HRESULT HideTrayIcon(UINT uID);
|
|
HRESULT StartSearch(void);
|
|
|
|
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnEndSession(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnTrayMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnAddBeacon(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnRemoveBeacon(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnSocketNotification(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnGetBeacon(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnStatus(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
LRESULT OnProperties(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
LRESULT OnConnect(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
LRESULT OnDisconnect(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
|
|
IInternetGateway* m_pInternetGateway;
|
|
HRESULT m_hShowIconResult;
|
|
IUPnPDeviceFinder* m_pDeviceFinder;
|
|
LONG m_lSearchCookie;
|
|
SOCKET m_DummySocket;
|
|
|
|
BOOL m_bShowingProperties;
|
|
BOOL m_bShowingStatus;
|
|
DWORD m_dwRegisterClassCookie;
|
|
BOOL m_bFileVersionsAccepted;
|
|
};
|
|
|