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
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: dfname.hxx
//
// Contents: CDfName header
//
// Classes: CDfName
//
// History: 14-May-93 DrewB Created
//
//----------------------------------------------------------------------------
#ifndef __DFNAME_HXX__
#define __DFNAME_HXX__
// A name for a docfile element
class CDfName { private: BYTE _ab[CBSTORAGENAME]; WORD _cb;
public: CDfName(void) { _cb = 0; }
inline void Set(WORD const cb, BYTE const *pb); void Set(WCHAR const *pwcs) { Set((WORD)((lstrlenW(pwcs)+1)*sizeof(WCHAR)), (BYTE const *)pwcs); } void Set(char const *psz) { Set(strlen(psz)+1, (BYTE const *)psz); }
inline void Set(CDfName const *pdfn);
CDfName(WORD const cb, BYTE const *pb) { Set(cb, pb); } CDfName(WCHAR const *pwcs) { Set(pwcs); } CDfName(char const *psz) { Set(psz); }
WORD GetLength(void) const { return _cb; } BYTE *GetBuffer(void) const { return (BYTE *) _ab; }
// Make a copy of a possibly byte-array name in a WCHAR string
void CopyString(WCHAR const *pwcs);
BOOL IsEqual(CDfName const *pdfn) const;
inline BOOL operator > (CDfName const &dfRight) const; inline BOOL operator >= (CDfName const &dfRight) const; inline BOOL operator < (CDfName const &dfRight) const; inline BOOL operator <= (CDfName const &dfRight) const; inline BOOL operator == (CDfName const &dfRight) const; inline BOOL operator != (CDfName const &dfRight) const;
inline int Compare(CDfName const &dfRight) const; inline int Compare(CDfName const *pdfRight) const; };
inline int CDfName::Compare(CDfName const &dfRight) const { int iCmp = GetLength() - dfRight.GetLength();
if (iCmp == 0) { iCmp = dfwcsnicmp((WCHAR *)GetBuffer(), (WCHAR *)dfRight.GetBuffer(), GetLength()); }
return(iCmp); }
inline int CDfName::Compare(CDfName const *pdfRight) const { return Compare(*pdfRight); }
inline BOOL CDfName::operator > (CDfName const &dfRight) const { return (Compare(dfRight) > 0); }
inline BOOL CDfName::operator >= (CDfName const &dfRight) const { return (Compare(dfRight) >= 0); }
inline BOOL CDfName::operator < (CDfName const &dfRight) const { return (Compare(dfRight) < 0); }
inline BOOL CDfName::operator <= (CDfName const &dfRight) const { return (Compare(dfRight) <= 0); }
inline BOOL CDfName::operator == (CDfName const &dfRight) const { return (Compare(dfRight) == 0); }
inline BOOL CDfName::operator != (CDfName const &dfRight) const { return (Compare(dfRight) != 0); }
inline void CDfName::Set(WORD const cb, BYTE const *pb) { if (pb) memcpy(_ab, pb, cb); _cb = cb; }
inline void CDfName::Set(CDfName const *pdfn) { Set(pdfn->GetLength(), pdfn->GetBuffer()); }
#endif // #ifndef __DFNAME_HXX__
|