windows-nt/Source/XPSP1/NT/shell/ext/ratings/common/istr.cpp
2020-09-26 16:20:57 +08:00

105 lines
1.9 KiB
C++

/*****************************************************************/
/** Microsoft Windows for Workgroups **/
/** Copyright (C) Microsoft Corp., 1991-1992 **/
/*****************************************************************/
/*
istr.cxx
NLS/DBCS-aware string class: string index class
This file contains the core implementation of the string
indexer class.
FILE HISTORY:
gregj 03/30/93 Removed ISTR to separate module
*/
#include "npcommon.h"
extern "C"
{
#include <netlib.h>
}
#if defined(DEBUG)
static const CHAR szFileName[] = __FILE__;
#define _FILENAME_DEFINED_ONCE szFileName
#endif
#include <npassert.h>
#include <npstring.h>
/*******************************************************************
NAME: ISTR::ISTR
SYNOPSIS: ISTR construction methods
ENTRY:
ISTR::ISTR( ISTR& ) - Copy passed ISTR (both string and positional
info is copied).
ISTR::ISTR( IB, NLS_STR& ) - Private, create an ISTR with index
at IB for string NLS_STR
EXIT:
NOTES:
HISTORY:
johnl 11/20/90 Created
********************************************************************/
ISTR::ISTR( const ISTR& istr )
{
*this = istr;
}
ISTR::ISTR( const NLS_STR& nls )
{
*this = nls;
}
/*******************************************************************
NAME: ISTR::operator=
SYNOPSIS: Copy operator for the ISTR class
ENTRY:
EXIT:
NOTES:
HISTORY:
Johnl 11/20/90 Created
gregj 03/30/93 Allow assignment of NLS_STR to ISTR
********************************************************************/
ISTR& ISTR::operator=( const ISTR& istr )
{
_ibString = istr._ibString;
SetPNLS( (NLS_STR *) istr.QueryPNLS() );
#ifdef DEBUG
_usVersion = istr._usVersion;
#endif
return *this;
}
ISTR& ISTR::operator=( const NLS_STR& nls )
{
_ibString = 0;
SetPNLS( &nls );
#ifdef DEBUG
_usVersion = nls.QueryVersion();
#endif
return *this;
}