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

📄 cookie.h

📁 vc++6.0开发网络典型应用实例导航 1. 本光盘提供了本书中所有的实例源程序文件。 2. 附录文件夹下是Winsock 函数参考以及错误码列表
💻 H
字号:
// Cookie.h: interface for the CCookie class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COOKIE_H__BEAAB851_A59C_407A_B141_B99A8222CB67__INCLUDED_)
#define AFX_COOKIE_H__BEAAB851_A59C_407A_B141_B99A8222CB67__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define AFXS_MAX_HTTP_DATE 64

class CCookie : public CCmdTarget
{
	DECLARE_DYNCREATE(CCookie)

public:
	BOOL IsDeleted();
    CCookie(LPCSTR szName);
	CCookie(LPCSTR szName, LPCSTR szValue);
    CCookie(const CCookie& thatCookie);

    CCookie& operator=(const CCookie& thatCookie)
    {
        return Copy(thatCookie);
    }

	CCookie();
	virtual ~CCookie();

	BOOL IsEmpty()
    {
        return m_strName.IsEmpty();
    }

	BOOL SetName(LPCSTR szName);
	BOOL GetName(CString &strName);
	
	BOOL SetValue(LPCSTR szValue);
	BOOL GetValue(CString &strValue);

	BOOL AddValue(LPCSTR szName, LPCSTR szValue);
	BOOL ModifyValue(LPCSTR szName, LPCSTR szValue);
	BOOL RemoveValue(LPCSTR szName);
	void RemoveAllValues();

	BOOL AddAttribute(LPCSTR szName, LPCSTR szValue);
	BOOL ModifyAttribute(LPCSTR szName, LPCSTR szValue);
	BOOL RemoveAttribute(LPCSTR szName);
	void RemoveAllAttributes();

	BOOL SetComment(LPCSTR szComment);
	BOOL SetCommentUrl(LPCSTR szUrl);
	
	BOOL SetDiscard(BOOL bDiscard);
	BOOL SetMaxAge(UINT nMaxAge);
	void SetPort(LPCTSTR lpszPort);
	void SetExpires(LPCTSTR lpszExpires);
	void SetExpires(const SYSTEMTIME &st);

	BOOL SetVersion(UINT nVersion);

	LPCSTR Lookup(LPCSTR szName=NULL);

	void Empty();
	
	BOOL ParseValue(LPCSTR lpszCookie);
	BOOL Render(LPSTR szCookieBuffer, DWORD *pdwLen);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCookie)
	public:
	virtual void OnFinalRelease();
	//}}AFX_VIRTUAL

    // Map of name-value pairs applied to this cookie.
	CMapStringToString m_Values;

protected:
// Implementation
    BOOL RenderAttributes(CString& strAttributes);

private:
    CCookie& Copy(const CCookie& thatCookie);

protected:
	CString m_strName;
	CString m_strValue;

    // These are implementation only, use at your own risk!
    // Map of attribute-value pairs applied to this cookie.
	CMapStringToString m_Attributes;

	// Generated OLE dispatch map functions
	//{{AFX_DISPATCH(CCookie)
	afx_msg BSTR GetPath();
	afx_msg void SetPath(LPCTSTR lpszPath);
	afx_msg BSTR GetDomain();
	afx_msg void SetDomain(LPCTSTR lpszDomain);
	afx_msg BOOL GetSecure();
	afx_msg void SetSecure(BOOL bSecure);
	afx_msg DATE GetExpires();
	afx_msg void SetExpiresDate(DATE dtExpires);
	afx_msg BOOL HasKeys();
	afx_msg VARIANT GetItem(const VARIANT FAR& Key);
	afx_msg void SetItem(const VARIANT FAR& Key, const VARIANT FAR& Value);
	//}}AFX_DISPATCH
	afx_msg LPUNKNOWN GetNewEnum();
	DECLARE_DISPATCH_MAP()
	DECLARE_INTERFACE_MAP()
};


class CCookieEnum: public CCmdTarget
{   

public:
   CCookieEnum(CCookie *pCookie);
   virtual ~CCookieEnum();
   
// Attributes
private:
   CCookie *m_pCookie;
   
// Operations
public:

// Overrides
   virtual void OnFinalRelease();

// Implementation
protected:

   // Generated message map functions
   //{{AFX_MSG(CCookieEnum)
      // NOTE - the ClassWizard will add and remove member functions here.
   //}}AFX_MSG
   DECLARE_MESSAGE_MAP()
   // Generated OLE dispatch map functions
   //{{AFX_DISPATCH(CCookieEnum)
   //}}AFX_DISPATCH

public:   
	BEGIN_INTERFACE_PART(EnumVARIANT, IEnumVARIANT)
		XEnumVARIANT();
		
		// keep track of the current item
		POSITION  m_posCurrent;
		STDMETHOD(Next)(THIS_ unsigned long celt, VARIANT FAR* rgvar, unsigned long FAR* pceltFetched);
		STDMETHOD(Skip)(THIS_ unsigned long celt);
		STDMETHOD(Reset)(THIS);
		STDMETHOD(Clone)(THIS_ IEnumVARIANT FAR* FAR* ppenum);
	END_INTERFACE_PART(EnumVARIANT)    

	DECLARE_INTERFACE_MAP()   
};

#ifndef SESSION_COOKIE_NAME
	#define SESSION_COOKIE_NAME "SESSIONID"
#endif


class CSessionCookie : public CCookie  
{
public:
	virtual ~CSessionCookie()
	{
	};

	CSessionCookie()
	{
		SetName(SESSION_COOKIE_NAME);
		SetPath("/");
	}

	CSessionCookie(LPCSTR szSessionID)
	{
		SetName(SESSION_COOKIE_NAME);
		SetPath("/");
		SetSessionID(szSessionID);
	}

	BOOL SetSessionID(LPCSTR szSessionID)
	{
		ASSERT(szSessionID && szSessionID[0]);
		return SetValue(szSessionID);
	}
};
   

void SystemTimeToHttpDate(const SYSTEMTIME& st, CString &strTime);

#endif // !defined(AFX_COOKIE_H__BEAAB851_A59C_407A_B141_B99A8222CB67__INCLUDED_)

⌨️ 快捷键说明

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