00001 /** 00002 * \file mi32/rvcdefns.h 00003 * \brief RVC Definitions Header File 00004 * 00005 * \if NODOC 00006 * $Id: rvcdefns.h_v 4.448 2004/11/17 21:34:03 mju Exp $ 00007 * 00008 * $Log: rvcdefns.h_v $ 00009 * Revision 4.448 2004/11/17 21:34:03 mju 00010 * Add flag for tracing raster boundary to control std attributes. 00011 * 00012 * Revision 4.447 2004/10/13 19:32:28 scowan 00013 * Added copy rvc flag. 00014 * 00015 * Revision 4.446 2004/09/14 20:20:14 scowan 00016 * Removed function prototype. 00017 * 00018 * Revision 4.445 2004/07/29 21:55:36 scowan 00019 * Removed unused prototypes. 00020 * 00021 * Revision 4.444 2004/07/27 22:13:04 scowan 00022 * Removed another unused prototype. 00023 * 00024 * Revision 4.443 2004/07/27 21:12:49 scowan 00025 * Removed 2d version of get object extents. 00026 * 00027 * Revision 4.442 2004/07/27 21:08:52 scowan 00028 * Removed use of mf get num object elements. 00029 * 00030 * Revision 4.441 2004/07/22 14:30:50 mju 00031 * Move objitem defns to own header. 00032 * 00033 * Revision 4.440 2004/07/20 15:51:13 scowan 00034 * Fixed annoying mac warning about comments. 00035 * 00036 * Revision 4.439 2004/07/19 23:18:58 scowan 00037 * Removed unused forward declaration. 00038 * 00039 * Revision 4.438 2004/07/19 13:53:02 mju 00040 * Add objitem.setnew variants using objectname/objectdesc. 00041 * 00042 * Revision 4.437 2004/06/16 19:53:27 scowan 00043 * Added flag to not generate the georeference for cross sections. 00044 * 00045 * Revision 4.436 2004/06/03 22:11:03 scowan 00046 * Removed unused defines. 00047 * 00048 * Revision 4.435 2004/06/03 21:36:40 scowan 00049 * Removed unused defines. 00050 * 00051 * Revision 4.434 2004/04/07 23:04:35 scowan 00052 * Added a copy flag. 00053 * 00054 * Revision 4.433 2004/03/31 22:38:56 mju 00055 * Remove unused getobjflag values. 00056 * Mark obsolete getobjflag_dftnew and _usefilter as deprecated. 00057 * 00058 * Revision 4.432 2004/03/30 15:43:16 scowan 00059 * Undeprecated folder usable flag. 00060 * 00061 * Revision 4.431 2004/03/22 18:14:50 scowan 00062 * Added field to link item. 00063 * 00064 * Revision 4.430 2004/03/19 18:41:29 scowan 00065 * Added callbacks for child operations. 00066 * 00067 * Revision 4.429 2004/03/11 16:29:21 mju 00068 * Change prototypes for mdlggetobject to not have extra form stuff. 00069 * 00070 * Revision 4.428 2004/03/10 23:15:02 scowan 00071 * Marked many functions as deprecated. 00072 * 00073 * Revision 4.427 2004/03/10 21:33:51 mju 00074 * Remove mdlgGetSubobject as no longer used. 00075 * 00076 * Revision 4.426 2004/01/28 23:14:27 scowan 00077 * Changed cross section prototype. 00078 * 00079 * Revision 4.425 2003/11/14 15:35:50 mju 00080 * REmove mdlgMaintProjectFile. 00081 * 00082 * Revision 4.424 2003/11/10 18:45:07 mju 00083 * Add objitem.setobjectinfo. 00084 * 00085 * Revision 4.423 2003/11/06 23:04:17 scowan 00086 * Removed prototype of removed function. 00087 * 00088 * Revision 4.422 2003/10/27 17:14:12 scowan 00089 * Changed not selectable filt flag to be the same as filt not usable. 00090 * 00091 * Revision 4.421 2003/10/22 17:46:03 scowan 00092 * Deprecated some filt flags. 00093 * 00094 * Revision 4.420 2003/10/15 17:39:12 mju 00095 * Deprecate groupkey. 00096 * 00097 * Revision 4.419 2003/10/08 22:27:49 scowan 00098 * Removed unused function call. 00099 * 00100 * Revision 4.418 2003/10/06 20:06:30 scowan 00101 * Pruned unused rfunctions. 00102 * 00103 * Revision 4.417 2003/10/03 21:30:29 scowan 00104 * nc. 00105 * 00106 * Revision 4.416 2003/10/02 19:15:27 scowan 00107 * Removed get localized name function. 00108 * 00109 * Revision 4.415 2003/09/26 19:56:07 scowan 00110 * Adjustment of include files. 00111 * 00112 * Revision 4.414 2003/09/26 15:57:04 scowan 00113 * Removed open link file function. 00114 * 00115 * Revision 4.413 2003/09/26 14:47:06 scowan 00116 * Do not export function that will soon be deprecated. 00117 * 00118 * Revision 4.412 2003/09/25 22:25:13 scowan 00119 * Removed unused functions and methods. 00120 * 00121 * Revision 4.411 2003/09/22 19:56:27 scowan 00122 * Removed call to copy file raw, it has been replaced. 00123 * 00124 * Revision 4.410 2003/09/15 23:00:14 scowan 00125 * Added callback reason. 00126 * 00127 * Revision 4.409 2003/09/15 13:49:56 fileserver!dwilliss 00128 * Doxygen 00129 * 00130 * Revision 4.408 2003/09/02 17:10:44 scowan 00131 * Moved some prototypes. 00132 * 00133 * Revision 4.407 2003/09/02 16:56:36 dwilliss 00134 * Added COPYRVC flag to freeze computed fields 00135 * 00136 * Revision 4.406 2003/08/29 23:02:57 scowan 00137 * Removed unused functions. 00138 * 00139 * Revision 4.405 2003/08/29 21:45:27 scowan 00140 * Cleanup unused functions. 00141 * 00142 * Revision 4.404 2003/08/28 19:34:01 scowan 00143 * nc. 00144 * 00145 * Revision 4.403 2003/08/28 15:24:59 scowan 00146 * Removed use of fname obj list struct and functions. 00147 * 00148 * Revision 4.402 2003/08/27 21:31:26 scowan 00149 * Added structures and removed functions and other stuff. 00150 * 00151 * Revision 4.401 2003/08/15 16:42:05 scowan 00152 * Removed unused copy rvc flags. 00153 * 00154 * Revision 4.400 2003/08/13 21:43:24 scowan 00155 * Removed copy object "T" function prototypes. 00156 * 00157 * Revision 4.399 2003/08/11 19:05:29 scowan 00158 * Added another copy function. 00159 * 00160 * Revision 4.398 2003/07/21 19:04:34 mju 00161 * Add MAKELINKFLAG values for ColorComposite and ColorSeparate. 00162 * 00163 * Revision 4.397 2003/05/13 17:23:59 scowan 00164 * Added new object type. 00165 * 00166 * Revision 4.396 2003/05/12 19:22:13 mju 00167 * Make mfwritegen take const ptr. 00168 * 00169 * Revision 4.395 2003/05/07 14:50:31 scowan 00170 * Added new object types. 00171 * 00172 * Revision 4.394 2003/04/29 20:55:40 scowan 00173 * Added shape object type and function prototypes. 00174 * 00175 * Revision 4.393 2003/04/15 13:23:13 mju 00176 * Include rect.h 00177 * 00178 * Revision 4.392 2003/04/09 19:18:13 scowan 00179 * Added shape object type. 00180 * 00181 * Revision 4.391 2003/03/07 18:43:41 scowan 00182 * *** empty log message *** 00183 * 00184 * Revision 4.390 2003/03/07 18:43:22 scowan 00185 * *** empty log message *** 00186 * 00187 * Revision 4.389 2003/03/07 18:41:58 scowan 00188 * Added point type change callback struct. 00189 * 00190 * Revision 4.388 2003/03/04 21:01:18 scowan 00191 * nc. 00192 * 00193 * Revision 4.387 2003/01/28 19:03:00 mju 00194 * nc. 00195 * 00196 * Revision 4.386 2003/01/10 21:49:18 scowan 00197 * Comment out table and metadata otype's to remove a conflict with oracle include file. 00198 * Use rvc object enum values instead. 00199 * 00200 * Revision 4.385 2003/01/06 15:06:31 mju 00201 * Use void* for dlgparent in usernamepassword. 00202 * 00203 * Revision 4.384 2002/12/04 16:08:12 scowan 00204 * Changed parent dlg pointer, hope it works. 00205 * 00206 * Revision 4.383 2002/11/20 15:56:46 mju 00207 * Add initialization ctor to fnameinodeuc. 00208 * 00209 * Revision 4.382 2002/10/02 16:15:17 mju 00210 * Tweak comments to hopefully help surveyor do docs. 00211 * 00212 * Revision 4.381 2002/09/19 15:05:04 mju 00213 * Add OBJITEM ctor from filepath/inode. 00214 * 00215 * Revision 4.380 2002/09/16 17:02:24 mju 00216 * Add objitem::setitem() using filepath/inode. 00217 * 00218 * Revision 4.379 2002/09/11 18:00:06 mju 00219 * Add objitem::setobjectpath. 00220 * 00221 * Revision 4.378 2002/09/11 17:34:38 mju 00222 * Add objitem::isexisting. 00223 * 00224 * Revision 4.377 2002/09/10 21:50:05 mju 00225 * Add objitem::IsAssigned. 00226 * 00227 * Revision 4.376 2002/09/10 17:51:35 mju 00228 * Change objitem getobjectname/desc to return const fixedstr ref. 00229 * 00230 * Revision 4.375 2002/09/09 14:05:35 mju 00231 * Remove deprecated stuff. 00232 * Always prevent_memfunc. 00233 * 00234 * Revision 4.373 2002/09/03 21:01:53 mju 00235 * Add OBJITEM ctor using name, desc, source. 00236 * 00237 * Revision 4.372 2002/08/30 14:06:00 mju 00238 * Remove obsolete flag. 00239 * Move seltabfield flags to <rvc/dialogs.h> 00240 * 00241 * Revision 4.371 2002/08/28 17:54:09 mju 00242 * Add MAKELINKFLAG_NoContrastTables. 00243 * 00244 * Revision 4.370 2002/08/23 13:24:41 mju 00245 * Remove objitem::setobjectname/desc using const UNICODE* as OBJECTNAME/DESC 00246 * has implicit ctor from const UNICODE* and thus will be used anyway. Having 00247 * overloads causes ambiguity when using MISTRING. 00248 * 00249 * Revision 4.369 2002/08/21 20:39:22 scowan 00250 * Deprecate old object name define. 00251 * 00252 * Revision 4.368 2002/08/20 15:12:11 mju 00253 * Remove obsolete dialog defines. 00254 * Use prevent_memfunc macro, still deprecated. 00255 * 00256 * Revision 4.367 2002/08/13 14:55:20 scowan 00257 * Added comment. 00258 * 00259 * Revision 4.366 2002/08/13 14:14:45 scowan 00260 * Added new filter reason. 00261 * 00262 * Revision 4.365 2002/08/07 22:20:37 dwilliss 00263 * Prototype for a new private function 00264 * 00265 * Revision 4.364 2002/06/10 19:50:02 mju 00266 * Add SELTABFIELD_AllowNone. 00267 * 00268 * Revision 4.363 2002/05/31 15:34:19 mju 00269 * Restore mfinitapplevel prototype. 00270 * 00271 * Revision 4.362 2002/05/30 15:21:30 mju 00272 * Remove obsolete mfinitapplevel prototype. 00273 * 00274 * Revision 4.361 2002/05/30 15:05:44 mju 00275 * Change rvcappfuncs.OpenFont to use const. 00276 * 00277 * Revision 4.360 2002/05/24 20:19:30 scowan 00278 * Added is equal to basic info. 00279 * 00280 * Revision 4.359 2002/05/23 15:07:39 scowan 00281 * Deprecate close all function. 00282 * 00283 * Revision 4.357 2002/05/03 21:58:07 scowan 00284 * Fixed is copyable. 00285 * 00286 * Revision 4.356 2002/05/03 21:31:45 scowan 00287 * Added is copyable function. 00288 * 00289 * Revision 4.355 2002/05/02 21:18:52 scowan 00290 * Added change object link. 00291 * 00292 * Revision 4.354 2002/05/01 21:41:08 mju 00293 * Add MfCloseFile overload using RVCFILEHANDLE reference. 00294 * 00295 * Revision 4.353 2002/03/20 15:57:39 mju 00296 * Unimplement Mfgetuniquename/mfmakevalidname as has RVC:: equivalents already. 00297 * 00298 * Revision 4.351 2002/03/08 18:16:05 scowan 00299 * Added methods and deprecated mem... of rvc..info structures. 00300 * 00301 * Revision 4.350 2002/02/19 18:03:42 scowan 00302 * Changed basic info object name and desc to use fixedstring<>. 00303 * 00304 * Revision 4.349 2002/02/15 16:36:53 mju 00305 * Make SELTABFIELD enum. 00306 * 00307 * Revision 4.348 2002/02/14 21:43:46 mju 00308 * Add OBJITEM::SetNew. 00309 * 00310 * Revision 4.347 2001/12/27 18:32:02 scowan 00311 * Added method to obj item. 00312 * Removed retired functions. 00313 * 00314 * Revision 4.346 2001/12/10 20:44:09 scowan 00315 * Retired some unused rvc functions. 00316 * 00317 * Revision 4.345 2001/11/01 17:53:03 mju 00318 * Add OBJITEM::SetObjectName/Description using Unicode. 00319 * 00320 * Revision 4.344 2001/11/01 16:57:35 scowan 00321 * Added object type. 00322 * 00323 * Revision 4.343 2001/10/18 14:27:28 scowan 00324 * Added methods to set OBJITEM name and description. 00325 * 00326 * Revision 4.342 2001/09/28 17:56:50 mju 00327 * Add default parm for MfFindFilePath 00328 * 00329 * Revision 4.341 2001/09/20 15:37:04 mju 00330 * Need MfGenerateLockName/Ex prototypes for TNTatlas on Unix. 00331 * 00332 * Revision 4.340 2001/09/19 14:46:29 mju 00333 * Add functions and class to allow disabling of prompt for missing linked file. 00334 * 00335 * Revision 4.339 2001/09/13 20:50:41 mju 00336 * Unify X and MFC versions of object selection dialog prototypes. 00337 * 00338 * Revision 4.338 2001/07/25 15:33:32 scowan 00339 * Flag in wrong place. 00340 * 00341 * Revision 4.337 2001/07/25 15:17:01 scowan 00342 * Added new rvcmode flag. 00343 * 00344 * Revision 4.336 2001/07/19 16:37:48 scowan 00345 * Added clear method to objitem. 00346 * Prevent genitor from adding functions to objitem docs. 00347 * 00348 * Revision 4.335 2001/07/17 20:20:38 scowan 00349 * *** empty log message *** 00350 * 00351 * Revision 4.334 2001/07/17 15:44:21 mju 00352 * Add #undef MIMFCDLLEXPORT at end. 00353 * 00354 * Revision 4.333 2001/07/16 15:24:39 mju 00355 * Use const in MfEditNameDesc. 00356 * 00357 * Revision 4.332 2001/07/16 14:08:28 mju 00358 * Add defaults for filtfunc/data for MfFindObject. 00359 * 00360 * Revision 4.331 2001/07/10 13:38:20 mju 00361 * Add SELTABFIELD_NoInternal. 00362 * 00363 * Revision 4.330 2001/07/06 20:43:07 mju 00364 * Add MfGenerateLockNames() and retire old lock name gernation functions. 00365 * 00366 * Revision 4.329 2001/07/05 15:59:23 mju 00367 * Add OBJITEM::IsResolved(). 00368 * 00369 * Revision 4.328 2001/07/05 13:06:12 mju 00370 * Remove unwanted ; 00371 * 00372 * Revision 4.327 2001/06/29 14:57:45 mju 00373 * Add functions for general lite usability testing. 00374 * 00375 * Revision 4.326 2001/06/25 15:11:58 mju 00376 * Add MfGetAutoLinkPatternList prototype. 00377 * 00378 * Revision 4.325 2001/06/22 22:22:43 mju 00379 * Add MAKELINKFLAGS. 00380 * 00381 * Revision 4.324 2001/06/15 19:19:13 mju 00382 * Use const in MfCompareDateTime. 00383 * Add OBJITEM::GetObjectName/Description. 00384 * Change OBJITEM::GetObjectType() to return OBJTYPE. 00385 * 00386 * Revision 4.323 2001/06/15 15:55:17 scowan 00387 * Changed file open widget poarent type to void*, cannot have changing 00388 * type in a shared library. 00389 * 00390 * Revision 4.322 2001/06/14 17:15:48 mju 00391 * Add RVCFILE_NoDialog defn. 00392 * Make MfFileOpen() using FILEPATH a function instead of inline. 00393 * 00394 * Revision 4.321 2001/06/14 15:58:17 scowan 00395 * Nothing. 00396 * 00397 * Revision 4.320 2001/06/13 16:54:51 scowan 00398 * Adeed objitem, objectname, objectdesc, obectsource to the RVC namespqace. 00399 * Added typedefs for original names. 00400 * 00401 * Revision 4.319 2001/06/07 15:39:19 scowan 00402 * More const. 00403 * 00404 * Revision 4.318 2001/06/01 16:00:08 scowan 00405 * Export YAFF. 00406 * 00407 * Revision 4.317 2001/05/15 17:30:53 scowan 00408 * Added extra read list function. 00409 * 00410 * Revision 4.316 2001/04/09 20:09:30 scowan 00411 * *** empty log message *** 00412 * 00413 * Revision 4.315 2001/01/18 22:04:30 scowan 00414 * Added redo chagnes function. 00415 * 00416 * Revision 4.314 2000/12/29 22:50:54 msmith 00417 * Genitor documentation. 00418 * 00419 * Revision 4.313 2000/12/27 17:37:58 scowan 00420 * Added get filepath function. 00421 * 00422 * Revision 4.312 2000/12/20 15:41:40 mju 00423 * Use ValidMultiProto instead of ValidListProto for older MdlgGetObjectSet function. 00424 * 00425 * Revision 4.311 2000/12/19 17:54:30 msmith 00426 * Fixed GetObjects - broken in documentation. 00427 * 00428 * Revision 4.310 2000/12/19 17:04:54 mju 00429 * Remove obsolete #defines. 00430 * 00431 * Revision 4.309 2000/12/19 16:41:59 msmith 00432 * Genitor documentation. 00433 * 00434 * Revision 4.308 2000/12/01 22:55:43 mju 00435 * Add rvcfilehandle::IsOpen(). 00436 * 00437 * Revision 4.307 2000/11/21 16:38:56 scowan 00438 * Fixed TNTserver build define. 00439 * 00440 * Revision 4.306 2000/11/06 18:15:17 scowan 00441 * *** empty log message *** 00442 * 00443 * Revision 4.305 2000/11/06 17:51:45 scowan 00444 * *** empty log message *** 00445 * 00446 * Revision 4.304 2000/11/06 17:46:35 scowan 00447 * Do not export Mdlg object selection if building for TNTserver. 00448 * 00449 * Revision 4.303 2000/11/02 22:52:48 dwilliss 00450 * Export all the Mdlg functions from mimfc.dll for WIN32_NATIVE 00451 * 00452 * \endif 00453 **/ 00454 00455 #ifndef INC_MI32_RVCDEFNS_H 00456 #define INC_MI32_RVCDEFNS_H 00457 00458 #if defined (__cplusplus) 00459 00460 #ifndef INC_MI32_STDDEFNS_H 00461 #include <mi32/stddefns.h> 00462 #endif 00463 00464 #ifndef INC_MI32_FIXEDSTR_H 00465 #include <mi32/fixedstr.h> 00466 #endif 00467 00468 #ifndef INC_MI32_FILEPATH_H 00469 #include <mi32/filepath.h> 00470 #endif 00471 00472 #ifndef INC_MI32_RECT_H 00473 #include <mi32/rect.h> 00474 #endif 00475 00476 #ifndef INC_MI32_MCB_H 00477 #include <mi32/mcb.h> 00478 #endif 00479 00480 #ifndef INC_RVC_OBJTYPE_H 00481 #include <rvc/objtype.h> 00482 #endif 00483 00484 00485 #ifdef RVCLOWDLL 00486 #define RVCLOWLIBEXPORT MI_DLLEXPORT 00487 #else 00488 #define RVCLOWLIBEXPORT MI_DLLIMPORT 00489 #endif 00490 00491 #ifdef RVCAPPDLL 00492 #define RVCAPPLIBEXPORT MI_DLLEXPORT 00493 #define RVCAPPCLASSEXPORT MI_DLLCLASSEXPORT 00494 #else 00495 #define RVCAPPLIBEXPORT MI_DLLIMPORT 00496 #define RVCAPPCLASSEXPORT MI_DLLCLASSIMPORT 00497 #endif 00498 00499 #include <mi32/hdrtypes.h> 00500 00501 #ifndef INC_MI32_CRYPTO_H 00502 #include <mi32/crypto.h> 00503 #endif 00504 00505 //! Forward declarations 00506 struct RVCCADINFO; 00507 struct RVCRASTINFO; 00508 struct RVCTININFO; 00509 struct RVCVECTINFO; 00510 struct TEXTSTYLE; 00511 struct TRANSPARM; 00512 class POLYLINE; 00513 00514 namespace RVC { 00515 class OBJTYPESET; 00516 class OBJECT; 00517 class OBJITEM; 00518 typedef MILIST<OBJITEM> OBJITEMLIST; 00519 } 00520 00521 00522 #define MfValidNameChar(c) ((c)=='_'||(c)>='A'&&(c)<='Z'||(c)>='a'&&(c)<='z'||(c)>='0'&&(c)<='9'||(c)>=160) 00523 #define FOLDERSEPARATOR ' ' 00524 #define OBJTYPESEPARATOR '.' 00525 00526 /*--------------------------------------------------------------------------*/ 00527 /* Definitions of basic object types supported by RVC */ 00528 /*--------------------------------------------------------------------------*/ 00529 /* mode for opening rvc objects of all kinds */ 00530 #define RVCMODE_Mask 0x7F000000 00531 #define RVCMODE_WriteAttempt 0x10000000 //!< Attempt to open for write, else open for read 00532 #define RVCMODE_Read 0x40000000 00533 #define RVCMODE_Write 0x20000000 00534 #define RVCMODE_RW 0x60000000 00535 #define RVCMODE_RWAttempt 0x70000000 00536 #define RVCMODE_ReadAhead 0x08000000 00537 #define RVCMODE_Bogus 0x04000000 00538 00539 /* mode for opening rvc files */ 00540 #define RVCFILE_OpenMask 0x000000FF 00541 #define RVCFILE_ReadLock 0x00000001 00542 #define RVCFILE_WriteLock 0x00000002 00543 #define RVCFILE_WriteLockAttempt 0x00000004 00544 #define RVCFILE_SharedLock 0x00000008 //!< Not Implemented Yet 00545 #define RVCFILE_NoLock 0x00000010 //!< Not to be used unless file is system file (i.e. icons.ref) 00546 #define RVCFILE_ReadAbsolute 0x00000020 //!< File is to be opened read-only, no lock file and no possibility of change 00547 #define RVCFILE_NoDialog 0x00000040 //!< Don't display dialog if file is locked, just return error 00548 #define RVCFILE_WriteAbsolute 0x00000080 //!< Override ReadAbsolute system flag for a specific file 00549 00550 #define RVCFILE_TempFileMask 0x0000FF00 00551 #define RVCFILE_DeleteOnClose 0x00000100 00552 #define RVCFILE_DeleteOnExit 0x00000200 00553 #define RVCFILE_NoDelete 0x00000800 00554 00555 #define RVCFILE_ForceUnlockBtn 0x00040000 //!< Force 'unlock' button in mxopenfl.c 00556 00557 /************************************************************************** 00558 * Listing of RVC object types 00559 **************************************************************************/ 00560 00561 //! ----- Top level RVC objects ----- 00562 #define OTYPE_ALL 0 //!< Used by Mf??? functions to allow all objects 00563 #define OTYPE_FILE 1 00564 #define OTYPE_FOLDER 2 //!< An object to contain other objects 00565 #define OTYPE_RASTER 3 //!< Raster object 00566 #define OTYPE_VECTOR 4 //!< Vector object 00567 #define OTYPE_CAD 5 //!< CAD object 00568 #define OTYPE_DBASE 6 //!< General database object 00569 #define OTYPE_STYLE 7 //!< Drawing style object 00570 #define OTYPE_DBQUERY 8 //!< Generic database query string 00571 #define OTYPE_FILTER 9 //!< Spatial filter description 00572 #define OTYPE_VIDEOSEQ 10 //!< Ref for sequence of frames on video disk 00573 #define OTYPE_PRTCOLORBAL 30 //!< Printer color balance 00574 #define OTYPE_DISP_GROUP 37 //!< Display group layout information 00575 #define OTYPE_DISP2DWINDOW 38 //!< Display window layout information 00576 #define OTYPE_TIN 39 //!< TIN object 00577 #define OTYPE_LEGEND 41 //!< Legend object 00578 #define OTYPE_REGION 45 //!< Region object 00579 #define OTYPE_DISP_LAYOUT 54 //!< Display layout information 00580 #define OTYPE_SML 55 //!< Stand-alone SML Script 00581 #define OTYPE_SPECTRAL 56 //!< Spectral object 00582 #define OTYPE_RASTERSET 57 //!< Raster Set object 00583 #define OTYPE_DISP_SIM3D 59 //!< Display 3D simulation parameters object 00584 #define OTYPE_HYPERSPECTRAL 60 //!< HyperSpectral object 00585 #define OTYPE_LAYOUTTEMPLATE 65 //!< Layout Template object 00586 #define OTYPE_THUMBNAIL 66 //!< Tumbnail object 00587 #define OTYPE_HOUGHPARMS 71 //!< Hough transformation parameters object 00588 //!#define OTYPE_SHAPE 72 // Geometric "Shape" object (Shapefile, Oracle Spatial, ...) [ USE RVC::OBJECT_Shape ] 00589 00590 //! ----- RVC subobjects common to multiple objects ----- 00591 #define OTYPE_GEOREF 11 //!< Georeference information 00592 #define OTYPE_PAGELAYOUT 12 //!< Information for page layouts 00593 #define OTYPE_HYPER 13 //!< Hyper-index information 00594 #define OTYPE_DBFORM 14 //!< Database display layout 00595 #define OTYPE_TIEPOINT 15 //!< Tie point list 00596 #define OTYPE_DISPPARM 40 //!< Display parameter structure 00597 #define OTYPE_TEXT 42 //!< Generic Text Object 00598 #define OTYPE_ASSOCIATION 46 //!< External file association object 00599 #define OTYPE_QTREE 47 //!< Search Quad Tree object 00600 #define OTYPE_DBPARM 48 //!< Database parameters object 00601 #define OTYPE_THEME 49 //!< Theme Mapping parameters object 00602 //!#define OTYPE_METADATA 50 // Metadata object - text [ CONFLICTS WITH ORACLE INCLUDE FILE, USE RVC::OBJECT_Metadata ] 00603 #define OTYPE_EDITPARM 53 //!< Object Editor parameter structure 00604 #define OTYPE_SPATIALTREEOLD 67 //!< DEPRECATED 00605 #define OTYPE_SPATIALTREEOLD2 69 //!< DEPRECATED 00606 #define OTYPE_SPATIALTREE 70 //!< Vector element sort tree 00607 //!#define OTYPE_ICMPROFILE 74 // ICM Profile object [ USE RVC::OBJTYPE_ICMProfile ] 00608 00609 //! ----- RVC subobjects common to raster objects ----- 00610 #define OTYPE_HISTO 16 //!< Raster histogram 00611 #define OTYPE_CONTAB 17 //!< Contrasting table 00612 #define OTYPE_2DHISTINFO 18 //!< Information about 2-D histogram 00613 #define OTYPE_COLMAP 19 //!< Color table for rasters 00614 #define OTYPE_RASTDBASE 20 //!< Database for raster cells 00615 #define OTYPE_FREQPROCINFO 21 //!< Information to match frequency-domain rasters 00616 #define OTYPE_RASTERTREND 22 //!< Trend Information 00617 #define OTYPE_SPOTHEADER 23 //!< Header (leader) file from SPOT tape 00618 #define OTYPE_CAMERACALIB 24 //!< Camera calibration information 00619 #define OTYPE_SENSORINFOOLD 58 //!< Sensor calibration information for spectral bands (OLD) 00620 #define OTYPE_HYPERHIST 62 //!< Hyperspectral histogram sub-object 00621 #define OTYPE_HYPERSENSOR 63 //!< Hyperspectral sensor sub-object 00622 #define OTYPE_SENSORINFO 64 //!< Sensor calibration information for spectral bands 00623 00624 //! ----- RVC subobjects common to vector objects ----- 00625 #define OTYPE_POINTDBASE 25 //!< Database for point elements 00626 #define OTYPE_LINEDBASE 26 //!< Database for line elements 00627 #define OTYPE_POLYDBASE 27 //!< Database for polygon elements 00628 #define OTYPE_NODEDBASE 28 //!< Database for node elements 00629 #define OTYPE_VECTDBASE 44 //!< Database for vector objects 00630 00631 //! ----- RVC subobjects common to CAD objects ----- 00632 #define OTYPE_CADDBASE 29 //!< Database for CAD objects 00633 00634 //! ----- RVC subobjects common to SHAPE objects ----- 00635 //!#define OTYPE_SHAPEDBASE 73 // Database for CAD objects 00636 00637 //! ----- RVC subobjects common to TIN objects ----- 00638 #define OTYPE_TINDBASE 43 //!< Database for TIN objects 00639 00640 //! ----- RVC subobjects common to database objects ----- 00641 //!#define OTYPE_TABLE 51 // Table OTYPE tag for databases [ CONFLICTS WITH ORACLE INCLUDE FILE, USE RVC::OBJECT_Table ] 00642 #define OTYPE_INVDBLIST 52 //!< Database table to element lists 00643 #define OTYPE_DBCONSTRAINT 61 //!< Database table constraint information 00644 #define OTYPE_DBINDEX 68 //!< Database table constraint information 00645 00646 //! ----- RVC objects used in .REF files ----- 00647 #define OTYPE_PRINTDEF 31 //!< Description for raster printer devices 00648 #define OTYPE_PLOTDEF 32 //!< Description for pen plotter devices 00649 #define OTYPE_OFONT 33 //!< Outline(stroke) font 00650 #define OTYPE_GENERICREF 34 //!< Generic reference object, not user-viewable object 00651 #define OTYPE_SCANDEF 35 //!< Description for scanners 00652 #define OTYPE_XYDIGDEF 36 //!< Description for XY digitizer devices 00653 00654 #define OTYPE_LAST 75 //!< Update rvcmain.c and messages.txt [rvc] section when change 00655 00656 #define RVCCONV_RASTER RVCCONV_RastInfo 00657 #define RVCCONV_CAD RVCCONV_CADInfo 00658 #define RVCCONV_HISTO RVCCONV_HistInfo 00659 #define RVCCONV_CONTAB RVCCONV_ConTab 00660 #define RVCCONV_COLMAP RVCCONV_CMapInfo 00661 #define RVCCONV_DBASE RVCCONV_DbaseInfo 00662 #define RVCCONV_GEOREF RVCCONV_GeoRefInfo 00663 #define RVCCONV_VECTOR RVCCONV_VectInfo 00664 #define RVCCONV_TIEPOINT RVCCONV_TiePointInfo 00665 #define RVCCONV_TIN RVCCONV_TINInfo 00666 #define RVCCONV_CAMERACALIB RVCCONV_CameraInfo 00667 #define RVCCONV_FILTER RVCCONV_FiltInfo 00668 #define RVCCONV_STYLE RVCCONV_StyleInfo 00669 #define RVCCONV_REGION RVCCONV_RegionInfo 00670 #define RVCCONV_DISP2DWINDOW 0 00671 #define RVCCONV_DISP2DGROUP 0 00672 00673 /*----------------------------------------------------------------------------*/ 00674 /* Definitions for general object headers */ 00675 /*----------------------------------------------------------------------------*/ 00676 00677 struct RVCDATETIME { 00678 UINT8 year; //!< Add 1900 to get actual year 00679 UINT8 month; //!< 1-12 00680 UINT8 day; //!< 1-31 00681 UINT8 hour; //!< 0-23 00682 UINT8 minute; //!< 0-59 00683 UINT8 second; //!< 0-59 00684 UINT16 count; //!< count; if more than one object created with this time 00685 }; 00686 00687 namespace RVC { 00688 00689 typedef FIXEDSTRING<16> OBJECTNAME, OBJECTSOURCE; 00690 typedef FIXEDSTRING<64> OBJECTDESC; 00691 00692 } //! End of RVC namespace 00693 00694 typedef RVC::OBJECTNAME RVCOBJECTNAME; 00695 typedef RVC::OBJECTSOURCE RVCOBJECTSOURCE; 00696 typedef RVC::OBJECTDESC RVCOBJECTDESC; 00697 00698 //! Basic rvc info structure. 00699 struct RVCBASICINFO { 00700 RVC::OBJECTNAME name; //!< Object name 00701 RVC::OBJECTDESC desc; //!< Description 00702 RVCDATETIME create; //!< Create date 00703 RVCDATETIME lastmod; //!< Modification date 00704 RVCDATETIME lastused; //!< Used date 00705 RVC::OBJECTSOURCE source; //!< Source 00706 00707 RVCBASICINFO ( 00708 ) {Clear();} 00709 00710 void Clear ( 00711 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00712 00713 bool IsEqual ( 00714 const RVCBASICINFO& rhs 00715 ) const {return (memcmp(static_cast<const void*>(this), static_cast<const void*>(&rhs), sizeof(*this)) == 0);} 00716 00717 }; 00718 00719 inline bool operator== ( 00720 const RVCBASICINFO& lhs, 00721 const RVCBASICINFO& rhs 00722 ) {return (lhs.IsEqual(rhs));} 00723 00724 inline bool operator!= ( 00725 const RVCBASICINFO& lhs, 00726 const RVCBASICINFO& rhs 00727 ) {return (!lhs.IsEqual(rhs));} 00728 00729 00730 //! General rvc info structure. 00731 struct RVCGENINFO : public RVCBASICINFO { 00732 UINT32 objtype; //!< Object type 00733 RVCINODENUM objectinode; //!< Object inode 00734 RVCINODENUM parentinode; //!< Parent inode 00735 INT32 Size; //!< Object size 00736 00737 RVCGENINFO ( 00738 ) {Clear();} 00739 00740 void Clear ( 00741 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00742 00743 RVC::OBJTYPE GetObjectType ( 00744 ) const { return (static_cast<RVC::OBJTYPE>(this->objtype)); } 00745 }; 00746 00747 //! Array info structure. 00748 struct RVCARRAYINFO : public RVCGENINFO { 00749 INT32 NumItems; //!< Number of items 00750 INT32 ItemSize; //!< Item size 00751 00752 RVCARRAYINFO ( 00753 ) {Clear();} 00754 00755 RVCARRAYINFO ( 00756 const RVCGENINFO& ginfo 00757 ) {Clear();*static_cast<RVCGENINFO*>(this) = ginfo;} 00758 00759 RVCARRAYINFO& operator= ( 00760 const RVCGENINFO& ginfo 00761 ) {*static_cast<RVCGENINFO*>(this) = ginfo; return (*this);} 00762 00763 void Clear ( 00764 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00765 00766 }; 00767 00768 //! General list info structure. 00769 struct RVCGENLISTINFO : public RVCGENINFO { 00770 INT32 NumItems; //!< Number of items 00771 INT32 MaxItemSize; //!< Maximum item size 00772 00773 RVCGENLISTINFO ( 00774 ) {Clear();} 00775 00776 RVCGENLISTINFO ( 00777 const RVCGENINFO& ginfo 00778 ) {Clear();*static_cast<RVCGENINFO*>(this) = ginfo;} 00779 00780 RVCGENLISTINFO& operator= ( 00781 const RVCGENINFO& ginfo 00782 ) {*static_cast<RVCGENINFO*>(this) = ginfo; return (*this);} 00783 00784 void Clear ( 00785 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00786 00787 }; 00788 00789 //! Disallow memset/memcpy. 00790 PREVENT_MEMFUNC(RVCBASICINFO) 00791 PREVENT_MEMFUNC(RVCGENINFO) 00792 PREVENT_MEMFUNC(RVCARRAYINFO) 00793 PREVENT_MEMFUNC(RVCGENLISTINFO) 00794 00795 00796 //! Structure to hold RVC link information. 00797 struct RVCLINKDATAEX { 00798 FILEPATH m_FilePath; //!< Path name 00799 MISTRING m_ObjName; //!< Holds full name returned by MfGetObjectName() 00800 00801 bool IsEqual ( 00802 const RVCLINKDATAEX& rhs 00803 ) const {return (m_FilePath == rhs.m_FilePath && m_ObjName == rhs.m_ObjName);} 00804 00805 }; 00806 00807 inline bool operator== ( 00808 const RVCLINKDATAEX& lhs, 00809 const RVCLINKDATAEX& rhs 00810 ) {return (lhs.IsEqual(rhs));} 00811 00812 inline bool operator!= ( 00813 const RVCLINKDATAEX& lhs, 00814 const RVCLINKDATAEX& rhs 00815 ) {return (!lhs.IsEqual(rhs));} 00816 00817 00818 namespace RVC { 00819 00820 struct LINKITEM { 00821 FILEPATH m_Filename; 00822 MISTRING m_ObjName; 00823 OBJTYPE m_ObjType; 00824 RVCINODENUM m_SrcInode; //!< The source object that contains the link 00825 00826 LINKITEM ( 00827 ) : 00828 m_ObjType(OBJTYPE_All), 00829 m_SrcInode(-1) 00830 {} 00831 00832 }; 00833 00834 } //! End of RVC namespace 00835 00836 00837 //! GUI functions structure. 00838 struct RVCGUIFUNCS { 00839 INT32 size; //!< Size 00840 int (*GetFile)(void*, UNICODE*, const UNICODE*, void*, int (*)(UNICODE*, char*, void*), void*, UINT32); //! Get a file 00841 int (*OpenFile)(void*, const UNICODE*, UINT32); //! Open a file 00842 int (*ChangeFileLock)(void*, int, UINT32); //! Change the lock on a file 00843 void (*AddCallback)(McbCallbackFunc, void*, UINT32); //! Add a callback 00844 int (*UsernamePasswordDialog)(void *dlgparent, UNICODE*, int, int*, int*, UINT32); //! Username / password dialog 00845 void (*DisplayErrorCode)(void*, int); //! Display an error code 00846 int (*OpenFileEx)(void*, const FILEPATH&, UINT32); //! Open a file 00847 }; 00848 00849 //! App functions structure. 00850 struct RVCAPPFUNCS { 00851 INT32 size; //!< Size 00852 int (*GetStringExtents)(TEXTSTYLE*, DPOINT2D*, INT32, UINT32, const UNICODE*, DRECT2D*); //! Get the extents of a string 00853 int (*GetFontName)(int, UNICODE*); //! Get a font name 00854 int (*OpenFont)(const UNICODE*); //! Open a font 00855 int (*GetStringExtentsJustify)(TEXTSTYLE*, DPOINT2D*, INT32, UINT32, const UNICODE*, DRECT2D*); //! Get the extents of a justified string 00856 }; 00857 00858 #ifndef INC_RVC_OBJITEM_H 00859 #include <rvc/objitem.h> 00860 #endif 00861 00862 /*----------------------------------------------------------------------------*/ 00863 /* Flags for linking to external objects */ 00864 /*----------------------------------------------------------------------------*/ 00865 00866 #define RVCLINKFLAG_LoHi (0x00000001) /* Linked object stored LoHi */ 00867 #define RVCLINKFLAG_HiLo (0x00000002) /* Linked object stored HiLo */ 00868 #define RVCLINKFLAG_RO (0x00000004) /* Linked object is on read only media (internal) */ 00869 #define RVCLINKFLAG_Modified (0x00000008) /* Linked object may have been modified */ 00870 00871 /*----------------------------------------------------------------------------*/ 00872 /* Point conversion modes for vector and CAD */ 00873 /*----------------------------------------------------------------------------*/ 00874 00875 #define VECTMODE_ConvTo3D 0x0001 //!< convert 2D->3D 00876 #define VECTMODE_ConvTo2D 0x0002 //!< convert 3D->2D 00877 #define VECTMODE_Mask 0x0003 //!< Mask for currently valid bits 00878 00879 /*----------------------------------------------------------------------------*/ 00880 /* Values for PointType fields in headers */ 00881 /*----------------------------------------------------------------------------*/ 00882 00883 #define VPOINT_2DXY 1 //!< 2-D coordinates, X and Y given (default) 00884 #define VPOINT_2DXZ 2 //!< 2-D coordinates, X and Z given 00885 #define VPOINT_2DYZ 3 //!< 2-D coordinates, Y and Z given 00886 #define VPOINT_3DXY 4 //!< 3-D coordinates, X, Y given, Z constant 00887 #define VPOINT_3DXZ 5 //!< 3-D coordinates, X, Z given, Y constant 00888 #define VPOINT_3DYZ 6 //!< 3-D coordinates, Y, Z given, X constant 00889 #define VPOINT_3DXYZ 7 //!< 3-D coordinates, X, Y and Z given 00890 00891 /*----------------------------------------------------------------------------*/ 00892 /* FNAMEINODE/FNAMEINODEUC structures */ 00893 /*----------------------------------------------------------------------------*/ 00894 00895 //! Filename / inode structure. 00896 struct FNAMEINODEUC { 00897 UNICODE *filename; //!< Filename 00898 RVCINODENUM inode; //!< Inode 00899 FNAMEINODEUC *next; //!< Next inode 00900 RVCGENINFO *objinfo; //!< Object information 00901 void *userdata; //!< Reference data attached to the entry, useful for Motif list widgets 00902 FNAMEINODEUC ( 00903 ) { memset(this,0,sizeof(*this)); } 00904 }; 00905 00906 /*----------------------------------------------------------------------------*/ 00907 /* RVCFILELOCK structure Used in MfGetFileLockInfo() */ 00908 /*----------------------------------------------------------------------------*/ 00909 00910 //! File lock structure. 00911 struct RVCFILELOCK { 00912 int serialnum; //!< TNTmips key serial number 00913 int processid; //!< Process ID 00914 int userid; //!< User ID if OS uses one 00915 int parentid; //!< Parent process ID if OS uses one 00916 UNICODE username[64]; //!< Owner of the lock 00917 UNICODE stationname[64]; //!< Station lock was generated from 00918 RVCDATETIME locktime; //!< Time that the lock was created 00919 int IsReadOnly; //!< File requested is read only 00920 }; 00921 00922 /*----------------------------------------------------------------------------*/ 00923 /* Definitions (flags) for MfGet[File|Object]Status() */ 00924 /*----------------------------------------------------------------------------*/ 00925 00926 #define RVCFS_ReadOnly 0x00000001 00927 #define RVCFS_ReadLocked 0x00000002 00928 #define RVCFS_Writable 0x00000004 00929 #define RVCFS_WriteLocked 0x00000008 00930 #define RVCFS_Modified 0x00000010 00931 #define RVCFS_Tempfile 0x00000020 00932 #define RVCFS_TNTlite 0x00000040 //!< File was created by TNTlite 00933 #define RVCFS_Open 0x00000080 //!< File is currently opened 00934 00935 #define RVCOS_Composite 0x00000001 00936 #define RVCOS_Free 0x00000002 00937 #define RVCOS_Opened 0x00000004 00938 #define RVCOS_ReadOnly 0x00000008 00939 #define RVCOS_Writable 0x00000010 00940 #define RVCOS_Link 0x00000020 00941 #define RVCOS_ViewProtected 0x00000040 00942 #define RVCOS_EditProtected 0x00000080 00943 #define RVCOS_Bogus 0x00000100 00944 #define RVCOS_TNTlite 0x00000200 //!< Object was created by TNTlite 00945 #define RVCOS_BadInode 0x00000400 00946 00947 /*----------------------------------------------------------------------------*/ 00948 /* Definitions (flags) for MfCopyObject() */ 00949 /*----------------------------------------------------------------------------*/ 00950 00951 #define COPYRVC_SubObjects 0x00000001 //!< Copy subobjects under object 00952 #define COPYRVC_RasterLinks 0x00000002 //!< Transfer raster links instead of copying the raster 00953 #define COPYRVC_DBaseLinks 0x00000004 //!< Transfer dbase links instead of copying the dbase 00954 #define COPYRVC_DemoteIdentityTables 0x00000008 //!< Demote identity tables in MfDatabaseJoin() because they can no longer exist 00955 #define COPYRVC_PointDBase 0x00000010 //!< MfCopyDatabase(): Convert OTYPE_DBASE to OTYPE_POINTDBASE 00956 #define COPYRVC_MinimizeTableSize 0x00000020 //!< MfDatabaseJoin(): Minimize table sizes (convert Identity and OneToOne to OneRecordPerElement) 00957 #define COPYRVC_DontRemoveRecords 0x00000200 //!< MfDatabaseJoin(): Do not remove records while copying 00958 #define COPYRVC_RVCLinks 0x00000400 //!< Copy RVC object links instead of the objects themselves 00959 #define COPYRVC_RemoveStdAttTables 0x00000800 //!< Remove standard attribute tables in MfCopyDatabaseP() 00960 #define COPYRVC_NoDBLists 0x00004000 //!< MfCopyDatabase(): Don't copy DBList of database 00961 #define COPYRVC_IgnoreStdAttTables 0x00040000 //!< MfDatabaseJoin(): Ignore source standard attribute tables 00962 #define COPYRVC_FreezeComputedFields 0x00080000 //!< MfCopyTable(): Computed fields in source become regular fields in dest. 00963 00964 #define COPYRVC_AllLinks (COPYRVC_RasterLinks | COPYRVC_DBaseLinks | COPYRVC_RVCLinks) 00965 00966 namespace RVC { 00967 00968 //! Flags for creating links. 00969 enum MAKELINKFLAGS { 00970 MAKELINKFLAG_NoGeoreference = 0x0001, //!< Don't create georeference subobjects 00971 MAKELINKFLAG_NoPyramidLinks = 0x0002, //!< Don't create raster pyramid tier links 00972 MAKELINKFLAG_BuildHistograms = 0x0004, //!< Build raster histogram subobjects when make link 00973 MAKELINKFLAG_BuildPyramids = 0x0008, //!< Build raster pyramid tiers when make link 00974 MAKELINKFLAG_NoContrastTables = 0x0010, //!< Don't create raster contrast tables 00975 MAKELINKFLAG_ColorComposite = 0x0020, //!< Create raster links as color-composite (RGB) where appropriate 00976 MAKELINKFLAG_ColorSeparate = 0x0040, //!< Create raster links as color separates where appropriate 00977 MAKELINKFLAG_None = 0x0000 00978 }; 00979 DEFINE_ENUM_OPERATORS(MAKELINKFLAGS); 00980 00981 00982 //! TNTlite usability status. 00983 enum LITEUSABILITY { 00984 LITEUSABILITY_OK = 0, //!< Object and all subobjects are usable 00985 LITEUSABILITY_ObjectNo = 1, //!< Object is not usable 00986 LITEUSABILITY_SubObjectNo = 2 //!< Object usable, but at least one subobject is not 00987 // Do not change these enum values as they are used as array indices! 00988 }; 00989 00990 } //! End of RVC namespace 00991 00992 /*-------------------------------------------------------------------------*/ 00993 /* Define data types for .datatype fields */ 00994 /*-------------------------------------------------------------------------*/ 00995 00996 #define RVCTYPE_Unsigned 1 //!< UINT8, UINT16, UINT32 and < 8 bit 00997 #define RVCTYPE_Signed 2 //!< INT8, INT16, INT32 00998 #define RVCTYPE_Float 3 //!< FLOAT, DOUBLE 00999 #define RVCTYPE_RGB 8 //!< RED, GREEN, BLUE packed (red high bits) 01000 #define RVCTYPE_BGR 9 //!< RED, GREEN, BLUE packed (blue high bits) 01001 #define RVCTYPE_ComplexRI 16 //!< Real, Imaginary 01002 #define RVCTYPE_ComplexMP 17 //!< Magnitude, Phase 01003 01004 /* Due to an obsure but historical bug, 24 bit rasters are actually stored */ 01005 /* in the opposite order of what they say they are. These #defines will */ 01006 /* allow you to account for that in a way that avoids the confusion */ 01007 #define RVCTYPE_RGB24_Really 9 //!< RED, GREEN, BLUE really 01008 #define RVCTYPE_BGR24_Really 8 //!< BLUE, GREEN, RED really 01009 01010 /*----------------------------------------------------------------------------*/ 01011 /* Definitions for object selection tools */ 01012 /*----------------------------------------------------------------------------*/ 01013 01014 #define FILTMSGLEN 100 01015 01016 #define FILT_NotVisible 0 //!< Don't show object on list 01017 #define FILT_NotUsable 0 //!< Not usable (for GetLastUsed, CopySubObjects) 01018 #define FILT_Notusable 0 //!< Not usable (for GetLastUsed, CopySubObjects) 01019 #define FILT_Selectable 1 //!< Let user select 01020 #define FILT_Usable 1 //!< Usable (for GetLastUsed, CopySubObjects) 01021 #define FILT_NotSelectable FILT_NotUsable //!< Show on list but don't let user select 01022 #define FILT_FolderUsable 5 //!< Folder is usable 01023 01024 #if !defined(DEPRECATE_GROUPKEY) 01025 #define FILT_UsableSubobjects 4 //!< Object not usable, but has usable subobjects 01026 #endif 01027 01028 /*-----------------------------------------------------------------------*/ 01029 /* Defines for MfFindLinkFile...() */ 01030 /*-----------------------------------------------------------------------*/ 01031 01032 #define FINDFILE_Stored 0x1 01033 #define FINDFILE_RefDrive 0x2 01034 #define FINDFILE_RefPath 0x3 01035 #define FINDFILE_Subtree 0x4 01036 #define FINDFILE_DontAsk 0x80000000 //!< Don't prompt if not found 01037 01038 #define FINDFILE2(a,b) ((a) | (b<<4)) 01039 #define FINDFILE3(a,b,c) ((a) | (b<<4) | (c<<8)) 01040 #define FINDFILE4(a,b,c,d) ((a) | (b<<4) | (c<<8) | (d<<12)) 01041 01042 #define FINDFILE_Default FINDFILE4(FINDFILE_RefPath,FINDFILE_Stored,FINDFILE_RefDrive,FINDFILE_Subtree) 01043 #define FINDFILE_StoredFirst FINDFILE4(FINDFILE_Stored,FINDFILE_RefDrive,FINDFILE_RefPath,FINDFILE_Subtree) 01044 #define FINDFILE_RefDriveFirst FINDFILE4(FINDFILE_RefDrive,FINDFILE_RefPath,FINDFILE_Stored,FINDFILE_Subtree) 01045 01046 /* For backwards compatabilty, 1 implies FINDFILE_StoredFirst */ 01047 01048 /*----------------------------------------------------------------------------*/ 01049 /* Element number special values, used for database lookup and elsewhere */ 01050 /*----------------------------------------------------------------------------*/ 01051 01052 #define ELEMENTNUM_DefaultList -1 01053 #define ELEMENTNUM_None -2 01054 01055 /*-------------------------------------------------------------------------*/ 01056 /* Definitions for MfConvert... functions */ 01057 /*-------------------------------------------------------------------------*/ 01058 01059 #define CONVRASTCOMP_NoReserveStd64 0x00000001 //!< Don't reserve 64 standard colors in output 01060 01061 #define CONVRASTLINE_Trace0Cells 0x0001 01062 #define CONVRASTLINE_Trace1Cells 0x0000 01063 01064 #define CONVRASTBOUND_NoCreateTable 0x0001 01065 #define CONVRASTBOUND_DoImpliedGeoref 0x0002 //!< Output vector in implied map coordinates if possible 01066 #define CONVRASTBOUND_ComputeStdAttrib 0x0004 //!< Compute standard attributes for vector. 01067 01068 #define TINTORASTER_Linear 0 01069 #define TINTORASTER_Quintic 1 01070 #define TINTORASTER_CopyGeoref 0x0001 01071 #define TINTORASTER_AutoScale 0x0002 01072 #define TIN_ComputeStatistics 0x0001 01073 #define TIN_Optimize 0x0002 01074 01075 /*----------------------------------------------------------------------------*/ 01076 /* Interpolation types for surface fitting conversions */ 01077 /*----------------------------------------------------------------------------*/ 01078 01079 #define INTERPOLATE_Linear 1 01080 #define INTERPOLATE_SplineCubic 2 01081 #define INTERPOLATE_SplineQuad 3 01082 #define INTERPOLATE_SplineBezier 4 01083 01084 #define SURFACEFIT_AutoRescale 0x0001 01085 #define SURFACEFIT_MatchReference 0x0002 01086 #define SURFACEFIT_UseDirection 0x0004 01087 01088 /*----------------------------------------------------------------------------*/ 01089 /* MfCrossSectionCreate() flags */ 01090 /*----------------------------------------------------------------------------*/ 01091 01092 #define CROSSSECTION_NoGeoreference 0x00000001 01093 01094 /*----------------------------------------------------------------------------*/ 01095 /* Callback Structure and reasons for Mf(RVC) callbacks */ 01096 /*----------------------------------------------------------------------------*/ 01097 01098 //! Callback structure 01099 struct MfAnyCallbackStruct : public McbAnyCallbackStruct { 01100 int m_FileHandle; //!< File handle 01101 01102 MfAnyCallbackStruct () {} //! Default constructor, performs no initialization. 01103 MfAnyCallbackStruct ( //! Construct with specified reason value. 01104 int FileHandle, 01105 UINT32 ireason 01106 ): 01107 McbAnyCallbackStruct(ireason), 01108 m_FileHandle(FileHandle) 01109 { } 01110 }; 01111 01112 01113 typedef void (*MfCallbackFunc)(MfAnyCallbackStruct*,void*); 01114 01115 //! Callback structure 01116 struct MfChildCallbackStruct : public MfAnyCallbackStruct { 01117 RVCINODENUM m_ParentInode; 01118 RVCINODENUM m_ObjectInode; 01119 01120 MfChildCallbackStruct () {} //! Default constructor, performs no initialization. 01121 MfChildCallbackStruct ( //! Construct with specified reason value. 01122 int FileHandle, 01123 RVCINODENUM ParentInode, 01124 RVCINODENUM ObjectInode, 01125 UINT32 ireason 01126 ): 01127 MfAnyCallbackStruct(FileHandle, ireason), 01128 m_ParentInode(ParentInode), 01129 m_ObjectInode(ObjectInode) 01130 { } 01131 }; 01132 01133 01134 //! Callback structure 01135 struct MfExtentsCallbackStruct : public MfAnyCallbackStruct { 01136 DRECT3D m_Extents; 01137 01138 MfExtentsCallbackStruct () {} //! Default constructor, performs no initialization. 01139 MfExtentsCallbackStruct ( //! Construct with specified reason value. 01140 const DRECT3D& Extents, 01141 int FileHandle, 01142 UINT32 ireason 01143 ): 01144 MfAnyCallbackStruct(FileHandle, ireason), 01145 m_Extents(Extents) 01146 { } 01147 }; 01148 01149 01150 struct MfPointTypeCallbackStruct : public MfAnyCallbackStruct { 01151 int m_PointType; 01152 01153 MfPointTypeCallbackStruct () {} //! Default constructor, performs no initialization. 01154 MfPointTypeCallbackStruct ( //! Construct with specified reason value. 01155 int PointType, 01156 int FileHandle, 01157 UINT32 ireason 01158 ): 01159 MfAnyCallbackStruct(FileHandle, ireason), 01160 m_PointType(PointType) 01161 {} 01162 }; 01163 01164 01165 typedef void (*MfCallbackFunc)(MfAnyCallbackStruct*,void*); 01166 01167 #define MFCR_UndoBegin 0x00000101 01168 #define MFCR_UndoEnd 0x00000102 01169 #define MFCR_UndoPossible 0x00000104 //!< MfUndoMark() has been called, set buttons if needed 01170 #define MFCR_ExtentsChanged 0x00000108 01171 #define MFCR_PointTypeChanged 0x00000110 01172 #define MFCR_NullValueChanged 0x00000111 01173 #define MFCR_FileClosing 0x00000112 01174 #define MFCR_ChildCreate 0x00000120 01175 #define MFCR_ChildOpen 0x00000121 01176