DittoChaiScript.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "stdafx.h"
  2. #include "DittoChaiScript.h"
  3. #include "Md5.h"
  4. #include "Misc.h"
  5. CDittoChaiScript::CDittoChaiScript(IClip *pClip, std::string activeApp)
  6. {
  7. m_pClip = pClip;
  8. m_activeApp = activeApp;
  9. }
  10. CDittoChaiScript::~CDittoChaiScript()
  11. {
  12. }
  13. std::string CDittoChaiScript::GetAsciiString()
  14. {
  15. std::string s = "";
  16. if (m_pClip)
  17. {
  18. IClipFormat *pFormat = m_pClip->Clips()->FindFormatEx(CF_TEXT);
  19. if (pFormat)
  20. {
  21. char *stringData = (char *)GlobalLock(pFormat->Data());
  22. if (stringData != NULL)
  23. {
  24. s = stringData;
  25. GlobalUnlock(pFormat->Data());
  26. }
  27. }
  28. }
  29. return s;
  30. }
  31. void CDittoChaiScript::SetAsciiString(std::string stringVal)
  32. {
  33. if (m_pClip)
  34. {
  35. m_pClip->Clips()->DeleteAll();
  36. //HGLOBAL hGlobal = ::NewGlobalP(stringVal.c_str, 4);
  37. // ASSERT(hGlobal);
  38. //m_pClip->Clips()->AddNew(CF_TEXT, hGlobal);
  39. }
  40. }
  41. std::string CDittoChaiScript::GetClipMD5(int clipboardFormat)
  42. {
  43. CMd5 md5;
  44. md5.MD5Init();
  45. std::string md5String;
  46. if (m_pClip)
  47. {
  48. IClipFormat *pFormat = m_pClip->Clips()->FindFormatEx(clipboardFormat);
  49. if (pFormat)
  50. {
  51. SIZE_T size = ::GlobalSize(pFormat->Data());
  52. void* pv = GlobalLock(pFormat->Data());
  53. if (pv != NULL)
  54. {
  55. md5.MD5Update((unsigned char*)pv, (unsigned int)size);
  56. GlobalUnlock(pFormat->Data());
  57. md5String = md5.MD5FinalToString();
  58. }
  59. }
  60. }
  61. return md5String;
  62. }
  63. SIZE_T CDittoChaiScript::GetClipSize(int clipboardFormat)
  64. {
  65. SIZE_T size = 0;
  66. if (m_pClip)
  67. {
  68. IClipFormat *pFormat = m_pClip->Clips()->FindFormatEx(clipboardFormat);
  69. if (pFormat)
  70. {
  71. size = ::GlobalSize(pFormat->Data());
  72. }
  73. }
  74. return size;
  75. }