home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 November / VPR9611B.ISO / vabasic / ntclnt.exe / DISK8 / data.8 / datab / INCLUDE / VWGLUGEN.HH < prev    next >
Text File  |  1996-07-29  |  17KB  |  494 lines

  1. /*------------------------------------------------------------------------
  2.  * $Source: /rcs/vwrcs/integration/vwglugen.hh,v $
  3.  * $Date: 1996/06/08 19:00:04 $                         $Revision: 1.22 $
  4.  *
  5.  * Copyright 1992, Visual Edge Software Ltd.
  6.  * Copyright (c) International Business Machines Inc, 1994
  7.  * -----------------------------------------
  8.  * ALL RIGHTS RESERVED.  This notice is intended as a precaution against
  9.  * inadvertent publication, and shall not be deemed to constitute an
  10.  * acknowledgment that publication has  occurred nor to imply any waiver
  11.  * of confidentiality.  The year included in the notice is the year
  12.  * of the creation of the work.
  13.  *------------------------------------------------------------------------*/
  14. /*------------------------------------------------------------------------
  15.  * Visual Windows component integration support.
  16.  *
  17.  * Macros for defining C glue functions for events and properties
  18.  * of VW components.
  19.  *
  20.  * The published interface for registration is in VwPop.hh.
  21.  * Registering a class means writing glue routines for every
  22.  * property and event, and writing a lot of stylized code
  23.  * to register those classes.
  24.  *
  25.  * This file, in conjunction with component specification files
  26.  * such as Comp.sp, can be used to generate most the
  27.  * glue functions for properties and events.
  28.  *
  29.  * This is strictly VE internal; the VwPop.hh interface will be public.
  30.  * Include this file in the  same file as the registration function
  31.  * for the class, after defining after defining
  32.  *
  33.  *      CLASS_FILE to the name of the specification file
  34.  *              for the class (such as Comp.sp)
  35.  *      CLASS_TYPE to the name of the C++ class being registered,
  36.  *              such as VwComponent
  37.  *------------------------------------------------------------------------*/
  38.  
  39. #define VArrayProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  40.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj, VwInt index) \
  41.         { \
  42.                 return (TYPE)obj->NAME(index); \
  43.         }\
  44.         \
  45.         static status_t INTPCALL C_CLASS_NAME ## Put ## NAME(C_CLASS_NAME* obj, VwInt index, TYPE value) \
  46.         {\
  47.                 return obj->Put ## NAME(index, value); \
  48.         }
  49.  
  50. #define VArrayPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  51.         VArrayProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  52.  
  53. #define VReadOnlyArrayProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  54.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj, VwInt index) \
  55.         { \
  56.                 return (TYPE)obj->NAME(index); \
  57.         }
  58.  
  59. #define VReadOnlyArrayPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  60.         VReadOnlyArrayProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  61.  
  62. #define VPropertyWithUsage(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE) \
  63.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  64.         { \
  65.                 return (TYPE)obj->NAME(); \
  66.         }\
  67.         \
  68.         static status_t INTPCALL C_CLASS_NAME ## Put ## NAME(C_CLASS_NAME* obj, TYPE value) \
  69.         {\
  70.                 return obj->Put ## NAME(value); \
  71.         }
  72.  
  73. #define VPropertyWithUsageOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE) \
  74.         VPropertyWithUsage(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE)
  75.  
  76. #define VObjectPropertyWithUsage(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE) \
  77.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  78.         { \
  79.                 return (TYPE)obj->NAME(); \
  80.         }\
  81.         \
  82.         static status_t INTPCALL C_CLASS_NAME ## Put ## NAME(C_CLASS_NAME* obj, TYPE value) \
  83.         {\
  84.                 return obj->Put ## NAME(value); \
  85.         }
  86.  
  87. #define VObjectPropertyWithUsageOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE) \
  88.         VObjectPropertyWithUsage(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE)
  89.  
  90. #define VeProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  91.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  92.         { \
  93.                 return (TYPE)obj->NAME(); \
  94.         }\
  95.         \
  96.         static status_t INTPCALL C_CLASS_NAME ## Put ## NAME(C_CLASS_NAME* obj, TYPE value) \
  97.         {\
  98.                 return obj->Put ## NAME(value); \
  99.         }
  100.  
  101. #define VPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  102.         VeProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  103.  
  104. #define VObjectProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  105.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  106.         { \
  107.                 return (TYPE)obj->NAME(); \
  108.         }\
  109.         \
  110.         static status_t INTPCALL C_CLASS_NAME ## Put ## NAME(C_CLASS_NAME* obj, TYPE value) \
  111.         {\
  112.                 return obj->Put ## NAME(value); \
  113.         }
  114.  
  115. #define VObjectPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  116.         VObjectProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  117.  
  118. #define VReadOnlyProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  119.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  120.         { \
  121.                 return (TYPE)obj->NAME(); \
  122.         }
  123.  
  124. #define VReadOnlyPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  125.         VReadOnlyProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  126.  
  127.  
  128. #define VReadOnlyPropertyWithUsage(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE) \
  129.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  130.         { \
  131.                 return (TYPE)obj->NAME(); \
  132.         }
  133.  
  134. #define VReadOnlyPropertyWithUsageOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE) \
  135.         VReadOnlyPropertyWithUsage(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE,USAGE)
  136.  
  137. #define VReadOnlyObjectProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  138.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  139.         { \
  140.                 return (TYPE)obj->NAME(); \
  141.         }
  142.  
  143. #define VReadOnlyObjectPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  144.         VReadOnlyObjectProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  145.  
  146. #define VSymbolProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  147.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  148.         { \
  149.                 return (TYPE)obj->NAME(); \
  150.         }\
  151.         \
  152.         static status_t INTPCALL C_CLASS_NAME ## Put ## NAME(C_CLASS_NAME* obj, TYPE value) \
  153.         {\
  154.                 return obj->Put ## NAME(value); \
  155.         }
  156.  
  157. #define VSymbolPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  158.         VSymbolProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  159.  
  160. #define VReadOnlySymbolProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  161.         static TYPE INTPCALL C_CLASS_NAME##NAME(C_CLASS_NAME* obj) \
  162.         { \
  163.                 return (TYPE)obj->NAME(); \
  164.         }
  165.  
  166. #define VReadOnlySymbolPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  167.         VReadOnlySymbolProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  168.  
  169. #define VeEvent(C_CLASS_NAME, NAME, TYPE)  \
  170.         static void INTPCALL C_CLASS_NAME##Put ## NAME ( C_CLASS_NAME* obj, \
  171.                                   Vw ## NAME ## EventProcedurePtr_t proc, \
  172.                   char *eventNAME, TYPE) \
  173.         { \
  174.         if (eventName) \
  175.             obj->Put ## NAME ## Event(proc, eventName); \
  176.         else \
  177.                     obj->Put ## NAME ##  Event(proc, # NAME); \
  178.         }
  179.  
  180. #define VDesignOnlyProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  181. #define VDesignOnlyPropertyOverride(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE) \
  182.         VDesignOnlyProperty(C_CLASS_NAME, NAME,TYPE,BASIC_TYPE)
  183. #define VDesignOnlyObjectProperty        VDesigOnlyProperty
  184. #define VDesignOnlyObjectPropertyOverride \
  185.         VDesignOnlyObjectProperty
  186. #define VEventArg(C_CLASS_NAME, NAME,TYPE,USAGE)
  187. #define VEndArgs
  188. #define VNoProperty(C_CLASS_NAME, NAME)
  189.  
  190. // Old fashion macros
  191. #define ArrayProperty(NAME,TYPE,BASIC_TYPE) \
  192.         static TYPE INTPCALL NAME(CLASS_TYPE* obj, VwInt index) \
  193.         { \
  194.                 return (TYPE)obj->NAME(index); \
  195.         }\
  196.         \
  197.         static status_t INTPCALL Put ## NAME(CLASS_TYPE* obj, VwInt index, TYPE value) \
  198.         {\
  199.                 return obj->Put ## NAME(index, value); \
  200.         }
  201.  
  202. #define ArrayPropertyOverride(NAME,TYPE,BASIC_TYPE) \
  203.         ArrayProperty(NAME,TYPE,BASIC_TYPE)
  204.  
  205. #define NamedArrayProperty(NAME,VISIBLE_NAME,TYPE,BASIC_TYPE) \
  206.         static TYPE INTPCALL NAME(CLASS_TYPE* obj, VwInt index) \
  207.         { \
  208.                 return (TYPE)obj->NAME(index); \
  209.         }\
  210.         \
  211.         static status_t INTPCALL Put ## NAME(CLASS_TYPE* obj, VwInt index, TYPE value) \
  212.         {\
  213.                 return obj->Put ## NAME(index, value); \
  214.         }
  215.  
  216. #define NamedArrayPropertyOverride(NAME,VISIBLE_NAME,TYPE,BASIC_TYPE) \
  217.         NamedArrayProperty(NAME,VISIBLE_NAME,TYPE,BASIC_TYPE)
  218.  
  219. #define ReadOnlyArrayProperty(NAME,TYPE,BASIC_TYPE) \
  220.         static TYPE INTPCALL NAME(CLASS_TYPE* obj, VwInt index) \
  221.         { \
  222.                 return (TYPE)obj->NAME(index); \
  223.         }
  224.  
  225. #define ReadOnlyArrayPropertyOverride(NAME,TYPE,BASIC_TYPE) \
  226.         ReadOnlyArrayProperty(NAME,TYPE,BASIC_TYPE)
  227.  
  228. #define PropertyWithUsage(NAME,TYPE,BASIC_TYPE,USAGE) \
  229.         static TYPE INTPCALL NAME(CLASS_TYPE* obj) \
  230.         { \
  231.                 return (TYPE)obj->NAME(); \
  232.         }\
  233.         \
  234.         static status_t INTPCALL Put ## NAME(CLASS_TYPE* obj, TYPE value) \
  235.         {\
  236.                 return obj->Put ## NAME(value); \
  237.         }
  238.  
  239. #define PropertyWithUsageOverride(NAME,TYPE,BASIC_TYPE,USAGE) \
  240.         PropertyWithUsage(NAME,TYPE,BASIC_TYPE,USAGE)
  241.  
  242. #define NamedPropertyWithUsage(NAME, VISIBLE_NAME, TYPE,BASIC_TYPE,USAGE) \
  243.         static TYPE INTPCALL NAME(CLASS_TYPE* obj) \
  244.         { \
  245.                 return (TYPE)obj->NAME(); \
  246.         }\
  247.         \
  248.         static status_t INTPCALL Put ## NAME(CLASS_TYPE* obj, TYPE value) \
  249.         {\
  250.                 return obj->Put ## NAME(value); \
  251.         }
  252. #define NamedPropertyWithUsageOverride(NAME, VISIBLE_NAME, TYPE,BASIC_TYPE,USAGE) \
  253.         NamedPropertyWithUsage(NAME, VISIBLE_NAME, TYPE,BASIC_TYPE,USAGE)
  254.  
  255. #define Property(NAME,TYPE,BASIC_TYPE) \
  256.         static TYPE INTPCALL NAME(CLASS_TYPE* obj) \
  257.         { \
  258.                 return (TYPE)obj->NAME(); \
  259.         }\
  260.         \
  261.         static status_t INTPCALL Put ## NAME(CLASS_TYPE* obj, TYPE value) \
  262.         {\
  263.                 return obj->Put ## NAME(value); \
  264.         }
  265.  
  266. #define IMEProperty(NAME,TYPE,BASIC_TYPE) \
  267.         static TYPE INTPCALL NAME(CLASS_TYPE* obj) \
  268.         { \
  269.                 return (TYPE)obj->NAME(); \
  270.         }\
  271.         \
  272.         static status_t INTPCALL Put ## NAME(CLASS_TYPE* obj, TYPE value) \
  273.         {\
  274.                 return obj->Put ## NAME(value); \
  275.         }
  276.  
  277. #define PropertyOverride(NAME,TYPE,BASIC_TYPE) \
  278.         Property(NAME,TYPE,BASIC_TYPE)
  279.  
  280. #define NamedProperty(NAME, VISIBLE_NAME, TYPE,BASIC_TYPE) \
  281.         static TYPE INTPCALL NAME(CLASS_TYPE* obj) \
  282.         { \
  283.                 return (TYPE)obj->NAME(); \
  284.         }\
  285.         \
  286.         static status_t INTPCALL Put ## NAME(CLASS_TYPE* obj, TYPE value) \
  287.         {\
  288.                 return obj->Put ## NAME(value); \
  289.         }
  290.  
  291. #define NamedPropertyOverride(NAME, VISIBLE_NAME, TYPE,BASIC_TYPE) \
  292.         NamedProperty(NAME, VISIBLE_NAME, TYPE,BASIC_TYPE)
  293.  
  294. #define ReadOnlyProperty(NAME,TYPE,BASIC_TYPE) \
  295.         static TYPE  INTPCALL NAME(CLASS_TYPE* obj) \
  296.         { \
  297.                 return (TYPE)obj->NAME(); \
  298.         }
  299.  
  300. #define ReadOnlyPropertyWithUsage(NAME,TYPE,BASIC_TYPE,USAGE) \
  301.         static TYPE  INTPCALL NAME(CLASS_TYPE* obj) \
  302.         { \
  303.                 return (TYPE)obj->NAME(); \
  304.         }
  305.  
  306. #define ReadOnlyPropertyWithUsageOverride(NAME,TYPE,BASIC_TYPE,USAGE) \
  307.         ReadOnlyPropertyWithUsage(NAME,TYPE,BASIC_TYPE,USAGE)
  308.  
  309.  
  310. #define ReadOnlyPropertyOverride(NAME,TYPE,BASIC_TYPE) \
  311.         ReadOnlyProperty(NAME,TYPE,BASIC_TYPE)
  312.  
  313.  
  314. #define NamedReadOnlyProperty(NAME,VISIBLE_NAME,TYPE,BASIC_TYPE) \
  315.         static TYPE  INTPCALL NAME(CLASS_TYPE* obj) \
  316.         { \
  317.                 return (TYPE)obj->NAME(); \
  318.         }
  319.  
  320. #define NamedReadOnlyPropertyOverride(NAME,VISIBLE_NAME,TYPE,BASIC_TYPE) \
  321.         NamedReadOnlyProperty(NAME,VISIBLE_NAME,TYPE,BASIC_TYPE)
  322.  
  323. #define ReadOnlyObjectProperty(NAME,TYPE,BASIC_TYPE) \
  324.         static TYPE  INTPCALL NAME(CLASS_TYPE* obj) \
  325.         { \
  326.                 return (TYPE)obj->NAME(); \
  327.         }
  328.  
  329. #define ReadOnlyObjectPropertyOverride(NAME,TYPE,BASIC_TYPE) \
  330.         ReadOnlyObjectProperty(NAME,TYPE,BASIC_TYPE)
  331.  
  332. #define ReadOnlyObjectPropertyWithUsage(NAME,TYPE,BASIC_TYPE,USAGE) \
  333.         static TYPE  INTPCALL NAME(CLASS_TYPE* obj) \
  334.         { \
  335.                 return (TYPE)obj->NAME(); \
  336.         }
  337.  
  338. #define ReadOnlyObjectPropertyWithUsageOverride(NAME,TYPE,BASIC_TYPE,USAGE) \
  339.         ReadOnlyObjectPropertyWithUsage(NAME,TYPE,BASIC_TYPE,USAGE)
  340.  
  341. #define SymbolProperty(NAME,TYPE,BASIC_TYPE) \
  342.         static TYPE INTPCALL NAME(CLASS_TYPE* obj) \
  343.         { \
  344.                 return (TYPE)obj->NAME(); \
  345.         }\
  346.         \
  347.         static status_t INTPCALL Put ## NAME(CLASS_TYPE* obj, TYPE value) \
  348.         {\
  349.                 return obj->Put ## NAME(value); \
  350.         }
  351.  
  352. #define SymbolPropertyOverride(NAME,TYPE,BASIC_TYPE) \
  353.         SymbolProperty(NAME,TYPE,BASIC_TYPE)
  354.  
  355. #define ReadOnlySymbolProperty(NAME,TYPE,BASIC_TYPE) \
  356.         static TYPE INTPCALL NAME(CLASS_TYPE* obj) \
  357.         { \
  358.                 return (TYPE)obj->NAME(); \
  359.         }
  360.  
  361. #define ReadOnlySymbolPropertyOverride(NAME,TYPE,BASIC_TYPE) \
  362.         ReadOnlySymbolProperty(NAME,TYPE,BASIC_TYPE)
  363.  
  364. #define Event(NAME)  \
  365.         static void INTPCALL Put ## NAME ( CLASS_TYPE* obj, \
  366.                                   Vw ## NAME ## EventProcedurePtr_t proc, \
  367.                   char *eventName) \
  368.         { \
  369.         if (eventName) \
  370.             obj->Put ## NAME ## Event(proc, eventName); \
  371.         else \
  372.                     obj->Put ## NAME ##  Event(proc, # NAME); \
  373.         }
  374.  
  375. #define NamedEvent(NAME, VISIBLE_NAME)  \
  376.         static void INTPCALL Put ## NAME ( CLASS_TYPE* obj, \
  377.                                   Vw ## NAME ## EventProcedurePtr_t proc, \
  378.                   char *eventName) \
  379.         { \
  380.         if (eventName) \
  381.             obj->Put ## NAME ## Event(proc, eventName); \
  382.         else \
  383.                     obj->Put ## NAME ##  Event(proc, # VISIBLE_NAME); \
  384.         }
  385.  
  386.  
  387. #define ObjectProperty            Property
  388. #define ObjectPropertyOverride        ObjectProperty
  389. #define ObjectPropertyWithUsage        PropertyWithUsage
  390. #define ObjectPropertyWithUsageOverride    ObjectPropertyWithUsage
  391.  
  392. #define DesignOnlyProperty(NAME,TYPE,BASIC_TYPE)
  393. #define NamedDesignOnlyProperty(NAME,VISIBLE_NAME,TYPE,BASIC_TYPE)
  394. #define DesignOnlyPropertyOverride(NAME,TYPE,BASIC_TYPE) \
  395.         DesignOnlyProperty(NAME,TYPE,BASIC_TYPE)
  396. #define DesignOnlyObjectProperty    DesignOnlyProperty
  397. #define NamedDesignOnlyObjectProperty    NamedDesignOnlyProperty
  398. #define DesignOnlyObjectPropertyOverride \
  399.         DesignOnlyObjectProperty
  400. #define NamedDesignOnlyObjectPropertyOverride \
  401.         NamedDesignOnlyObjectProperty
  402. #define EventArg(NAME,TYPE,USAGE)
  403. #define EndArgs
  404. #define NamedEventArg(NAME,VISIBLE_NAME,TYPE,USAGE)
  405. #define NamedEndArgs
  406. #define NoProperty(NAME)
  407. #define NoIMEProperty(NAME)
  408. #define NamedNoProperty(NAME, VISIBLE_NAME)
  409.  
  410. #include CLASS_FILE
  411.  
  412. #undef VeProperty
  413. #undef VPropertyOverride
  414. #undef VObjectProperty
  415. #undef VObjectPropertyOverride
  416. #undef VPropertyWithUsage
  417. #undef VPropertyWithUsageOverride
  418. #undef VObjectPropertyWithUsage
  419. #undef VObjectPropertyWithUsageOverride
  420. #undef VArrayProperty
  421. #undef VArrayPropertyOverride
  422. #undef VReadOnlyArrayProperty
  423. #undef VReadOnlyArrayPropertyOverride
  424. #undef VReadOnlyProperty
  425. #undef VReadOnlyPropertyOverride
  426. #undef VReadOnlyPropertyWithUsage
  427. #undef VReadOnlyPropertyWithUsageOverride
  428. #undef VReadOnlyObjectProperty
  429. #undef VReadOnlyObjectPropertyOverride
  430. #undef VDesignOnlyProperty
  431. #undef VDesignOnlyPropertyOverride
  432. #undef VDesignOnlyObjectProperty
  433. #undef VDesignOnlyObjectPropertyOverride
  434. #undef VSymbolProperty
  435. #undef VSymbolPropertyOverride
  436. #undef VReadOnlySymbolProperty
  437. #undef VReadOnlySymbolPropertyOverride
  438. #undef VeEvent
  439. #undef VEventArg
  440. #undef VEndArgs
  441. #undef VNoProperty
  442.  
  443. #undef Property
  444. #undef NamedProperty
  445. #undef NamedPropertyOverride
  446. #undef PropertyOverride
  447. #undef ObjectProperty
  448. #undef IMEProperty
  449. #undef ObjectPropertyOverride
  450. #undef PropertyWithUsage
  451. #undef NamedPropertyWithUsage
  452. #undef NamedPropertyWithUsageOverride
  453. #undef PropertyWithUsageOverride
  454. #undef ObjectPropertyWithUsage
  455. #undef ObjectPropertyWithUsageOverride
  456. #undef ArrayProperty
  457. #undef NamedArrayProperty
  458. #undef NamedArrayPropertyOverride
  459. #undef ArrayPropertyOverride
  460. #undef ReadOnlyArrayProperty
  461. #undef ReadOnlyArrayPropertyOverride
  462. #undef ReadOnlyProperty
  463. #undef ReadOnlyPropertyWithUsage
  464. #undef ReadOnlyPropertyWithUsageOverride
  465. #undef NamedReadOnlyProperty
  466. #undef NamedReadOnlyPropertyOverride
  467. #undef ReadOnlyPropertyOverride
  468. #undef ReadOnlyObjectProperty
  469. #undef ReadOnlyObjectPropertyOverride
  470. #undef ReadOnlyObjectPropertyWithUsage
  471. #undef ReadOnlyObjectPropertyWithUsageOverride
  472. #undef DesignOnlyProperty
  473. #undef NamedDesignOnlyProperty
  474. #undef DesignOnlyPropertyOverride
  475. #undef DesignOnlyObjectProperty
  476. #undef NamedDesignOnlyObjectProperty
  477. #undef DesignOnlyObjectPropertyOverride
  478. #undef NamedDesignOnlyObjectPropertyOverride
  479. #undef SymbolProperty
  480. #undef SymbolPropertyOverride
  481. #undef ReadOnlySymbolProperty
  482. #undef ReadOnlySymbolPropertyOverride
  483. #undef Event
  484. #undef EventArg
  485. #undef EndArgs
  486. #undef NamedEvent
  487. #undef NamedEventArg
  488. #undef NamedEndArgs
  489. #undef NoProperty
  490. #undef NoIMEProperty
  491. #undef NamedNoProperty
  492.  
  493.  
  494.