DittoDefines.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. #pragma once
  2. #include <shlwapi.h>
  3. #define DITTO_ADD_IN_VERSION 1
  4. typedef enum
  5. {
  6. eFuncType_PRE_PASTE
  7. }FunctionType;
  8. class CFunction
  9. {
  10. public:
  11. CStringA m_csFunction;
  12. CString m_csDisplayName;
  13. CString m_csDetailDescription;
  14. };
  15. class CDittoAddinInfo
  16. {
  17. public:
  18. CDittoAddinInfo()
  19. {
  20. m_nPrivateVersion = DITTO_ADD_IN_VERSION;
  21. m_AddinVersion = 0;
  22. m_nSizeOfThis = sizeof(CDittoAddinInfo);
  23. }
  24. bool ValidateSize() const { return m_nSizeOfThis == sizeof(CDittoAddinInfo); }
  25. int PrivateVersion() const { return m_nPrivateVersion; }
  26. int m_nSizeOfThis;
  27. CString m_Name;
  28. int m_AddinVersion;
  29. private:
  30. int m_nPrivateVersion;
  31. };
  32. class CDittoInfo
  33. {
  34. public:
  35. CDittoInfo()
  36. {
  37. m_nVersion = 0;
  38. m_hWndDitto = NULL;
  39. m_nSizeOfThis = sizeof(CDittoInfo);
  40. }
  41. bool ValidateSize() const { return m_nSizeOfThis == sizeof(CDittoInfo); }
  42. int PrivateVersion() const { return m_nPrivateVersion; }
  43. int m_nSizeOfThis;
  44. int m_nVersion;
  45. CString m_csSqliteVersion;
  46. CString m_csLanguageCode; //http://www.loc.gov/standards/iso639-2/php/code_list.php
  47. CString m_csDatabasePath;
  48. HWND m_hWndDitto;
  49. private:
  50. int m_nPrivateVersion;
  51. };
  52. class DittoAddinHelpers
  53. {
  54. public:
  55. static void CopyToGlobalHP(HGLOBAL hDest, LPVOID pBuf, ULONG ulBufLen)
  56. {
  57. ASSERT(hDest && pBuf && ulBufLen);
  58. LPVOID pvData = GlobalLock(hDest);
  59. ASSERT(pvData);
  60. ULONG size = (ULONG)GlobalSize(hDest);
  61. ASSERT(size >= ulBufLen); // assert if hDest isn't big enough
  62. memcpy(pvData, pBuf, ulBufLen);
  63. GlobalUnlock(hDest);
  64. }
  65. static HGLOBAL NewGlobalP(LPVOID pBuf, UINT nLen)
  66. {
  67. ASSERT(pBuf && nLen);
  68. HGLOBAL hDest = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, nLen);
  69. ASSERT(hDest);
  70. CopyToGlobalHP(hDest, pBuf, nLen);
  71. return hDest;
  72. }
  73. //Do not change these these are stored in the database
  74. static CLIPFORMAT GetFormatID(LPCTSTR cbName)
  75. {
  76. if(StrCmp(cbName, _T("CF_TEXT")) == 0)
  77. return CF_TEXT;
  78. else if(StrCmp(cbName, _T("CF_METAFILEPICT")) == 0)
  79. return CF_METAFILEPICT;
  80. else if(StrCmp(cbName, _T("CF_SYLK")) == 0)
  81. return CF_SYLK;
  82. else if(StrCmp(cbName, _T("CF_DIF")) == 0)
  83. return CF_DIF;
  84. else if(StrCmp(cbName, _T("CF_TIFF")) == 0)
  85. return CF_TIFF;
  86. else if(StrCmp(cbName, _T("CF_OEMTEXT")) == 0)
  87. return CF_OEMTEXT;
  88. else if(StrCmp(cbName, _T("CF_DIB")) == 0)
  89. return CF_DIB;
  90. else if(StrCmp(cbName, _T("CF_PALETTE")) == 0)
  91. return CF_PALETTE;
  92. else if(StrCmp(cbName, _T("CF_PENDATA")) == 0)
  93. return CF_PENDATA;
  94. else if(StrCmp(cbName, _T("CF_RIFF")) == 0)
  95. return CF_RIFF;
  96. else if(StrCmp(cbName, _T("CF_WAVE")) == 0)
  97. return CF_WAVE;
  98. else if(StrCmp(cbName, _T("CF_UNICODETEXT")) == 0)
  99. return CF_UNICODETEXT;
  100. else if(StrCmp(cbName, _T("CF_ENHMETAFILE")) == 0)
  101. return CF_ENHMETAFILE;
  102. else if(StrCmp(cbName, _T("CF_HDROP")) == 0)
  103. return CF_HDROP;
  104. else if(StrCmp(cbName, _T("CF_LOCALE")) == 0)
  105. return CF_LOCALE;
  106. else if(StrCmp(cbName, _T("CF_OWNERDISPLAY")) == 0)
  107. return CF_OWNERDISPLAY;
  108. else if(StrCmp(cbName, _T("CF_DSPTEXT")) == 0)
  109. return CF_DSPTEXT;
  110. else if(StrCmp(cbName, _T("CF_DSPBITMAP")) == 0)
  111. return CF_DSPBITMAP;
  112. else if(StrCmp(cbName, _T("CF_DSPMETAFILEPICT")) == 0)
  113. return CF_DSPMETAFILEPICT;
  114. else if(StrCmp(cbName, _T("CF_DSPENHMETAFILE")) == 0)
  115. return CF_DSPENHMETAFILE;
  116. return ::RegisterClipboardFormat(cbName);
  117. }
  118. //Do not change these these are stored in the database
  119. static CString GetFormatName(CLIPFORMAT cbType)
  120. {
  121. switch(cbType)
  122. {
  123. case CF_TEXT:
  124. return _T("CF_TEXT");
  125. case CF_BITMAP:
  126. return _T("CF_BITMAP");
  127. case CF_METAFILEPICT:
  128. return _T("CF_METAFILEPICT");
  129. case CF_SYLK:
  130. return _T("CF_SYLK");
  131. case CF_DIF:
  132. return _T("CF_DIF");
  133. case CF_TIFF:
  134. return _T("CF_TIFF");
  135. case CF_OEMTEXT:
  136. return _T("CF_OEMTEXT");
  137. case CF_DIB:
  138. return _T("CF_DIB");
  139. case CF_PALETTE:
  140. return _T("CF_PALETTE");
  141. case CF_PENDATA:
  142. return _T("CF_PENDATA");
  143. case CF_RIFF:
  144. return _T("CF_RIFF");
  145. case CF_WAVE:
  146. return _T("CF_WAVE");
  147. case CF_UNICODETEXT:
  148. return _T("CF_UNICODETEXT");
  149. case CF_ENHMETAFILE:
  150. return _T("CF_ENHMETAFILE");
  151. case CF_HDROP:
  152. return _T("CF_HDROP");
  153. case CF_LOCALE:
  154. return _T("CF_LOCALE");
  155. case CF_OWNERDISPLAY:
  156. return _T("CF_OWNERDISPLAY");
  157. case CF_DSPTEXT:
  158. return _T("CF_DSPTEXT");
  159. case CF_DSPBITMAP:
  160. return _T("CF_DSPBITMAP");
  161. case CF_DSPMETAFILEPICT:
  162. return _T("CF_DSPMETAFILEPICT");
  163. case CF_DSPENHMETAFILE:
  164. return _T("CF_DSPENHMETAFILE");
  165. default:
  166. //Not a default type get the name from the clipboard
  167. if (cbType != 0)
  168. {
  169. TCHAR szFormat[256];
  170. GetClipboardFormatName(cbType, szFormat, 256);
  171. return szFormat;
  172. }
  173. break;
  174. }
  175. return _T("ERROR");
  176. }
  177. };
  178. class AddToDbStickyEnum
  179. {
  180. public:
  181. enum AddToDbSticky
  182. {
  183. INVALID,
  184. MAKE_TOP_STICKY,
  185. MAKE_LAST_STICKY,
  186. REPLACE_TOP_STICKY
  187. };
  188. };