home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / source / chap04 / lst41 / lst41c.h < prev   
Encoding:
C/C++ Source or Header  |  1996-09-30  |  1.2 KB  |  60 lines

  1.  
  2. #include <objbase.h>
  3. #include "clsid.h"
  4. #include "ilst41.h"    
  5.  
  6. class CLst41;
  7.  
  8.  
  9. class CLst41I : public ILst41
  10. {
  11.   public:
  12.  
  13.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj);
  14.     STDMETHOD_(ULONG, AddRef)(THIS);
  15.     STDMETHOD_(ULONG, Release)(THIS);
  16.  
  17.     STDMETHOD_(BSTR, GetMachineName)(THIS);
  18.         
  19.     CLst41*    m_pLst41;   
  20. };
  21.  
  22.  
  23. class CLst41 : public IUnknown 
  24. {
  25.     
  26.  public:
  27.     CLst41();
  28.     ~CLst41();
  29.     static CLst41* Create();
  30.  
  31.     STDMETHOD(QueryInterface)(REFIID riid, void** ppv);
  32.     STDMETHOD_(ULONG, AddRef)(void);
  33.     STDMETHOD_(ULONG, Release)(void);
  34.                                          
  35.  private:
  36.     ULONG m_refs;            // Reference count.
  37.     IUnknown* m_disp_interface;    // Pointer to the standard dispatch object.
  38.     CLst41I* m_prog_interface;  // What a programmer sees.
  39. };
  40.  
  41.  
  42. class CLst41CF : public IClassFactory 
  43. {
  44.   public:
  45.     CLst41CF(); 
  46.     static IClassFactory * Create();
  47.     
  48.     STDMETHOD(QueryInterface)(REFIID riid, void ** ppv);
  49.     STDMETHOD_(ULONG, AddRef)(void);
  50.     STDMETHOD_(ULONG, Release)(void);
  51.  
  52.     STDMETHOD(CreateInstance)(    IUnknown * punkOuter, 
  53.                 REFIID riid, 
  54.                 void ** ppv);
  55.     STDMETHOD(LockServer)(BOOL fLock);
  56.  
  57.   private:
  58.     ULONG m_refs;
  59. };
  60.