⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pppoenotify.h

📁 pppoe client
💻 H
字号:
// PPPOENotify.h : Declaration of the CPPPOENotify

#pragma once
#include "resource.h"       // main symbols

#include "netcfgn.h"

#include "Notify.h"


// CPPPOENotify

class ATL_NO_VTABLE CPPPOENotify : 
	public CComObjectRootEx<CComMultiThreadModel>,
	public CComCoClass<CPPPOENotify, &CLSID_PPPOENotify>,
	public IDispatchImpl<IPPPOENotify, &IID_IPPPOENotify, &LIBID_NotifyLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,	public INetCfgComponentControl,	//public INetCfgComponentPropertyUi,	public INetCfgComponentNotifyBinding,	public INetCfgComponentNotifyGlobal,
	public INetCfgComponentSetup
{
public:
	CPPPOENotify();

DECLARE_REGISTRY_RESOURCEID(IDR_PPPOENOTIFY)


BEGIN_COM_MAP(CPPPOENotify)
	COM_INTERFACE_ENTRY(IPPPOENotify)
	COM_INTERFACE_ENTRY(IDispatch)	COM_INTERFACE_ENTRY(INetCfgComponentControl)	COM_INTERFACE_ENTRY(INetCfgComponentSetup)	//COM_INTERFACE_ENTRY(INetCfgComponentPropertyUi)	COM_INTERFACE_ENTRY(INetCfgComponentNotifyBinding)	COM_INTERFACE_ENTRY(INetCfgComponentNotifyGlobal)
END_COM_MAP()


	DECLARE_PROTECT_FINAL_CONSTRUCT()

public:
	// for INetCfgComponentControl
	STDMETHOD (Initialize)(IN INetCfgComponent* pIComp,IN INetCfg* pINetCfg,IN BOOL fInstalling);
	STDMETHOD (ApplyRegistryChanges)();
	STDMETHOD (ApplyPnpChanges)(IN INetCfgPnpReconfigCallback* pICallback);
	STDMETHOD (CancelChanges)();

	// for INetCfgComponentSetup
	STDMETHOD (ReadAnswerFile)(IN PCWSTR szAnswerFile,IN PCWSTR szAnswerSections);
	STDMETHOD (Upgrade)(IN DWORD dwSetupFlags,IN DWORD dwUpgradeFromBuildNo);
	STDMETHOD (Install)(IN DWORD dwSetupFlags);
	STDMETHOD (Removing)();

	// for INetCfgComponentPropertyUi
	//STDMETHOD (QueryPropertyUi)(IN IUnknown* pUnk);
	//STDMETHOD (SetContext)(IN IUnknown* pUnk);
	//STDMETHOD (MergePropPages)(IN OUT DWORD* pdwDefPages,OUT LPBYTE* pahpspPrivate,OUT UINT* pcPrivate,IN HWND hwndParent,OUT PCWSTR* pszStartPage);
	//STDMETHOD (ValidateProperties)(IN HWND hWndSheet);
	//STDMETHOD (CancelProperties)();
	//STDMETHOD (ApplyProperties)();

	// for INetCfgComponentNotifyBinding
	STDMETHOD (QueryBindingPath)(IN DWORD dwChangeFlag,IN INetCfgBindingPath* pncbp);
	STDMETHOD (NotifyBindingPath)(IN DWORD dwChangeFlag,IN INetCfgBindingPath* pncbp);

	// for INetCfgComponentNotifyGlobal
	STDMETHOD (GetSupportedNotifications)(OUT DWORD* pdwNotificationFlag);
	STDMETHOD (SysQueryBindingPath)(IN DWORD dwChangeFlag,IN INetCfgBindingPath* pncbp);
	STDMETHOD (SysNotifyBindingPath)(IN DWORD dwChangeFlag,IN INetCfgBindingPath* pncbp);
	STDMETHOD (SysNotifyComponent)(IN DWORD dwChangeFlag,IN INetCfgComponent* pncbp);

	HRESULT FinalConstruct()
	{
		return S_OK;
	}
	
	void FinalRelease() 
	{
	}

	//LRESULT OnInitDialog(IN HWND hWnd);	//LRESULT OnOk(IN HWND hWnd);	//LRESULT OnCancel(IN HWND hWnd);

private:
	//BOOL FindDevice(IN LPCTSTR pszHardwareId);
	//BOOL InstallRootEnumeratedDriver(IN LPCTSTR pszHardwareId,IN LPCTSTR pszInfPath,OUT PBOOL pRebootRequired OPTIONAL);
	HRESULT FindInstance (GUID &guidInstance,INetCfgComponent **ppnccMiniport);
	HRESULT InstallMiniport();
	HRESULT RemoveMiniport();
private:
	INetCfgComponent*   m_pNetCfgComponent;	INetCfg*            m_pNetCfg;
	IUnknown*           m_pUnkContext;
	GUID				m_guidMiniport;
	DWORD				m_dwChangeType;
	static DWORD const	InstallDriver = 0;
	static DWORD const	RemoveDriver = 1;
};

OBJECT_ENTRY_AUTO(__uuidof(PPPOENotify), CPPPOENotify)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -