OSDN Git Service

Fix a bug where shift key combinations cancel the mark
[xkeymacs/xkeymacs.git] / xkeymacsdll / ClipboardFormatSnap.h
1 // ClipboardFormatSnap.h: CClipboardFormatSnap \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X\r
2 //\r
3 //////////////////////////////////////////////////////////////////////\r
4 \r
5 #if !defined(AFX_CLIPBOARDFORMATSNAP_H__75207F92_15D2_4D59_B413_730D8875976D__INCLUDED_)\r
6 #define AFX_CLIPBOARDFORMATSNAP_H__75207F92_15D2_4D59_B413_730D8875976D__INCLUDED_\r
7 \r
8 #if _MSC_VER > 1000\r
9 #pragma once\r
10 #endif // _MSC_VER > 1000\r
11 \r
12 #include <afxtempl.h>\r
13 \r
14 \r
15 // \83\86\81[\83e\83B\83\8a\83e\83B\8aÖ\90\94\r
16 \r
17 inline CString GetFormatName( int nFormat )\r
18 {\r
19         // \83t\83H\81[\83}\83b\83g\96¼\82ð\95Ô\82·\8aÖ\90\94\r
20         // \83f\83o\83b\83O\97p\82Å\82 \82è\81Awin2k\88È\8d~\82ð\91O\92ñ\82Æ\82µ\82Ä\82¢\82é\r
21         // \8cÃ\82¢OS\82Å\93\96\8aÖ\90\94\82ð\8eg\82¤\82Æ\82¤\82»\82Ì\96¼\91O\82ð\95Ô\82·\8fê\8d\87\82ª\82 \82é\r
22         // OWNEDDISPLAY\82È\82Ç\82ÌCF\82à\83t\83H\83\8d\81[\82µ\82Ä\82È\82¢\82Ì\82Åwin2k\82Å\82à\82¤\82»\82Â\82­\r
23 \r
24         // 01-17\r
25         CString sDefaultName[] = {\r
26                 _T("CF_TEXT"),\r
27                 _T("CF_BITMAP"),\r
28                 _T("CF_METAFILEPICT"),\r
29                 _T("CF_SYLK"),\r
30                 _T("CF_DIF"),\r
31                 _T("CF_TIFF"),\r
32                 _T("CF_OEMTEXT"),\r
33                 _T("CF_DIB"),\r
34                 _T("CF_PALETTE"),\r
35                 _T("CF_PENDATA"),\r
36                 _T("CF_RIFF"),\r
37                 _T("CF_WAVE"),\r
38                 _T("CF_UNICODETEXT"),\r
39                 _T("CF_ENHMETAFILE"),\r
40                 _T("CF_HDROP"),\r
41                 _T("CF_LOCALE"),\r
42                 _T("CF_DIBV5")\r
43         };\r
44 \r
45         if( nFormat <= 0  ) return _T("");\r
46         if( nFormat <= 17 ) return sDefaultName[ nFormat - 1 ];\r
47 \r
48         TCHAR sFormatName[ 10000 ];\r
49         if( !GetClipboardFormatName( nFormat, sFormatName, 10000 ) ) return _T("");\r
50         return sFormatName;\r
51 }\r
52 \r
53 class CClipboardFormatSnap  \r
54 {\r
55         //\r
56         // * Constructors\r
57         //\r
58 public:\r
59         CClipboardFormatSnap();\r
60         virtual ~CClipboardFormatSnap();\r
61 \r
62         //\r
63         // * Copy\r
64         //\r
65 public:\r
66         CClipboardFormatSnap( const CClipboardFormatSnap& rhs );\r
67         const CClipboardFormatSnap& operator=( const CClipboardFormatSnap& rhs );\r
68         const BOOL operator==( const CClipboardFormatSnap& rhs );\r
69         const BOOL operator!=( const CClipboardFormatSnap& rhs );\r
70 \r
71         //\r
72         // * Operations\r
73         //\r
74 public:\r
75         BOOL Capture( int nFormat );\r
76         BOOL Restore();\r
77         BOOL IsSameFormat( const CClipboardFormatSnap* const pFormatSnap );\r
78         BOOL IsMergeableFormat();\r
79         static BOOL IsMergeableFormat( const int nFormat );\r
80         int FindReturn();\r
81         void DeleteLastReturn();\r
82         void Add( const char* const pAddedString, const BOOL bTop );\r
83         BOOL IsEmpty();\r
84         const CClipboardFormatSnap& operator+( const CClipboardFormatSnap& rhs );\r
85 ///     const CClipboardFormatSnap& Merge( CClipboardFormatSnap& lhs, CClipboardFormatSnap& rhs );\r
86 protected:\r
87         void DeleteLastReturn( const int nSizeOfNullTerminator );\r
88         void Add( const char* const pAddedString, const BOOL bTop, const int nSizeOfNullTerminator );\r
89         const int GetTextLength( const int nSizeOfNullTerminator );\r
90         const int GetRTFBodyLength() const;\r
91         const int GetRTFBodyHead() const;\r
92         void MergeText( const CClipboardFormatSnap& rhs, const int nSizeOfNullTerminator );\r
93         void MergeRTF( const CClipboardFormatSnap& rhs );\r
94 \r
95         //\r
96         // * Attributes\r
97         //\r
98 private:\r
99         int m_nFormat;\r
100         CArray<BYTE, BYTE> m_oData;\r
101 };\r
102 \r
103 #endif // !defined(AFX_CLIPBOARDFORMATSNAP_H__75207F92_15D2_4D59_B413_730D8875976D__INCLUDED_)\r