1 /*
2    Copyright 2009 Last.fm Ltd.
3       - Primarily authored by Max Howell, Jono Cole and Doug Mansell
4 
5    This file is part of liblastfm.
6 
7    liblastfm is free software: you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation, either version 3 of the License, or
10    (at your option) any later version.
11 
12    liblastfm is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with liblastfm.  If not, see <http://www.gnu.org/licenses/>.
19 */
20 #ifndef WMISINK_WIN_H
21 #define WMISINK_WIN_H
22 
23 #include "WbemCli.h"
24 
25 // Sink object for WMI NDIS notifications
26 class WmiSink : public IWbemObjectSink
27 {
28     UINT m_cRef;
29 
30 public:
31     WmiSink(class NdisEvents *callback);
32     ~WmiSink();
33 
34     // IUnknown members
35     STDMETHODIMP         QueryInterface(REFIID, LPVOID *);
36     STDMETHODIMP_(ULONG) AddRef(void);
37     STDMETHODIMP_(ULONG) Release(void);
38 
39     // IWbemObjectSink
40     STDMETHODIMP Indicate(long, IWbemClassObject**);
41     STDMETHODIMP SetStatus(long, HRESULT, BSTR, IWbemClassObject *);
42 
43     void disconnect();
44 
45 private:
46     class NdisEvents *m_callback;
47 };
48 
49 #endif