home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / source / chap03 / lst31 / lst31.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-23  |  677 b   |  39 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. STDAPI DllGetClassObject (REFCLSID rclsid,REFIID riid,void **ppv)
  10. {
  11.     HRESULT hr;
  12.     CLowerStrClassFactory *pObj;
  13.  
  14.     if (CLSID_CLowerStr!= rclsid)
  15.         return ResultFromScode(E_FAIL);
  16.  
  17.     pObj = new CLowerStrClassFactory();
  18.  
  19.     if (!pObj)
  20.         return ResultFromScode (E_OUTOFMEMORY);
  21.  
  22.     hr= pObj->QueryInterface(riid,ppv);
  23.  
  24.     if (FAILED(hr))
  25.         delete pObj;
  26.     return hr;
  27.  
  28.  
  29. STDAPI DllCanUnloadNow (void)
  30. {
  31.   SCODE sc;
  32.  
  33.   sc=(0L==g_cObj && 0L==g_cLock)? S_OK : S_FALSE;
  34.   return ResultFromScode (sc);
  35. }
  36.  
  37.  
  38.