00001 // $Id: clipmap.h 1282 2006-06-09 09:46:49Z alex $ 00002 /* @@tag:xara-cn@@ DO NOT MODIFY THIS LINE 00003 ================================XARAHEADERSTART=========================== 00004 00005 Xara LX, a vector drawing and manipulation program. 00006 Copyright (C) 1993-2006 Xara Group Ltd. 00007 Copyright on certain contributions may be held in joint with their 00008 respective authors. See AUTHORS file for details. 00009 00010 LICENSE TO USE AND MODIFY SOFTWARE 00011 ---------------------------------- 00012 00013 This file is part of Xara LX. 00014 00015 Xara LX is free software; you can redistribute it and/or modify it 00016 under the terms of the GNU General Public License version 2 as published 00017 by the Free Software Foundation. 00018 00019 Xara LX and its component source files are distributed in the hope 00020 that it will be useful, but WITHOUT ANY WARRANTY; without even the 00021 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00022 See the GNU General Public License for more details. 00023 00024 You should have received a copy of the GNU General Public License along 00025 with Xara LX (see the file GPL in the root directory of the 00026 distribution); if not, write to the Free Software Foundation, Inc., 51 00027 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00028 00029 00030 ADDITIONAL RIGHTS 00031 ----------------- 00032 00033 Conditional upon your continuing compliance with the GNU General Public 00034 License described above, Xara Group Ltd grants to you certain additional 00035 rights. 00036 00037 The additional rights are to use, modify, and distribute the software 00038 together with the wxWidgets library, the wxXtra library, and the "CDraw" 00039 library and any other such library that any version of Xara LX relased 00040 by Xara Group Ltd requires in order to compile and execute, including 00041 the static linking of that library to XaraLX. In the case of the 00042 "CDraw" library, you may satisfy obligation under the GNU General Public 00043 License to provide source code by providing a binary copy of the library 00044 concerned and a copy of the license accompanying it. 00045 00046 Nothing in this section restricts any of the rights you have under 00047 the GNU General Public License. 00048 00049 00050 SCOPE OF LICENSE 00051 ---------------- 00052 00053 This license applies to this program (XaraLX) and its constituent source 00054 files only, and does not necessarily apply to other Xara products which may 00055 in part share the same code base, and are subject to their own licensing 00056 terms. 00057 00058 This license does not apply to files in the wxXtra directory, which 00059 are built into a separate library, and are subject to the wxWindows 00060 license contained within that directory in the file "WXXTRA-LICENSE". 00061 00062 This license does not apply to the binary libraries (if any) within 00063 the "libs" directory, which are subject to a separate license contained 00064 within that directory in the file "LIBS-LICENSE". 00065 00066 00067 ARRANGEMENTS FOR CONTRIBUTION OF MODIFICATIONS 00068 ---------------------------------------------- 00069 00070 Subject to the terms of the GNU Public License (see above), you are 00071 free to do whatever you like with your modifications. However, you may 00072 (at your option) wish contribute them to Xara's source tree. You can 00073 find details of how to do this at: 00074 http://www.xaraxtreme.org/developers/ 00075 00076 Prior to contributing your modifications, you will need to complete our 00077 contributor agreement. This can be found at: 00078 http://www.xaraxtreme.org/developers/contribute/ 00079 00080 Please note that Xara will not accept modifications which modify any of 00081 the text between the start and end of this header (marked 00082 XARAHEADERSTART and XARAHEADEREND). 00083 00084 00085 MARKS 00086 ----- 00087 00088 Xara, Xara LX, Xara X, Xara X/Xtreme, Xara Xtreme, the Xtreme and Xara 00089 designs are registered or unregistered trademarks, design-marks, and/or 00090 service marks of Xara Group Ltd. All rights in these marks are reserved. 00091 00092 00093 Xara Group Ltd, Gaddesden Place, Hemel Hempstead, HP2 6EX, UK. 00094 http://www.xara.com/ 00095 00096 =================================XARAHEADEREND============================ 00097 */ 00098 // ClipboardMapping - External clipboard class for encapsulating clipboard data mappings 00099 00100 00101 #ifndef INC_CLIPMAP 00102 #define INC_CLIPMAP 00103 00104 //#include "list.h" - in camtypes.h [AUTOMATICALLY REMOVED] 00105 #include "cliptype.h" 00106 #include "cmxfiltr.h" 00107 00108 class InternalClipboard; 00109 class ExternalClipboard; 00110 class OpClipboardExport; 00111 class OpClipboardImport; 00112 class Operation; 00113 class SelOperation; 00114 class Filter; 00115 00116 00117 typedef enum 00118 { 00119 CLIPMAP_IMPORTONLY = 1, 00120 CLIPMAP_EXPORTONLY = 2, 00121 CLIPMAP_IMPORTEXPORT = 3 00122 } ClipboardMappingType; 00123 00124 00125 00126 /******************************************************************************************** 00127 00128 > class ClipboardMapping : public ListItem 00129 00130 Author: Jason_Williams (Xara Group Ltd) <camelotdev@xara.com> 00131 Created: 16/4/95 00132 00133 Purpose: A class which describes and implements an available mapping between internal 00134 and external data formats. Each filter which can provide a useful clipboard 00135 export/import format will register with the ExternalClipboard instance, 00136 using an ClipboardMapping object to describe the available mapping, and 00137 to provide functions which will invoke that filter on windows clipboard data. 00138 00139 The ClipboardMapping knows whether it represents an Import or Export mapping, 00140 and knows what data types are required for the source destination, and 00141 holds a pointer to the filter which can supply such a mapping. Two methods 00142 (HandleImport, HandleExport) are used to invoke the mapping. 00143 00144 Filters can register several different mappings with the ExtClipboard - 00145 typically a filter will register one import and one export mapping. 00146 00147 A 'Priority' factor is used to determine the most compatible/preferable routes 00148 for converting data. The factors are integers. A higher number indicates a 00149 higher priority. 00150 00151 Notes: There is a document describing all of the available conversions in Camelot. 00152 It describes the conversions and lists their priorities. Check with this 00153 doc to determine what priority your conversion should be. Add entries to 00154 this doc describing all mappings your filter(s) will register. 00155 00156 SeeAlso: ExternalClipboard; Filter 00157 00158 *********************************************************************************************/ 00159 00160 class CCAPI ClipboardMapping : public ListItem 00161 { 00162 CC_DECLARE_DYNCREATE(ClipboardMapping) 00163 00164 friend class ExternalClipboard; 00165 friend class OpClipboardExport; 00166 friend class OpClipboardImport; 00167 00169 // 00170 // The OLE clipboard 00171 // 00172 00173 #if (_OLE_VER >= 0x200) 00174 00175 public: 00176 00177 // Call this to set the memory the clipboard should delay-render into. If hMem is 00178 // null then the render functions will try to allocate the memory themselves. 00179 void SetRenderMemory(HGLOBAL hMem, DWORD cbMemSize); 00180 00181 protected: 00182 00183 // Implementation. 00184 HGLOBAL m_hMem; // the memory to delay-render into 00185 DWORD m_cbMemSize; // the size of the supplied memory 00186 Document* m_pDoc; // the kernel Document to import/export 00187 00188 public: 00189 00190 // Call this before importing or exporting to set the document to use for import/export 00191 void SetDocument(Document* pDoc) { m_pDoc = pDoc; } 00192 00193 #endif 00194 00196 00197 00198 public: 00199 virtual ~ClipboardMapping(); 00200 00201 protected: 00202 ClipboardMapping(); 00203 ClipboardMapping(ClipboardMappingType TheType, Filter *TheFilter, 00204 InternalClipboardFormat &InternalDataType, UINT32 ExternalDataType, 00205 UINT32 Priority); 00206 00207 public: // Public method for constructing a mapping object 00208 static void CreateAndRegister(ClipboardMappingType TheType, Filter *TheFilter, 00209 InternalClipboardFormat &InternalDataType, UINT32 ExternalDataType, 00210 UINT32 Priority); 00211 00212 public: // public interface 00213 InternalClipboardFormat *GetInternalDataType(void) { return(&InternalDataType); } 00214 00215 00216 protected: // Entry points for external clipboard manager 00217 virtual BOOL HandleImport(SelOperation *Caller, HANDLE ClipboardData, InternalClipboard *Dest); 00218 // Works out how to call the parent filter to import the given clipboard data 00219 00220 virtual HANDLE HandleExport(Operation *Caller, InternalClipboard *Source); 00221 // Works out how to call the parent filter to export the given clipboard document 00222 00223 protected: 00224 BOOL ImportFromTempFile(TCHAR *filename, SelOperation *Caller, InternalClipboard *Dest); 00225 // Internal helper method to invoke pFilter->DoImport on the given scratch file 00226 00227 BOOL ExportToTempFile(TCHAR *filename, Operation *Caller, InternalClipboard *Source); 00228 // Internal handler method to invoke pFilter->DoExport to the given scratch file 00229 00230 00231 protected: // Bodge to allow use of tempfiles 00232 char *tempfilename; 00233 char *GetTempFileName(void); 00234 // Returns a filename to use for a temporary file. You should only call this once 00235 // before RemoveTempFile is called 00236 00237 void RemoveTempFile(void); 00238 // Removes the last tempfile got with GetTempFileName 00239 00240 00241 protected: 00242 ClipboardMappingType Type; // 1=import, 2=export, 3=both import and export 00243 Filter *pFilter; // Points to the filter which converts 00244 00245 InternalClipboardFormat InternalDataType; 00246 // Identifies the internal data type 00247 00248 UINT32 ExternalDataType; // Identifies the external (windows) type that we'll react to 00249 UINT32 RealExternalType; // Identifies the external (windows) type that we really import/export 00250 // NOTE: In the base class, ExternalDataType == RealExternalType! 00251 UINT32 Priority; // Higher priority mappings are used in preference 00252 00253 protected: 00254 BOOL Available; // Used when scanning to determine the available export formats 00255 }; 00256 00257 00258 00259 00260 00261 00262 /******************************************************************************************** 00263 00264 > class BodgeTextClipMap : public ClipboardMapping 00265 00266 Author: Jason_Williams (Xara Group Ltd) <camelotdev@xara.com> 00267 Created: 24/4/95 00268 00269 Purpose: Describes and handles import/export mappings for UNICODE text. 00270 00271 This provides bodge import/export of ASCII text 00272 A proper text filter will be written one day which will replace this bodge 00273 00274 Notes: This mapping is used twice - once for CF_TEXT, and once as an alias for 00275 CF_OEMTEXT (which the clipboard will convert to CF_TEXT when we ask for it) 00276 00277 SeeAlso: ClipboardMapping; ExternalClipboard; Filter 00278 00279 *********************************************************************************************/ 00280 00281 class CCAPI BodgeTextClipMap : public ClipboardMapping 00282 { 00283 CC_DECLARE_DYNCREATE(BodgeTextClipMap) 00284 00285 friend class ExternalClipboard; 00286 friend class OpClipboardExport; 00287 friend class OpClipboardImport; 00288 00289 protected: 00290 BodgeTextClipMap(); 00291 BodgeTextClipMap(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00292 00293 public: // Public method for constructing a mapping object 00294 static void CreateAndRegister(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00295 // NOTE that we can register this for CF_TEXT, SF_UNICODETEXT, and CF_OEMTEXT, and it 00296 // will respond to any of these by asking for UNICODE text from the clipboard, which 00297 // will automatically do the conversion for us if necessary. 3 formats for the price of 1. 00298 00299 protected: // Entry points for external clipboard manager 00300 virtual BOOL HandleImport(SelOperation *Caller, HANDLE ClipboardData, InternalClipboard *Dest); 00301 // Works out how to call the parent filter to import the given clipboard data 00302 00303 virtual HANDLE HandleExport(Operation *Caller, InternalClipboard *Source); 00304 // Works out how to call the parent filter to export the given clipboard document 00305 }; 00306 00307 00308 00309 00310 00311 00312 /******************************************************************************************** 00313 00314 > class BodgeUnicodeClipMap : public ClipboardMapping 00315 00316 Author: Jason_Williams (Xara Group Ltd) <camelotdev@xara.com> 00317 Created: 24/4/95 00318 00319 Purpose: Describes and handles import/export mappings for UNICODE text. 00320 00321 This provides bodge import/export of unicode text 00322 A proper text filter will be written one day which will replace this bodge 00323 00324 SeeAlso: ClipboardMapping; ExternalClipboard; Filter 00325 00326 *********************************************************************************************/ 00327 00328 class CCAPI BodgeUnicodeClipMap : public ClipboardMapping 00329 { 00330 CC_DECLARE_DYNCREATE(BodgeUnicodeClipMap) 00331 00332 friend class ExternalClipboard; 00333 friend class OpClipboardExport; 00334 friend class OpClipboardImport; 00335 00336 protected: 00337 BodgeUnicodeClipMap(); 00338 BodgeUnicodeClipMap(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00339 00340 public: // Public method for constructing a mapping object 00341 static void CreateAndRegister(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00342 // NOTE that we can register this for CF_TEXT, SF_UNICODETEXT, and CF_OEMTEXT, and it 00343 // will respond to any of these by asking for UNICODE text from the clipboard, which 00344 // will automatically do the conversion for us if necessary. 3 formats for the price of 1. 00345 00346 protected: // Entry points for external clipboard manager 00347 virtual BOOL HandleImport(SelOperation *Caller, HANDLE ClipboardData, InternalClipboard *Dest); 00348 // Works out how to call the parent filter to import the given clipboard data 00349 00350 virtual HANDLE HandleExport(Operation *Caller, InternalClipboard *Source); 00351 // Works out how to call the parent filter to export the given clipboard document 00352 }; 00353 00354 00355 00356 00357 00358 /******************************************************************************************** 00359 00360 > class BitmapClipMap : public ClipboardMapping 00361 00362 Author: Jason_Williams (Xara Group Ltd) <camelotdev@xara.com> 00363 Created: 29/4/95 00364 00365 Purpose: Describes and handles import/export mappings for bitmaps. 00366 00367 This mapping does not attach to a filter - it simply scans the tree for 00368 bitmap objects, and exports the DIB data, or imports DIB data and creates 00369 a new bitmap object in the document. (i.e. the data is not converted, just 00370 inserted/extracted from the document tree) 00371 00372 Notes: Due to the unbelieveable crapness of windows, it seems to be impossible to 00373 export a bitmap with a decent palette. So we do like Corel and don't export 00374 in bitmap format - DIBs are the way of the future anyway. 00375 00376 SeeAlso: ClipboardMapping; ExternalClipboard; Filter 00377 00378 *********************************************************************************************/ 00379 00380 class CCAPI BitmapClipMap : public ClipboardMapping 00381 { 00382 CC_DECLARE_DYNCREATE(BitmapClipMap) 00383 00384 friend class ExternalClipboard; 00385 friend class OpClipboardExport; 00386 friend class OpClipboardImport; 00387 00388 protected: 00389 BitmapClipMap(); 00390 BitmapClipMap(ClipboardMappingType TheType, UINT32 ClaimType); 00391 00392 public: // Public method for constructing a mapping object 00393 static void CreateAndRegister(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00394 00395 protected: // Entry points for external clipboard manager 00396 virtual BOOL HandleImport(SelOperation *Caller, HANDLE ClipboardData, InternalClipboard *Dest); 00397 // Works out how to call the parent filter to import the given clipboard data 00398 00399 virtual HANDLE HandleExport(Operation *Caller, InternalClipboard *Source); 00400 // Works out how to call the parent filter to export the given clipboard document 00401 }; 00402 00403 00404 00405 00406 #if FALSE 00407 /******************************************************************************************** 00408 00409 //> class PaletteClipMap : public ClipboardMapping 00410 00411 Author: Jason_Williams (Xara Group Ltd) <camelotdev@xara.com> 00412 Created: 3/5/95 00413 00414 Purpose: Describes and handles an export-only mapping for Palettes. 00415 00416 This mapping does not attach to a filter - it simply scans the tree for 00417 bitmap objects, and exports the DIB Palette data. This is used in 00418 conjunction with the Bitmap exporter to provide a palette for the bmp. 00419 00420 SeeAlso: ClipboardMapping; ExternalClipboard; Filter 00421 00422 *********************************************************************************************/ 00423 00424 class CCAPI PaletteClipMap : public ClipboardMapping 00425 { 00426 CC_DECLARE_DYNCREATE(PaletteClipMap) 00427 00428 friend class ExternalClipboard; 00429 friend class OpClipboardExport; 00430 friend class OpClipboardImport; 00431 00432 protected: 00433 PaletteClipMap(); 00434 00435 public: // Public method for constructing a mapping object 00436 static void CreateAndRegister(void); 00437 00438 protected: // Entry points for external clipboard manager 00439 virtual HANDLE HandleExport(Operation *Caller, InternalClipboard *Source); 00440 // Works out how to call the parent filter to export the given clipboard document 00441 }; 00442 #endif 00443 00444 00445 00446 00447 00448 /******************************************************************************************** 00449 00450 > class DIBClipMap : public ClipboardMapping 00451 00452 Author: Jason_Williams (Xara Group Ltd) <camelotdev@xara.com> 00453 Created: 29/4/95 00454 00455 Purpose: Describes and handles import/export mappings for bitmaps. 00456 00457 This mapping does not attach to a filter - it simply scans the tree for 00458 bitmap objects, and exports the DIB data, or imports DIB data and creates 00459 a new bitmap object in the document. (i.e. the data is not converted, just 00460 inserted/extracted from the document tree) 00461 00462 SeeAlso: ClipboardMapping; ExternalClipboard; Filter 00463 00464 *********************************************************************************************/ 00465 00466 class CCAPI DIBClipMap : public ClipboardMapping 00467 { 00468 CC_DECLARE_DYNCREATE(DIBClipMap) 00469 00470 friend class ExternalClipboard; 00471 friend class OpClipboardExport; 00472 friend class OpClipboardImport; 00473 00474 protected: 00475 DIBClipMap(); 00476 DIBClipMap(ClipboardMappingType TheType, UINT32 ClaimType); 00477 00478 public: // Public method for constructing a mapping object 00479 static void CreateAndRegister(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00480 00481 protected: // Entry points for external clipboard manager 00482 virtual BOOL HandleImport(SelOperation *Caller, HANDLE ClipboardData, InternalClipboard *Dest); 00483 // Works out how to call the parent filter to import the given clipboard data 00484 00485 virtual HANDLE HandleExport(Operation *Caller, InternalClipboard *Source); 00486 // Works out how to call the parent filter to export the given clipboard document 00487 }; 00488 00489 00490 00491 00492 /******************************************************************************************** 00493 00494 //> class QuarkPictureClipMap : public ClipboardMapping 00495 00496 Author: Jason_Williams (Xara Group Ltd) <camelotdev@xara.com> 00497 Created: 4/5/95 00498 00499 Purpose: Describes and handles import mapping for some "QuarkXPress Picture Data" 00500 00501 SeeAlso: ClipboardMapping; ExternalClipboard; Filter 00502 00503 *********************************************************************************************/ 00504 00505 #if FALSE 00506 class CCAPI QuarkPictureClipMap : public ClipboardMapping 00507 { 00508 CC_DECLARE_DYNCREATE(QuarkPictureClipMap) 00509 00510 friend class ExternalClipboard; 00511 friend class OpClipboardExport; 00512 friend class OpClipboardImport; 00513 00514 protected: 00515 QuarkPictureClipMap(); 00516 QuarkPictureClipMap(UINT32 MyFormat); 00517 00518 public: // Public method for constructing a mapping object 00519 static void CreateAndRegister(void); 00520 00521 protected: // Entry points for external clipboard manager 00522 virtual BOOL HandleImport(SelOperation *Caller, HANDLE ClipboardData, InternalClipboard *Dest); 00523 // Works out how to call the parent filter to import the given clipboard data 00524 }; 00525 #endif 00526 00527 00528 00529 #ifdef _DEBUG 00530 /******************************************************************************************** 00531 > class RTFClipMap : public ClipboardMapping 00532 00533 Author: Peter_Arnold (Xara Group Ltd) <camelotdev@xara.com> 00534 Created: 13/12/95 00535 Purpose: A class which describes and implements an available mapping between internal 00536 and external data formats. 00537 This class implements clipboard import/export functionality for Rich Text 00538 Format files, using the RTFTextFilter. 00539 SeeAlso: ExternalClipboard; Filter; RTFTextFilter 00540 *********************************************************************************************/ 00541 class RTFClipMap : public ClipboardMapping 00542 { 00543 CC_DECLARE_DYNCREATE(RTFClipMap) 00544 00545 friend class ExternalClipboard; 00546 friend class OpClipboardExport; 00547 friend class OpClipboardImport; 00548 00549 protected: 00550 RTFClipMap() {} 00551 RTFClipMap(ClipboardMappingType TheType, Filter *TheFilter, 00552 InternalClipboardFormat &InternalDataType, UINT32 ExternalDataType, 00553 UINT32 Priority); 00554 00555 public: // Public method for constructing a mapping object 00556 static void CreateAndRegister(ClipboardMappingType TheType, Filter *TheFilter, 00557 InternalClipboardFormat &InternalDataType, UINT32 ExternalDataType, 00558 UINT32 Priority); 00559 00560 00561 protected: // Entry points for external clipboard manager 00562 virtual BOOL HandleImport(SelOperation *Caller, HANDLE ClipboardData, InternalClipboard *Dest); 00563 // Works out how to call the parent filter to import the given clipboard data 00564 00565 virtual HANDLE HandleExport(Operation *Caller, InternalClipboard *Source); 00566 // Works out how to call the parent filter to export the given clipboard document 00567 }; 00568 #endif //debug 00569 00570 /******************************************************************************************** 00571 00572 > class CMXClipMap : public ClipboardMapping 00573 00574 Author: Ben_Summers (Xara Group Ltd) <camelotdev@xara.com> 00575 Created: 04/09/96 00576 00577 Purpose: Describes and handles import/export mappings for CMX files. 00578 00579 Notes: This is the base class for 16 and 32 bit varients of CMX files 00580 00581 SeeAlso: ClipboardMapping; ExternalClipboard; Filter 00582 00583 *********************************************************************************************/ 00584 00585 class CCAPI CMXClipMap : public ClipboardMapping 00586 { 00587 CC_DECLARE_DYNAMIC(CMXClipMap) 00588 00589 friend class ExternalClipboard; 00590 friend class OpClipboardExport; 00591 friend class OpClipboardImport; 00592 00593 protected: 00594 CMXClipMap() {}; 00595 CMXClipMap(ClipboardMappingType TheType, UINT32 ClaimType, UINT32 nPriority); 00596 00597 public: // Public method for constructing a mapping object 00598 // static void CreateAndRegister(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00599 // NOTE that we can register this for CF_TEXT, SF_UNICODETEXT, and CF_OEMTEXT, and it 00600 // will respond to any of these by asking for UNICODE text from the clipboard, which 00601 // will automatically do the conversion for us if necessary. 3 formats for the price of 1. 00602 00603 protected: // Entry points for external clipboard manager 00604 virtual BOOL HandleImport(SelOperation *Caller, HANDLE ClipboardData, InternalClipboard *Dest); 00605 // Works out how to call the parent filter to import the given clipboard data 00606 00607 virtual HANDLE HandleExport(Operation *Caller, InternalClipboard *Source); 00608 // Works out how to call the parent filter to export the given clipboard document 00609 00610 // for the various varients 00611 virtual CMXFilter *CreateExportFilter(void) = 0; 00612 }; 00613 00614 class CCAPI CMX16ClipMap : public CMXClipMap 00615 { 00616 CC_DECLARE_DYNCREATE(CMX16ClipMap) 00617 00618 friend class ExternalClipboard; 00619 friend class OpClipboardExport; 00620 friend class OpClipboardImport; 00621 00622 public: 00623 CMX16ClipMap(); 00624 CMX16ClipMap(ClipboardMappingType TheType, UINT32 ClaimType, UINT32 nPriority) 00625 : CMXClipMap(TheType, ClaimType, nPriority) {}; 00626 00627 static void CreateAndRegister(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00628 00629 protected: 00630 CMXFilter *CreateExportFilter(void) {return new CMXFilter16;}; 00631 }; 00632 00633 class CCAPI CMX32ClipMap : public CMXClipMap 00634 { 00635 CC_DECLARE_DYNCREATE(CMX32ClipMap) 00636 00637 friend class ExternalClipboard; 00638 friend class OpClipboardExport; 00639 friend class OpClipboardImport; 00640 00641 public: 00642 CMX32ClipMap(); 00643 CMX32ClipMap(ClipboardMappingType TheType, UINT32 ClaimType, UINT32 nPriority) 00644 : CMXClipMap(TheType, ClaimType, nPriority) {}; 00645 00646 static void CreateAndRegister(ClipboardMappingType TheType, UINT32 ClaimType = 0); 00647 00648 protected: 00649 CMXFilter *CreateExportFilter(void) {return new CMXFilter32;}; 00650 }; 00651 00652 00653 00654 #endif //include clipmap.h