home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 Mobile / Chip_Mobile_2001.iso / palm / business / printcar / printcar.exe / src / Util / AppPreferencesOutputStream.cc < prev    next >
C/C++ Source or Header  |  2000-06-03  |  1KB  |  59 lines

  1. //
  2. //  $Id: AppPreferencesOutputStream.cc,v 1.1.1.1 2000/06/02 22:23:01 sergey Exp $
  3. //
  4.  
  5. #include <Pilot.h>
  6. #include "AppPreferencesOutputStream.h"
  7.  
  8.  
  9. namespace Util
  10. {
  11.     AppPreferencesOutputStream::AppPreferencesOutputStream():
  12.         _creatorID(0),
  13.         _preferencesID(0),
  14.         _appVersion(0)
  15.     {}
  16.  
  17.     AppPreferencesOutputStream::~AppPreferencesOutputStream()
  18.     {
  19.         close();
  20.     }
  21.  
  22.     // operations
  23.  
  24.     void AppPreferencesOutputStream::open(DWord creatorID, Word preferencesID, int appVersion)
  25.     {
  26.         close();
  27.  
  28.         _creatorID = creatorID;
  29.         _preferencesID = preferencesID;
  30.         _appVersion = appVersion;
  31.     }
  32.  
  33.     void AppPreferencesOutputStream::close()
  34.     {
  35.         if (_buffer.size() > 0)
  36.         {
  37.             PrefSetAppPreferences(_creatorID, _preferencesID, _appVersion, (void*)_buffer.lock(), _buffer.size(), true);
  38.             _buffer.unlock();
  39.  
  40.             _buffer.free();
  41.         }
  42.     }
  43.  
  44.     void AppPreferencesOutputStream::writeData(const void* data, int size)
  45.     {
  46.         if (data != 0 && size > 0)
  47.         {
  48.             int bufSize = _buffer.size();
  49.             void* bufData = _buffer.lock(bufSize+size);
  50.  
  51.             if (bufData != 0)
  52.                 MemMove((Byte*)bufData+bufSize, data, size);
  53.  
  54.             _buffer.unlock();
  55.         }
  56.     }
  57. }
  58. // namespace Util
  59.