📄 cookie.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 + -