VirtualBox

source: vbox/trunk/src/VBox/HostDrivers/VBoxNetFlt/win/notifyobj/VBoxNetFltNotify.h@ 32767

Last change on this file since 32767 was 28800, checked in by vboxsync, 15 years ago

Automated rebranding to Oracle copyright/license strings via filemuncher

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.6 KB
Line 
1/*
2 * Copyright (C) 2008 Oracle Corporation
3 *
4 * This file is part of VirtualBox Open Source Edition (OSE), as
5 * available from http://www.virtualbox.org. This file is free software;
6 * you can redistribute it and/or modify it under the terms of the GNU
7 * General Public License (GPL) as published by the Free Software
8 * Foundation, in version 2 as it comes in the "COPYING" file of the
9 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
10 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
11 */
12/*
13 * Based in part on Microsoft DDK sample code for Sample Notify Object
14 *+---------------------------------------------------------------------------
15 *
16 * Microsoft Windows
17 * Copyright (C) Microsoft Corporation, 1992-2001.
18 *
19 * Author: Alok Sinha
20 *
21 *----------------------------------------------------------------------------
22 */
23#ifndef ___VboxNetFltNotify_h___
24#define ___VboxNetFltNotify_h___
25
26#include <windows.h>
27#include <atlbase.h>
28extern CComModule _Module; // required by atlcom.h
29#include <atlcom.h>
30#include <VBoxNetFltNotifyn.h>
31//#include <Netcfgx.h>
32
33#include "VBoxNetFltNotifyRc.h"
34
35#define VBOXNETFLTNOTIFY_ONFAIL_BINDDEFAULT false
36
37/*
38 * VboxNetFlt Notify Object used to control bindings
39 */
40class VBoxNetFltNotify :
41
42 /*
43 * Must inherit from CComObjectRoot(Ex) for reference count
44 * management and default threading model.
45 */
46 public CComObjectRoot,
47
48 /*
49 * Define the default class factory and aggregation model.
50 */
51 public CComCoClass<VBoxNetFltNotify, &CLSID_VBoxNetFltNotify>,
52
53 /*
54 * Notify Object's interfaces.
55 */
56 public INetCfgComponentControl,
57 public INetCfgComponentNotifyBinding
58{
59
60 /*
61 * Public members.
62 */
63 public:
64
65 /*
66 * Constructor
67 */
68 VBoxNetFltNotify(VOID);
69
70 /*
71 * Destructors.
72 */
73 ~VBoxNetFltNotify(VOID);
74
75 /*
76 * Notify Object's interfaces.
77 */
78 BEGIN_COM_MAP(VBoxNetFltNotify)
79 COM_INTERFACE_ENTRY(INetCfgComponentControl)
80// COM_INTERFACE_ENTRY(INetCfgComponentSetup)
81// COM_INTERFACE_ENTRY(INetCfgComponentPropertyUi)
82 COM_INTERFACE_ENTRY(INetCfgComponentNotifyBinding)
83// COM_INTERFACE_ENTRY(INetCfgComponentNotifyGlobal)
84 END_COM_MAP()
85
86 /*
87 * Uncomment the the line below if you don't want your object to
88 * support aggregation. The default is to support it
89 *
90 * DECLARE_NOT_AGGREGATABLE(CMuxNotify)
91 */
92
93 DECLARE_REGISTRY_RESOURCEID(IDR_REG_VBOXNETFLT_NOTIFY)
94
95 /*
96 * INetCfgComponentControl
97 */
98 STDMETHOD (Initialize) (
99 IN INetCfgComponent *pIComp,
100 IN INetCfg *pINetCfg,
101 IN BOOL fInstalling);
102
103 STDMETHOD (CancelChanges) ();
104
105 STDMETHOD (ApplyRegistryChanges) ();
106
107 STDMETHOD (ApplyPnpChanges) (
108 IN INetCfgPnpReconfigCallback* pICallback);
109
110 /*
111 * INetCfgNotifyBinding
112 */
113 STDMETHOD (QueryBindingPath) (
114 IN DWORD dwChangeFlag,
115 IN INetCfgBindingPath* pncbp);
116
117 STDMETHOD (NotifyBindingPath) (
118 IN DWORD dwChangeFlag,
119 IN INetCfgBindingPath* pncbp);
120
121 /*
122 * Private members.
123 */
124 private:
125
126 /*
127 * Private member variables.
128 */
129 INetCfgComponent *m_pncc; /* Our Protocol's Net Config component */
130 INetCfg *m_pnc;
131};
132
133#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette