Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.1 KiB

  1. #pragma once
  2. #include "beacon.h"
  3. #include <upnp.h>
  4. class ATL_NO_VTABLE CBeaconFinder :
  5. public CComObjectRootEx <CComSingleThreadModel>,
  6. public IUPnPDeviceFinderCallback
  7. {
  8. public:
  9. BEGIN_COM_MAP(CBeaconFinder)
  10. COM_INTERFACE_ENTRY(IUPnPDeviceFinderCallback)
  11. END_COM_MAP()
  12. DECLARE_PROTECT_FINAL_CONSTRUCT();
  13. CBeaconFinder();
  14. STDMETHODIMP DeviceAdded(LONG lFindData, IUPnPDevice* pDevice);
  15. STDMETHODIMP DeviceRemoved(LONG lFindData, BSTR bstrUDN);
  16. STDMETHODIMP SearchComplete(LONG lFindData);
  17. HRESULT Initialize(HWND hCallbackWindow);
  18. private:
  19. HRESULT FindService(IUPnPDevice* pDevice, LPWSTR pszServiceName, IUPnPService** ppICSService);
  20. HRESULT FindDevice(IUPnPDevices* pDevices, LPWSTR pszDeviceType, IUPnPDevice** ppChildDevice);
  21. HRESULT FindChildDevice(IUPnPDevice* pDevice, LPWSTR pszDeviceType, IUPnPDevice** ppChildDevice);
  22. HRESULT GetServices(IUPnPDevice* pDevice, IInternetGateway** ppInternetGateway);
  23. HRESULT IsServiceMatch(IUPnPService* pService, BSTR SearchCriteria, BOOL* pbMatch);
  24. HWND m_hCallbackWindow;
  25. };