home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Graphics / Graphics.zip / gotch175.zip / src / rstring.h < prev    next >
C/C++ Source or Header  |  2002-03-29  |  2KB  |  67 lines

  1. /***
  2.  This file belongs to the Gotcha! distribution.
  3.  Copyright (C) 1998-2002 Thorsten Thielen <thth@gmx.net>
  4.  
  5.  This program is free software; you can redistribute it and/or modify
  6.  it under the terms of the GNU General Public License as published by
  7.  the Free Software Foundation; either version 2 of the License, or
  8.  (at your option) any later version.
  9.  
  10.  This program is distributed in the hope that it will be useful,
  11.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  GNU General Public License for more details.
  14.  
  15.  You should have received a copy of the GNU General Public License
  16.  along with this program; if not, write to the Free Software
  17.  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  ***/
  19.  
  20. #ifndef _RSTRING_H_
  21. #define _RSTRING_H_
  22.  
  23. #define OS2EMX_PLAIN_CHAR
  24.  
  25. #include <os2.h>
  26.  
  27. #define RSTR(id)  ResourceString(id)
  28.  
  29. class ResourceString
  30. {
  31. public:
  32.     ResourceString (ULONG Id);
  33.  
  34.     ResourceString (const ResourceString &rstr)
  35.     {
  36.         SavedId      = rstr.SavedId;
  37.         BlockPointer = rstr.BlockPointer;
  38.         psz          = rstr.psz;
  39.     }
  40.  
  41.     operator unsigned char * ()  { return ((unsigned char *) psz); }
  42.     operator char * ()           { return ((char *) psz); }
  43.  
  44.     ResourceString & operator= (const ResourceString &rstr)
  45.     {
  46.         SavedId      = rstr.SavedId;
  47.         BlockPointer = rstr.BlockPointer;
  48.         psz          = rstr.psz;
  49.         return (*this);
  50.     }
  51.  
  52.     static VOID  Module (HMODULE hmod) { ResourceString::hmod = hmod; }
  53.  
  54. protected:
  55.     static HMODULE  Module (VOID) { return hmod; }
  56.  
  57. private:
  58.     ULONG   SavedId;
  59.  
  60.     PVOID   BlockPointer;
  61.     PSZ     psz;
  62.  
  63.     static HMODULE      hmod;
  64. };
  65.  
  66. #endif
  67.