Fun.cpp
上传用户:sz6275
上传日期:2022-06-17
资源大小:80k
文件大小:1k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. // Fun.cpp : Implementation of CFun
  2. #include "stdafx.h"
  3. #include "Simple1.h"
  4. #include "Fun.h"
  5. /////////////////////////////////////////////////////////////////////////////
  6. // CFun
  7. STDMETHODIMP CFun::Add(long n1, long n2, long *pVal)
  8. {
  9. *pVal = n1 + n2;
  10. return S_OK;
  11. }
  12. STDMETHODIMP CFun::Cat(BSTR s1, BSTR s2, BSTR *pVal)
  13. {
  14. /************** 完全用 API 方式实现的 BSTR 字符串连接 ***************
  15. int nLen1 = ::SysStringLen( s1 );
  16. int nLen2 = ::SysStringLen( s2 );
  17. *pVal = ::SysAllocStringLen( s1, nLen1 + nLen2 );
  18. if( nLen2 )
  19. {
  20. ::memcpy( *pVal + nLen1, s2, nLen2 * sizeof(WCHAR) );
  21. // wcscat( *pVal, s2 ); // 但如果 s2 中包含 L'' 的话,则被截断。
  22. }
  23. return S_OK;
  24. *********************************************************************/
  25. //*************** 用 CComBSTR 包装实现 BSTR 字符串连接 ***************
  26. CComBSTR sResult( s1 );
  27. sResult.AppendBSTR( s2 );
  28. *pVal = sResult.Copy(); // 产生一个副本
  29. // *pVal = sResult.Detach(); // CComBSTR 对象和内部 BSTR 脱离,速度稍快
  30. return S_OK;
  31. //********************************************************************/
  32. }