MyLog.cpp
上传用户:weisheen
上传日期:2022-07-09
资源大小:19390k
文件大小:1k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. // MyLog.cpp: implementation of the MyLog class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "test.h"
  6. #include "MyLog.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. #include "../DemoIUnknown_i.c"
  13. //////////////////////////////////////////////////////////////////////
  14. // Construction/Destruction
  15. //////////////////////////////////////////////////////////////////////
  16. MyLog::MyLog()
  17. {
  18. ilisongtao=0;
  19. }
  20. MyLog::~MyLog()
  21. {
  22. }
  23. STDMETHODIMP MyLog::writeLog( BSTR message)
  24. {
  25. CFile f;
  26. CFileException ex;
  27. f.Open("./log.txt",CFile::modeCreate| CFile::modeReadWrite,&ex);
  28. CString str(message);
  29. f.Write(str.GetBuffer(100),str.GetLength());
  30. ::SysFreeString(message);
  31. f.Close();
  32.     return S_OK;
  33. }
  34. STDMETHODIMP MyLog::QueryInterface(REFIID riid, void __RPC_FAR *__RPC_FAR *ppvObject)
  35. {
  36. if(riid==IID_ILog)
  37. {
  38. *ppvObject=(ILog*)this;
  39. this->AddRef();
  40. return S_OK;
  41. }
  42. else if(riid==IID_IUnknown)
  43. {
  44. *ppvObject=(IUnknown*)this;
  45. this->AddRef();
  46. return S_OK;
  47. }
  48. else
  49. {
  50. *ppvObject=NULL;
  51. return S_FALSE;
  52. }
  53. }
  54. STDMETHODIMP_(ULONG) MyLog::AddRef()
  55. {
  56. return this->ilisongtao++;
  57. }    
  58. STDMETHODIMP_(ULONG) MyLog::Release()
  59. {
  60. this->ilisongtao--;
  61. if(this->ilisongtao==0)
  62. {
  63. delete this;
  64. }
  65. return this->ilisongtao;
  66. }