windows-nt/Source/XPSP1/NT/shell/ext/brfcase/filesync/syncui/atoms.h
2020-09-26 16:20:57 +08:00

55 lines
1.3 KiB
C

//
// atoms.h: Atom handling
//
//
#ifndef __ATOMS_H__
#define __ATOMS_H__
///////////////////////////////////////////////////// DEFINES
// Atom Table
//
// We have our own atoms for two reasons:
//
// 1) Gives us greater flexibility for partial string searches,
// in-place string replacements, and table resize
// 2) We don't know yet if Windows' local atom tables are sharable
// in separate instances in Win32.
//
BOOL PUBLIC Atom_Init (void);
void PUBLIC Atom_Term (void);
int PUBLIC Atom_Add (LPCTSTR psz);
UINT PUBLIC Atom_AddRef(int atom);
void PUBLIC Atom_Delete (int atom);
BOOL PUBLIC Atom_Replace (int atom, LPCTSTR pszNew);
int PUBLIC Atom_Find (LPCTSTR psz);
LPCTSTR PUBLIC Atom_GetName (int atom);
BOOL PUBLIC Atom_IsPartialMatch(int atom1, int atom2);
BOOL PUBLIC Atom_Translate(int atomOld, int atomNew);
#define Atom_IsChildOf(atom1, atom2) Atom_IsPartialMatch(atom1, atom2)
#define Atom_IsParentOf(atom1, atom2) Atom_IsPartialMatch(atom2, atom1)
#define ATOM_ERR (-1)
#define Atom_IsValid(atom) (ATOM_ERR != (atom) && 0 != (atom))
#ifdef DEBUG
void PUBLIC Atom_ValidateFn(int atom);
void PUBLIC Atom_DumpAll();
#define VALIDATE_ATOM(atom) Atom_ValidateFn(atom)
#else // DEBUG
#define VALIDATE_ATOM(atom)
#endif // DEBUG
#endif // __ATOMS_H__