Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corp., 1991 **/ /**********************************************************************/
/*
strlst.hxx String list class: definition
class STRLIST: handles a list of strings. useful when API return a list of string values separated by certain characters. we can convert this to a STRLIST which is then our canonical form and use ITER_STRLIST below iterate over the STRLIST. Derived using the collection class (SLIST).
class ITER_STRLIST: used to iterate over the STRLIST above.
FILE HISTORY: chuckc 1-Jan-1991 Added STRLIST. terryk 11-Jul-1991 Add the fDestroy parameter in the constructors KeithMo 23-Oct-1991 Added forward references. beng 17-Jun-1992 Removed the single-string ctors */
#ifndef _STRLST_HXX_
#define _STRLST_HXX_
#include "string.hxx"
#include "slist.hxx"
//
// Forward references.
//
DLL_CLASS STRLIST; DLL_CLASS ITER_STRLIST;
DECL_SLIST_OF(NLS_STR,DLL_BASED);
/*************************************************************************
NAME: STRLIST
SYNOPSIS: String list object, used in conjunction with NLS_STR and ITER_STRLIST.
INTERFACE: STRLIST() - ctor ~STRLIST() - dtor
WriteToBuffer() Writes the contents of STRLIST to PSZ format, using separators specified by pszSep. QueryBufferSize() Query the number of bytes required by WriteToBuffer()
USES: NLS_STR
CAVEATS: The fDestroy variable in the constructor is used as a flag to indicate whether the caller wants to let the class destructor to destroy the list elements or the caller will do it himself. The default value is TRUE - the class will do the memory free.
HISTORY: chuckc 03-Jan-1991 Created beng 26-Apr-1991 Replaced CB with INT terryk 15-Jul-1991 Add the fDestroy parameter to the ctor such that the destructor will not try to delete the element at dtor time. beng 17-Jun-1992 Removed single string ctors
**************************************************************************/
DLL_CLASS STRLIST: public SLIST_OF(NLS_STR) { friend class ITER_STRLIST;
public: STRLIST( BOOL fDestroy = TRUE ); STRLIST(const TCHAR * pszSrc, const TCHAR * pszSep, BOOL fDestroy = TRUE); STRLIST(const NLS_STR & nlsSrc, const NLS_STR & nlsSep, BOOL fDestroy = TRUE ); ~STRLIST();
INT WriteToBuffer( TCHAR * pszDest, INT cbDest, TCHAR *pszSep ); INT QueryBufferSize( TCHAR *pszSep );
private: VOID CreateList(const TCHAR * pszSrc, const TCHAR * pszSep); };
/*************************************************************************
NAME: ITER_STRLIST
SYNOPSIS: String list iterator, used in conjunction with NLS_STR and STRLIST.
INTERFACE: ITER_STRLIST( ) Declare an iterator using strl. ITER_STRLIST( ) Declare an iterator using an existing iterator. ~ITER_STRLIST() Destructor (also see ITER_SL, since we inherit all its public members)
HISTORY: chuckc 03-Jan-1991 Created
**************************************************************************/
DLL_CLASS ITER_STRLIST: public ITER_SL_OF(NLS_STR) { public: ITER_STRLIST( STRLIST & strl ); ITER_STRLIST( const ITER_STRLIST & iter_strl ); ~ITER_STRLIST(); };
#endif // _STRLST_HXX_
|