home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / source / chap03 / lst311 / lst31.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-20  |  709 b   |  40 lines

  1. #include <objbase.h>
  2. #include <stdio.h>
  3.  
  4. #include "lstr.h"
  5.  
  6. long g_cLock = -1;   
  7. long g_cObj = 0;                                    
  8.  
  9. //return class factory pointer
  10. STDAPI DllGetClassObject (REFCLSID rclsid,REFIID riid,void **ppv)
  11. {
  12.     HRESULT hr;
  13.     CLowerStrClassFactory *pObj;
  14.  
  15.     if (CLSID_CLowerStr!= rclsid)
  16.         return ResultFromScode(E_FAIL);
  17.  
  18.     pObj = new CLowerStrClassFactory();
  19.  
  20.     if (!pObj)
  21.         return ResultFromScode (E_OUTOFMEMORY);
  22.  
  23.     hr= pObj->QueryInterface(riid,ppv);
  24.  
  25.     if (FAILED(hr))
  26.         delete pObj;
  27.     return hr;
  28.  
  29.  
  30. STDAPI DllCanUnloadNow (void)
  31. {
  32.   SCODE sc;
  33.  
  34.   sc=(0L==g_cObj && 0L==g_cLock)? S_OK : S_FALSE;
  35.   return ResultFromScode (sc);
  36. }
  37.  
  38.  
  39.