blob: a74631bafc949d5086103e37728ba599544fa501 [file] [log] [blame]
henrike@webrtc.orgf7795df2014-05-13 18:00:26 +00001/*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef WEBRTC_BASE_WINFIREWALL_H_
12#define WEBRTC_BASE_WINFIREWALL_H_
13
14#ifndef _HRESULT_DEFINED
15#define _HRESULT_DEFINED
16typedef long HRESULT; // Can't forward declare typedef, but don't need all win
17#endif // !_HRESULT_DEFINED
18
19struct INetFwMgr;
20struct INetFwPolicy;
21struct INetFwProfile;
22
23namespace rtc {
24
25//////////////////////////////////////////////////////////////////////
26// WinFirewall
27//////////////////////////////////////////////////////////////////////
28
29class WinFirewall {
30 public:
31 WinFirewall();
32 ~WinFirewall();
33
34 bool Initialize(HRESULT* result);
35 void Shutdown();
36
37 bool Enabled() const;
38 bool QueryAuthorized(const char* filename, bool* authorized) const;
39 bool QueryAuthorizedW(const wchar_t* filename, bool* authorized) const;
40
41 bool AddApplication(const char* filename, const char* friendly_name,
42 bool authorized, HRESULT* result);
43 bool AddApplicationW(const wchar_t* filename, const wchar_t* friendly_name,
44 bool authorized, HRESULT* result);
45
46 private:
47 INetFwMgr* mgr_;
48 INetFwPolicy* policy_;
49 INetFwProfile* profile_;
50};
51
52//////////////////////////////////////////////////////////////////////
53
54} // namespace rtc
55
56#endif // WEBRTC_BASE_WINFIREWALL_H_