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

📄 copppoenotify.h

📁 pppoe client
💻 H
字号:
// COPPPOENotify.h : Declaration of the CCOPPPOENotify

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

#include "netcfgn.h"

#include "CoNotify.h"


// CCOPPPOENotify

class ATL_NO_VTABLE CCOPPPOENotify : 
	public CComObjectRootEx<CComMultiThreadModel>,
	public CComCoClass<CCOPPPOENotify, &CLSID_COPPPOENotify>,
	public IDispatchImpl<ICOPPPOENotify, &IID_ICOPPPOENotify, &LIBID_CoNotifyLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
	public INetCfgComponentControl,	//public INetCfgComponentPropertyUi,	public INetCfgComponentNotifyBinding,	public INetCfgComponentNotifyGlobal,
	public INetCfgComponentSetup
{
public:
	CCOPPPOENotify();

DECLARE_REGISTRY_RESOURCEID(IDR_COPPPOENOTIFY)


BEGIN_COM_MAP(CCOPPPOENotify)
	COM_INTERFACE_ENTRY(ICOPPPOENotify)
	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()

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

public:
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);

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(COPPPOENotify), CCOPPPOENotify)

⌨️ 快捷键说明

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