home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / po7_win / object10 / oraobji.h < prev    next >
C/C++ Source or Header  |  1994-12-21  |  3KB  |  88 lines

  1. /* Copyright (c) Oracle Corporation 1994.  All Rights Reserved */
  2.  
  3. /*
  4.     This source code is provided as a debugging aid for developers
  5.     who have purchased Oracle Objects for OLE    .  Please see the
  6.     online help for documentation of these classes.
  7. */
  8.  
  9. /*
  10.     Oracle Objects for OLE     C++ Classes
  11.     
  12.     This file is the header for some internal utilities and the
  13.     internally used OOLEvar class.
  14.                            
  15.     CREATED    ********   11/22/94
  16.  
  17. */
  18.  
  19. #ifndef ORAOBJI_ORACLE
  20. #define ORAOBJI_ORACLE
  21.  
  22. // ----- String Utilities -----------------------------------------------
  23. char *OObjectAllocString(const char *instr);
  24. char *OObjectAllocStringLen(char *instr, unsigned int len);
  25. unsigned int OObjectStringLen(char *str); 
  26. void OObjectFreeString(char *instr);
  27.  
  28. // ----- Global Memory -----------------------------------------------
  29. struct oglobal
  30. {
  31.     unsigned char ogtried;  // tried to initialize ole
  32.     unsigned char ogdid;    // 1: we initialized, 2: we didn't (but it's there), 0: no ole
  33. };
  34.  
  35. // routine for maintaining global state per process
  36. oglobal *ssoo4wGetGlobal(void);
  37. // routine to free global state
  38. void ssoo4wfree();
  39.  
  40. // routine to check that OLE is initialized
  41. oboolean CheckOLE(void);
  42.  
  43. // ----- OOLEvar -----------------------------------------------
  44. class OOLEvar
  45. {
  46. public:
  47.     OOLEvar(void);
  48.     ~OOLEvar(void);
  49.     
  50.     // to make sure compiler doesn't supply these:
  51.     OOLEvar(const OOLEvar &other);  // copy constructor
  52.     OOLEvar &operator=(const OOLEvar &other);
  53.     
  54.     oboolean IsEqual(OOLEvar *other);
  55.     
  56.     oboolean IsNull(void) const;
  57.     
  58.     // access to variant
  59.     VARIANT *GetVariant(void);
  60.     void HaveSetVariant(void);  // to tell OOLEvar that VARIANT has been touched
  61.     
  62.     // set values
  63.     oresult SetValue(int val);
  64.     oresult SetValue(long val);
  65.     oresult SetValue(double val);
  66.     oresult SetValue(const char *val);
  67.     oresult SetValue(VARIANT *val); 
  68.     oresult Clear(void);
  69.     
  70.     // get values
  71.     oresult GetValue(int *val);
  72.     oresult GetValue(long *val);
  73.     oresult GetValue(double *val);
  74.     oresult GetValue(const char **val);
  75.     
  76.     // get length of current string result
  77.     unsigned int GetStringLength(void) const;
  78.     
  79. private:
  80.     VARIANT  m_mainv;       // where we store our copy of the data
  81.     VARIANT  m_convertedv;  // storage of most recently converted copy of data
  82.     VARIANT *m_pmain;       // pointer to m_mainv
  83.     VARIANT *m_pconv;       // pointer to m_convertedv
  84.     char    m_isconv;     // TRUE when m_converted has a copy of m_main
  85. };
  86.  
  87. #endif
  88.