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

📄 warmmcnodeauthnt.h

📁 ftpserver very good sample
💻 H
字号:
/** */#ifndef WAR_MMC_NODE_AUTH_NT_H#define WAR_MMC_NODE_AUTH_NT_H/* SYSTEM INCLUDES *//* PROJECT INCLUDES */#ifndef WAR_MMC_BASE_NODE_H#   include "WarMmcBaseNode.h"#endif#ifndef WAR_PROP_PAGE_NT_AUTH_H#   include "PropPageNtAuth.h"#endif#ifndef WAR_MMC_NODE_NT_USER_H#   include "WarMmcNodeNtUser.h"#endif/* LOCAL INCLUDES *//* FORWARD REFERENCES */#ifdef __cplusplusextern "C" {#endif/****************** BEGIN OLD STYLE C spesific ********//****************** END OLD STYLE C spesific **********/#ifdef __cplusplus }#endif/****************** BEGIN C++ spesific ****************/#ifdef __cplusplusclass WarMmcNodeAuthNt : public WarMmcBaseNode<WarMmcNodeAuthNt> {public:    // LIFECYCLE        /**    * Default constructor.    */    WarMmcNodeAuthNt(const war_registrypath_t& regNode)    {        mRegKey.Open(HKEY_LOCAL_MACHINE, regNode, KEY_ALL_ACCESS);    }         /**    * Destructor.    */    ~WarMmcNodeAuthNt(void) {}        // OPERATORS        // OPERATIONS          HRESULT OnSelect(IConsole *spConsole, IComponent* pComponent)	{		IConsoleVerb *pConsoleVerb;		HRESULT hr = spConsole->QueryConsoleVerb(&pConsoleVerb);		_ASSERT(SUCCEEDED(hr));		hr = pConsoleVerb->SetVerbState(MMC_VERB_RENAME, ENABLED, TRUE);		_ASSERT(SUCCEEDED(hr));		hr = pConsoleVerb->SetVerbState(MMC_VERB_PROPERTIES, ENABLED, TRUE);		_ASSERT(SUCCEEDED(hr));		pConsoleVerb->Release();        		return S_OK;	}    STDMETHOD(QueryPagesFor)(DATA_OBJECT_TYPES type)	{       	if (type == CCT_SCOPE || type == CCT_RESULT)			return S_OK;		return S_FALSE;	}    STDMETHOD(CreatePropertyPages)(LPPROPERTYSHEETCALLBACK lpProvider,long handle, IUnknown* pUnk,							DATA_OBJECT_TYPES type)	{		if (type == CCT_SCOPE || type == CCT_RESULT)		{			// The second parameter  to the property page class constructor			// should be true for only one page.			CPropPageNtAuth* pPage = new CPropPageNtAuth(mRegKey, handle, false, _T("NT Auth"));			HRESULT hr = lpProvider->AddPage(pPage->Create());			if(FAILED(hr))				return E_FAIL;			return S_OK;		}		return E_UNEXPECTED;	}    virtual HRESULT OnRename(IConsole* pConsole, LPOLESTR param)	{        // Try to rename the registry key...        WarCollector<TCHAR> reg_name = param;        try        {            mRegKey.Rename(reg_name.GetValue().c_str());            return Rename(pConsole, param);        }        catch(WarException)        {            return S_FALSE;        }    }    virtual HRESULT OnExpand(BOOL bExpand, IConsole *pConsole, HSCOPEITEM parent) 	{           if (bExpand)        {            CComQIPtr<IConsoleNameSpace,                 &IID_IConsoleNameSpace>                 spConsoleNameSpace(pConsole);                        WarUserAuthWin32Nt my_auth;            WarUserAuthWin32Nt::user_set_t user_set;            my_auth.Create(mRegKey.GetPath(NULL));            try            {                my_auth.EnumerateUsers(user_set);            }            catch(WarException& e)            {                CString msg;                WarCollector<TCHAR> str_msg = e.Explain();                msg.Format(_T("Failed to enumerate users.\n%s"), str_msg.GetValue().c_str());                AfxMessageBox(msg);                return E_UNEXPECTED;            }                        for(WarUserAuthWin32Nt::user_set_t::iterator P = user_set.begin()                ; P != user_set.end()                ; P++)            {                SCOPEDATAITEM sdi;                memset(&sdi, 0, sizeof(sdi));                sdi.mask = SDI_STR | SDI_PARAM | SDI_IMAGE | SDI_OPENIMAGE | SDI_PARENT;                sdi.displayname = MMC_CALLBACK;                sdi.relativeID = parent;                sdi.nImage = WAR_IL_USER;                sdi.nOpenImage = WAR_IL_USER;                sdi.lParam = (LPARAM)new WarMmcNodeNtUser((*P));                HRESULT hr = spConsoleNameSpace->InsertItem(&sdi);                if (FAILED(hr))                    return hr;            }        }        return S_OK;     }	    // ACCESS    // INQUIRY    protected:private:    WarWin32Registry mRegKey;};/* INLINE METHODS *//* EXTERNAL REFERENCES */#endif /* __cplusplus *//****************** END C++ spesific ******************/#endif  /* WAR_MMC_NODE_AUTH_NT_H_ */

⌨️ 快捷键说明

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