DelFilesFactory.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "stdafx.h"
  2. #include "DelFilesFactory.h"
  3. #include "DelFiles.h"
  4. #ifdef _DEBUG
  5. #define new DEBUG_NEW
  6. #undef THIS_FILE
  7. static char THIS_FILE[] = __FILE__;
  8. #endif
  9. CSC_DelfilesFactory::CSC_DelfilesFactory()
  10. {
  11. m_dwRefCount = 0;
  12. }
  13. CSC_DelfilesFactory::~CSC_DelfilesFactory()
  14. {
  15. }
  16. STDMETHODIMP CSC_DelfilesFactory::QueryInterface(REFIID refiid, void** ppv)
  17. {
  18. if (IID_IUnknown == refiid || IID_IClassFactory == refiid)
  19. {
  20. *ppv = this;
  21. ((IUnknown*)(*ppv))->AddRef();
  22. return NOERROR;
  23. }
  24. *ppv = NULL;
  25. return E_NOINTERFACE;
  26. }
  27. STDMETHODIMP_(ULONG) CSC_DelfilesFactory::AddRef(void)
  28. {
  29. InterlockedIncrement((LPLONG)&m_dwRefCount);
  30. return m_dwRefCount;
  31. }
  32. STDMETHODIMP_(ULONG) CSC_DelfilesFactory::Release(void)
  33. {
  34. InterlockedDecrement((LPLONG)&m_dwRefCount);
  35. if (!m_dwRefCount)
  36. delete this;
  37. return 0;
  38. }
  39. STDMETHODIMP CSC_DelfilesFactory::CreateInstance(IUnknown* pUnknown, REFIID refiid, void** ppv)
  40. {
  41. HRESULT hr = E_FAIL;
  42. CSC_DelFiles* pCode = NULL;
  43. *ppv = NULL;
  44. if (NULL != pUnknown && refiid != IID_IUnknown)
  45. hr = CLASS_E_NOAGGREGATION;
  46. else
  47. {
  48. hr = E_OUTOFMEMORY;
  49. pCode = new CSC_DelFiles;
  50. if (pCode)
  51. {
  52. hr = pCode->QueryInterface(refiid, ppv);
  53. if (FAILED(hr))
  54. {
  55. delete pCode;
  56. pCode = NULL;
  57. }
  58. }
  59. }
  60. return hr;
  61. }
  62. STDMETHODIMP CSC_DelfilesFactory::LockServer(BOOL)
  63. {
  64. return 0;
  65. }