home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / source / chap03 / lst311 / lstr.h < prev   
Encoding:
C/C++ Source or Header  |  1996-09-23  |  1.1 KB  |  62 lines

  1.  
  2. #ifndef LOWERSTR_H
  3. #define LOWERSTR_H
  4.  
  5. #include <objbase.h>
  6. #include "guid.h"
  7.  
  8.  
  9. class ILowerStr    : public IUnknown
  10. {
  11. public:
  12.     virtual STDMETHODIMP  Lower(char *lpInput, char**lpOutput) = 0;
  13. };
  14.  
  15.  
  16. class IHelpLowerStr : public IUnknown
  17. {
  18. public:
  19.     virtual STDMETHODIMP HelpLower()=0;
  20. };
  21.  
  22.  
  23. class CLowerStr : public ILowerStr , public IHelpLowerStr
  24. {
  25. public:
  26.     STDMETHODIMP QueryInterface(REFIID iid, LPVOID *ppv);
  27.     STDMETHODIMP_(ULONG) AddRef();
  28.     STDMETHODIMP_(ULONG) Release();
  29.  
  30.     STDMETHODIMP Lower(char *lpString, char**lpOutput);
  31.     STDMETHODIMP HelpLower();
  32.  
  33.     CLowerStr();
  34.     ~CLowerStr();
  35.  
  36. private:
  37.     DWORD m_dwRef;
  38. };
  39.  
  40. class CLowerStrClassFactory:public IClassFactory
  41. {
  42.  
  43.   protected:
  44.     DWORD m_dwRef;
  45.  
  46.   
  47.   public:
  48.    CLowerStrClassFactory(void);
  49.    ~CLowerStrClassFactory(void);
  50.  
  51. //IUnknown
  52.    STDMETHODIMP QueryInterface (REFIID iid ,void **ppv);
  53.    STDMETHODIMP_ (ULONG) AddRef(void);
  54.    STDMETHODIMP_ (ULONG) Release(void);
  55.  
  56.    STDMETHODIMP CreateInstance(IUnknown *punkOuter,REFIID iid,void **ppv);
  57.    STDMETHODIMP LockServer(BOOL);
  58. };
  59.  
  60. #endif
  61.  
  62.