home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / BOCOLE.PAK / BOLEFACT.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  3.4 KB  |  126 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectComponents
  3. // Copyright (c) 1994, 1996 by Borland International, All Rights Reserved
  4. //
  5. // $Revision:   2.4  $
  6. //
  7. //  Implements the server-side helper for allowing OLE2 to create objects 
  8. //  made available by Bolero server apps.
  9. //----------------------------------------------------------------------------
  10. #ifndef _BOLEFACT_H
  11. #define _BOLEFACT_H
  12.  
  13. #include "BOleComp.h"
  14.  
  15. class _ICLASS BOleSite;
  16. class _ICLASS BOleInProcFactory;
  17.  
  18. // class BOleFact -- OLE 2.0 Factory helper
  19. //
  20. class _ICLASS BOleFact : public BOleComponent, public IBClass
  21. {
  22. protected:
  23.     unsigned RefCnt;
  24.     BCID regId;
  25.     IBClassMgr * pObjCM;
  26.     DWORD hReg;
  27.     DWORD dwRegisterActiveObject;
  28.     CLSID id;
  29.     BOleInProcFactory FAR* pIPEFact;
  30.  
  31. public:
  32.  
  33.     BOleFact(BOleClassManager * pFact, IBUnknownMain *pOuter);
  34.     ~BOleFact();
  35.  
  36.     virtual HRESULT _IFUNC Init(BOOL fSelfEmbed, LPCOLESTR pszProgId, 
  37.                                    IBClassMgr * pCM, BCID rid);
  38.     virtual HRESULT _IFUNC Register(BOOL fSingleUse);
  39.     virtual HRESULT _IFUNC Revoke();
  40.     virtual HRESULT _IFUNC GetClassID(LPCLSID pClass);
  41.     virtual BOOL    _IFUNC IsA(REFCLSID);
  42.     virtual BOOL    _IFUNC AllowEmbedFromSelf ();
  43.     virtual HRESULT _IFUNC GetEmbeddingHelperFactory (LPUNKNOWN *ppF);
  44.     
  45.     IBClassMgr * ClassMgrGet() { return pObjCM; }
  46.     
  47.  
  48.     operator const CLSID &() const {return id;}
  49.     
  50.     // IUnknown Methods
  51.     //
  52.     DEFINE_IUNKNOWN(pObjOuter);
  53.  
  54.     virtual HRESULT _IFUNC QueryInterfaceMain(REFIID iid, LPVOID FAR* pif);
  55.  
  56.     // IClassFactory methods
  57.     //
  58.     HRESULT _IFUNC CreateInstance(IUnknown FAR* pUnk, REFIID iid, LPVOID FAR* ppv);
  59.     HRESULT _IFUNC LockServer(BOOL fLock);
  60. };
  61.  
  62.  
  63. // class BOleControlFact -- OLE 2.0 Factory helper
  64. //
  65. class _ICLASS BOleControlFact : public BOleFact, public IClassFactory2
  66. {
  67. public:
  68.  
  69.     BOleControlFact(BOleClassManager * pFact, IBUnknownMain *pOuter);
  70.     ~BOleControlFact();
  71.  
  72.     virtual HRESULT _IFUNC QueryInterfaceMain(REFIID iid, LPVOID FAR* pif);
  73.  
  74.     // IUnknown Methods
  75.     //
  76.     DEFINE_IUNKNOWN(pObjOuter);
  77.  
  78.     // IClassFactory methods
  79.     //
  80.     HRESULT _IFUNC CreateInstance(IUnknown FAR* pUnk, REFIID iid, LPVOID FAR* ppv);
  81.     HRESULT _IFUNC LockServer(BOOL fLock)      { return BOleFact::LockServer (fLock);};
  82.  
  83.     //  IClassFactory2 methods
  84.     HRESULT _IFUNC GetLicInfo (LPLICINFO pLicInfo);
  85.     HRESULT _IFUNC RequestLicKey (DWORD dwResrved, BSTR FAR* pbstrKey);
  86.     HRESULT _IFUNC CreateInstanceLic (LPUNKNOWN pUnkOuter,
  87.                      LPUNKNOWN pUnkReserved, REFIID riid, BSTR bstrKey,
  88.                      LPVOID FAR* ppvObject);
  89. };
  90.  
  91. // 
  92. // BOleInProcFactory -- Private factory used when a server object is
  93. //                      registered to be instantiated in its own container
  94. //
  95. class _ICLASS BOleInProcFactory : public BOleComponent, public IClassFactory
  96. {
  97.     public:
  98.  
  99.         BOleInProcFactory (BOleClassManager *,BOleFact FAR*, REFIID);
  100.         ~BOleInProcFactory ();
  101.  
  102.         HRESULT _IFUNC Register (BOOL);
  103.         HRESULT _IFUNC Revoke ();
  104.  
  105.         // IUnknown methods
  106.         //
  107.         virtual HRESULT _IFUNC QueryInterfaceMain (REFIID iid, LPVOID FAR* pif);
  108.         DEFINE_IUNKNOWN(pObjOuter);
  109.  
  110.     protected:
  111.  
  112.         ULONG nRef;
  113.         DWORD regCookie;
  114.         BOleFact *pRealFactory;
  115.         REFIID iidServer;
  116.  
  117.         // IClassFactory methods
  118.         //
  119.         virtual HRESULT _IFUNC CreateInstance (LPUNKNOWN pUnk, REFIID iid, 
  120.                                                       LPVOID FAR* ppv);
  121.         virtual HRESULT _IFUNC LockServer (BOOL fLock);
  122.  
  123. };
  124.  
  125. #endif
  126.