001    package org.bridj.cpp.com;
002    import org.bridj.CRuntime;
003    import org.bridj.Pointer;
004    import org.bridj.StructObject;
005    import org.bridj.ValuedEnum;
006    import org.bridj.ann.CLong;
007    import org.bridj.ann.Field;
008    import org.bridj.ann.Library;
009    import org.bridj.ann.Union;
010    import org.bridj.ann.Runtime;
011    
012    /**
013     * Represents an object that can be interpreted as more than one type.
014     */
015    @Runtime(CRuntime.class) 
016    public class VARIANT extends StructObject {
017            public VARIANT(Object value) {
018                    super();
019            COMRuntime.setValue(this, value);
020            }
021            public VARIANT() {
022                    super();
023            }
024            public VARIANT clone() {
025                    return COMRuntime.clone(this);
026            }
027            /// C type : __VARIANT_NAME_1_union
028            @Field(0)
029            public VARIANT.__VARIANT_NAME_1_union __VARIANT_NAME_1() {
030                    return this.io.getNativeObjectField(this, 0);
031            }
032            /// <i>native declaration : line 107</i>
033            @Union
034            public static class __VARIANT_NAME_1_union extends StructObject {
035                    public __VARIANT_NAME_1_union() {
036                            super();
037                    }
038    //              public __VARIANT_NAME_1_union(Pointer pointer) {
039    //                      super(pointer);
040    //              }
041                    /// C type : __tagVARIANT
042                    @Field(0)
043                    public VARIANT.__VARIANT_NAME_1_union.__tagVARIANT __VARIANT_NAME_2() {
044                            return this.io.getNativeObjectField(this, 0);
045                    }
046                    /// C type : DECIMAL
047                    @Field(1)
048                    public DECIMAL decVal() {
049                            return this.io.getNativeObjectField(this, 1);
050                    }
051                    /// <i>native declaration : line 109</i>
052                    public static class __tagVARIANT extends StructObject {
053                            public __tagVARIANT() {
054                                    super();
055                            }
056    //                      public __tagVARIANT(Pointer pointer) {
057    //                              super(pointer);
058    //                      }
059                            /// C type : VARTYPE
060                            @Field(0)
061                            public short vt() {
062                                    return this.io.getShortField(this, 0);
063                            }
064                            /// C type : VARTYPE
065                            @Field(0)
066                            public __tagVARIANT vt(short vt) {
067                                    this.io.setShortField(this, 0, vt);
068                                    return this;
069                            }
070                            /// C type : VARTYPE
071                            public final short vt_$eq(short vt) {
072                                    vt(vt);
073                                    return vt;
074                            }
075                            @Field(1)
076                            public short wReserved1() {
077                                    return this.io.getShortField(this, 1);
078                            }
079                            @Field(1)
080                            public __tagVARIANT wReserved1(short wReserved1) {
081                                    this.io.setShortField(this, 1, wReserved1);
082                                    return this;
083                            }
084                            public final short wReserved1_$eq(short wReserved1) {
085                                    wReserved1(wReserved1);
086                                    return wReserved1;
087                            }
088                            @Field(2)
089                            public short wReserved2() {
090                                    return this.io.getShortField(this, 2);
091                            }
092                            @Field(2)
093                            public __tagVARIANT wReserved2(short wReserved2) {
094                                    this.io.setShortField(this, 2, wReserved2);
095                                    return this;
096                            }
097                            public final short wReserved2_$eq(short wReserved2) {
098                                    wReserved2(wReserved2);
099                                    return wReserved2;
100                            }
101                            @Field(3)
102                            public short wReserved3() {
103                                    return this.io.getShortField(this, 3);
104                            }
105                            @Field(3)
106                            public __tagVARIANT wReserved3(short wReserved3) {
107                                    this.io.setShortField(this, 3, wReserved3);
108                                    return this;
109                            }
110                            public final short wReserved3_$eq(short wReserved3) {
111                                    wReserved3(wReserved3);
112                                    return wReserved3;
113                            }
114                            /// C type : __VARIANT_NAME_3_union
115                            @Field(4)
116                            public VARIANT.__VARIANT_NAME_1_union.__tagVARIANT.__VARIANT_NAME_3_union __VARIANT_NAME_3() {
117                                    return this.io.getNativeObjectField(this, 4);
118                            }
119                            /// <i>native declaration : line 115</i>
120                            @Union
121                            public static class __VARIANT_NAME_3_union extends StructObject {
122                                    public __VARIANT_NAME_3_union() {
123                                            super();
124                                    }
125    //                              public __VARIANT_NAME_3_union(Pointer pointer) {
126    //                                      super(pointer);
127    //                              }
128                                    /// VT_I8
129                                    @Field(0)
130                                    public long llval() {
131                                            return this.io.getLongField(this, 0);
132                                    }
133                                    /// VT_I8
134                                    @Field(0)
135                                    public __VARIANT_NAME_3_union llval(long llval) {
136                                            this.io.setLongField(this, 0, llval);
137                                            return this;
138                                    }
139                                    public final long llval_$eq(long llval) {
140                                            llval(llval);
141                                            return llval;
142                                    }
143                                    /// VT_I4
144                                    @CLong
145                                    @Field(1)
146                                    public long lVal() {
147                                            return this.io.getCLongField(this, 1);
148                                    }
149                                    /// VT_I4
150                                    @CLong
151                                    @Field(1)
152                                    public __VARIANT_NAME_3_union lVal(long lVal) {
153                                            this.io.setCLongField(this, 1, lVal);
154                                            return this;
155                                    }
156                                    public final long lVal_$eq(long lVal) {
157                                            lVal(lVal);
158                                            return lVal;
159                                    }
160                                    /// VT_UI1
161                                    @Field(2)
162                                    public byte bVal() {
163                                            return this.io.getByteField(this, 2);
164                                    }
165                                    /// VT_UI1
166                                    @Field(2)
167                                    public __VARIANT_NAME_3_union bVal(byte bVal) {
168                                            this.io.setByteField(this, 2, bVal);
169                                            return this;
170                                    }
171                                    public final byte bVal_$eq(byte bVal) {
172                                            bVal(bVal);
173                                            return bVal;
174                                    }
175                                    /**
176                                     * VT_I2<br>
177                                     * C type : SHORT
178                                     */
179                                    @Field(3)
180                                    public short iVal() {
181                                            return this.io.getShortField(this, 3);
182                                    }
183                                    /**
184                                     * VT_I2<br>
185                                     * C type : SHORT
186                                     */
187                                    @Field(3)
188                                    public __VARIANT_NAME_3_union iVal(short iVal) {
189                                            this.io.setShortField(this, 3, iVal);
190                                            return this;
191                                    }
192                                    /// C type : SHORT
193                                    public final short iVal_$eq(short iVal) {
194                                            iVal(iVal);
195                                            return iVal;
196                                    }
197                                    /**
198                                     * VT_R4<br>
199                                     * C type : FLOAT
200                                     */
201                                    @Field(4)
202                                    public float fltVal() {
203                                            return this.io.getFloatField(this, 4);
204                                    }
205                                    /**
206                                     * VT_R4<br>
207                                     * C type : FLOAT
208                                     */
209                                    @Field(4)
210                                    public __VARIANT_NAME_3_union fltVal(float fltVal) {
211                                            this.io.setFloatField(this, 4, fltVal);
212                                            return this;
213                                    }
214                                    /// C type : FLOAT
215                                    public final float fltVal_$eq(float fltVal) {
216                                            fltVal(fltVal);
217                                            return fltVal;
218                                    }
219                                    /**
220                                     * VT_R8<br>
221                                     * C type : DOUBLE
222                                     */
223                                    @Field(5)
224                                    public double dblVal() {
225                                            return this.io.getDoubleField(this, 5);
226                                    }
227                                    /**
228                                     * VT_R8<br>
229                                     * C type : DOUBLE
230                                     */
231                                    @Field(5)
232                                    public __VARIANT_NAME_3_union dblVal(double dblVal) {
233                                            this.io.setDoubleField(this, 5, dblVal);
234                                            return this;
235                                    }
236                                    /// C type : DOUBLE
237                                    public final double dblVal_$eq(double dblVal) {
238                                            dblVal(dblVal);
239                                            return dblVal;
240                                    }
241                                    /**
242                                     * VT_BOOL<br>
243                                     * C type : VARIANT_BOOL
244                                     */
245                                    @Field(6)
246                                    public int boolVal() {
247                                            return this.io.getIntField(this, 6);
248                                    }
249                                    /**
250                                     * VT_BOOL<br>
251                                     * C type : VARIANT_BOOL
252                                     */
253                                    @Field(6)
254                                    public __VARIANT_NAME_3_union boolVal(int boolVal) {
255                                            this.io.setIntField(this, 6, boolVal);
256                                            return this;
257                                    }
258                                    /// C type : VARIANT_BOOL
259                                    public final int boolVal_$eq(int boolVal) {
260                                            boolVal(boolVal);
261                                            return boolVal;
262                                    }
263                                    /// C type : _VARIANT_BOOL
264                                    @Field(7)
265                                    public int bool() {
266                                            return this.io.getIntField(this, 7);
267                                    }
268                                    /// C type : _VARIANT_BOOL
269                                    @Field(7)
270                                    public __VARIANT_NAME_3_union bool(int bool) {
271                                            this.io.setIntField(this, 7, bool);
272                                            return this;
273                                    }
274                                    /// C type : _VARIANT_BOOL
275                                    public final int bool_$eq(int bool) {
276                                            bool(bool);
277                                            return bool;
278                                    }
279                                    /**
280                                     * VT_ERROR<br>
281                                     * C type : SCODE
282                                     */
283                                    @Field(8)
284                                    public int scode() {
285                                            return this.io.getIntField(this, 8);
286                                    }
287                                    /**
288                                     * VT_ERROR<br>
289                                     * C type : SCODE
290                                     */
291                                    @Field(8)
292                                    public __VARIANT_NAME_3_union scode(int scode) {
293                                            this.io.setIntField(this, 8, scode);
294                                            return this;
295                                    }
296                                    /// C type : SCODE
297                                    public final int scode_$eq(int scode) {
298                                            scode(scode);
299                                            return scode;
300                                    }
301                                    /**
302                                     * VT_CY<br>
303                                     * C type : CY
304                                     */
305                                    @Field(9)
306                                    public CY cyVal() {
307                                            return this.io.getNativeObjectField(this, 9);
308                                    }
309                                    /**
310                                     * VT_DATE<br>
311                                     * C type : DATE
312                                     */
313                                    @Field(10)
314                                    public double date() {
315                                            return this.io.getDoubleField(this, 10);
316                                    }
317                                    /**
318                                     * VT_DATE<br>
319                                     * C type : DATE
320                                     */
321                                    @Field(10)
322                                    public __VARIANT_NAME_3_union date(double date) {
323                                            this.io.setDoubleField(this, 10, date);
324                                            return this;
325                                    }
326                                    /// C type : DATE
327                                    public final double date_$eq(double date) {
328                                            date(date);
329                                            return date;
330                                    }
331                                    /**
332                                     * VT_BSTR<br>
333                                     * C type : BSTR
334                                     */
335                                    @Field(11)
336                                    public Pointer<Byte > bstrVal() {
337                                            return this.io.getPointerField(this, 11);
338                                    }
339                                    /**
340                                     * VT_BSTR<br>
341                                     * C type : BSTR
342                                     */
343                                    @Field(11)
344                                    public __VARIANT_NAME_3_union bstrVal(Pointer<Byte > bstrVal) {
345                                            this.io.setPointerField(this, 11, bstrVal);
346                                            return this;
347                                    }
348                                    /// C type : BSTR
349                                    public final Pointer<Byte > bstrVal_$eq(Pointer<Byte > bstrVal) {
350                                            bstrVal(bstrVal);
351                                            return bstrVal;
352                                    }
353                                    /**
354                                     * VT_UNKNOWN<br>
355                                     * C type : IUnknown*
356                                     */
357                                    @Field(12)
358                                    public Pointer<IUnknown > punkVal() {
359                                            return this.io.getPointerField(this, 12);
360                                    }
361                                    /**
362                                     * VT_UNKNOWN<br>
363                                     * C type : IUnknown*
364                                     */
365                                    @Field(12)
366                                    public __VARIANT_NAME_3_union punkVal(Pointer<IUnknown > punkVal) {
367                                            this.io.setPointerField(this, 12, punkVal);
368                                            return this;
369                                    }
370                                    /// C type : IUnknown*
371                                    public final Pointer<IUnknown > punkVal_$eq(Pointer<IUnknown > punkVal) {
372                                            punkVal(punkVal);
373                                            return punkVal;
374                                    }
375                                    /**
376                                     * VT_DISPATCH<br>
377                                     * C type : IDispatch*
378                                     */
379                                    @Field(13)
380                                    public Pointer<IDispatch > pdispVal() {
381                                            return this.io.getPointerField(this, 13);
382                                    }
383                                    /**
384                                     * VT_DISPATCH<br>
385                                     * C type : IDispatch*
386                                     */
387                                    @Field(13)
388                                    public __VARIANT_NAME_3_union pdispVal(Pointer<IDispatch > pdispVal) {
389                                            this.io.setPointerField(this, 13, pdispVal);
390                                            return this;
391                                    }
392                                    /// C type : IDispatch*
393                                    public final Pointer<IDispatch > pdispVal_$eq(Pointer<IDispatch > pdispVal) {
394                                            pdispVal(pdispVal);
395                                            return pdispVal;
396                                    }
397                                    /**
398                                     * VT_ARRAY|*<br>
399                                     * C type : SAFEARRAY*
400                                     */
401                                    @Field(14)
402                                    public Pointer<SAFEARRAY > parray() {
403                                            return this.io.getPointerField(this, 14);
404                                    }
405                                    /**
406                                     * VT_ARRAY|*<br>
407                                     * C type : SAFEARRAY*
408                                     */
409                                    @Field(14)
410                                    public __VARIANT_NAME_3_union parray(Pointer<SAFEARRAY > parray) {
411                                            this.io.setPointerField(this, 14, parray);
412                                            return this;
413                                    }
414                                    /// C type : SAFEARRAY*
415                                    public final Pointer<SAFEARRAY > parray_$eq(Pointer<SAFEARRAY > parray) {
416                                            parray(parray);
417                                            return parray;
418                                    }
419                                    /**
420                                     * VT_BYREF|VT_UI1<br>
421                                     * C type : BYTE*
422                                     */
423                                    @Field(15)
424                                    public Pointer<Byte > pbVal() {
425                                            return this.io.getPointerField(this, 15);
426                                    }
427                                    /**
428                                     * VT_BYREF|VT_UI1<br>
429                                     * C type : BYTE*
430                                     */
431                                    @Field(15)
432                                    public __VARIANT_NAME_3_union pbVal(Pointer<Byte > pbVal) {
433                                            this.io.setPointerField(this, 15, pbVal);
434                                            return this;
435                                    }
436                                    /// C type : BYTE*
437                                    public final Pointer<Byte > pbVal_$eq(Pointer<Byte > pbVal) {
438                                            pbVal(pbVal);
439                                            return pbVal;
440                                    }
441                                    /**
442                                     * VT_BYREF|VT_I2<br>
443                                     * C type : SHORT*
444                                     */
445                                    @Field(16)
446                                    public Pointer<Short > piVal() {
447                                            return this.io.getPointerField(this, 16);
448                                    }
449                                    /**
450                                     * VT_BYREF|VT_I2<br>
451                                     * C type : SHORT*
452                                     */
453                                    @Field(16)
454                                    public __VARIANT_NAME_3_union piVal(Pointer<Short > piVal) {
455                                            this.io.setPointerField(this, 16, piVal);
456                                            return this;
457                                    }
458                                    /// C type : SHORT*
459                                    public final Pointer<Short > piVal_$eq(Pointer<Short > piVal) {
460                                            piVal(piVal);
461                                            return piVal;
462                                    }
463                                    /**
464                                     * VT_BYREF|VT_I4<br>
465                                     * C type : LONG*
466                                     */
467                                    @Field(17)
468                                    public Pointer<CLong > plVal() {
469                                            return this.io.getPointerField(this, 17);
470                                    }
471                                    /**
472                                     * VT_BYREF|VT_I4<br>
473                                     * C type : LONG*
474                                     */
475                                    @Field(17)
476                                    public __VARIANT_NAME_3_union plVal(Pointer<CLong > plVal) {
477                                            this.io.setPointerField(this, 17, plVal);
478                                            return this;
479                                    }
480                                    /// C type : LONG*
481                                    public final Pointer<CLong > plVal_$eq(Pointer<CLong > plVal) {
482                                            plVal(plVal);
483                                            return plVal;
484                                    }
485                                    /**
486                                     * VT_BYREF|VT_I8<br>
487                                     * C type : LONGLONG*
488                                     */
489                                    @Field(18)
490                                    public Pointer<Long > pllVal() {
491                                            return this.io.getPointerField(this, 18);
492                                    }
493                                    /**
494                                     * VT_BYREF|VT_I8<br>
495                                     * C type : LONGLONG*
496                                     */
497                                    @Field(18)
498                                    public __VARIANT_NAME_3_union pllVal(Pointer<Long > pllVal) {
499                                            this.io.setPointerField(this, 18, pllVal);
500                                            return this;
501                                    }
502                                    /// C type : LONGLONG*
503                                    public final Pointer<Long > pllVal_$eq(Pointer<Long > pllVal) {
504                                            pllVal(pllVal);
505                                            return pllVal;
506                                    }
507                                    /**
508                                     * VT_BYREF|VT_R4<br>
509                                     * C type : FLOAT*
510                                     */
511                                    @Field(19)
512                                    public Pointer<Float > pfltVal() {
513                                            return this.io.getPointerField(this, 19);
514                                    }
515                                    /**
516                                     * VT_BYREF|VT_R4<br>
517                                     * C type : FLOAT*
518                                     */
519                                    @Field(19)
520                                    public __VARIANT_NAME_3_union pfltVal(Pointer<Float > pfltVal) {
521                                            this.io.setPointerField(this, 19, pfltVal);
522                                            return this;
523                                    }
524                                    /// C type : FLOAT*
525                                    public final Pointer<Float > pfltVal_$eq(Pointer<Float > pfltVal) {
526                                            pfltVal(pfltVal);
527                                            return pfltVal;
528                                    }
529                                    /**
530                                     * VT_BYREF|VT_R8<br>
531                                     * C type : DOUBLE*
532                                     */
533                                    @Field(20)
534                                    public Pointer<Double > pdblVal() {
535                                            return this.io.getPointerField(this, 20);
536                                    }
537                                    /**
538                                     * VT_BYREF|VT_R8<br>
539                                     * C type : DOUBLE*
540                                     */
541                                    @Field(20)
542                                    public __VARIANT_NAME_3_union pdblVal(Pointer<Double > pdblVal) {
543                                            this.io.setPointerField(this, 20, pdblVal);
544                                            return this;
545                                    }
546                                    /// C type : DOUBLE*
547                                    public final Pointer<Double > pdblVal_$eq(Pointer<Double > pdblVal) {
548                                            pdblVal(pdblVal);
549                                            return pdblVal;
550                                    }
551                                    /**
552                                     * VT_BYREF|VT_BOOL<br>
553                                     * C type : VARIANT_BOOL*
554                                     */
555                                    @Field(21)
556                                    public Pointer<Integer> pboolVal() {
557                                            return this.io.getPointerField(this, 21);
558                                    }
559                                    /**
560                                     * VT_BYREF|VT_BOOL<br>
561                                     * C type : VARIANT_BOOL*
562                                     */
563                                    @Field(21)
564                                    public __VARIANT_NAME_3_union pboolVal(Pointer<Integer > pboolVal) {
565                                            this.io.setPointerField(this, 21, pboolVal);
566                                            return this;
567                                    }
568                                    /// C type : VARIANT_BOOL*
569                                    public final Pointer<Integer > pboolVal_$eq(Pointer<Integer > pboolVal) {
570                                            pboolVal(pboolVal);
571                                            return pboolVal;
572                                    }
573                                    /// C type : _VARIANT_BOOL*
574                                    @Field(22)
575                                    public Pointer<Integer > pbool() {
576                                            return this.io.getPointerField(this, 22);
577                                    }
578                                    /// C type : _VARIANT_BOOL*
579                                    @Field(22)
580                                    public __VARIANT_NAME_3_union pbool(Pointer<Integer > pbool) {
581                                            this.io.setPointerField(this, 22, pbool);
582                                            return this;
583                                    }
584                                    /// C type : _VARIANT_BOOL*
585                                    public final Pointer<Integer > pbool_$eq(Pointer<Integer > pbool) {
586                                            pbool(pbool);
587                                            return pbool;
588                                    }
589                                    /**
590                                     * VT_BYREF|VT_ERROR<br>
591                                     * C type : SCODE*
592                                     */
593                                    @Field(23)
594                                    public Pointer<Integer > pscode() {
595                                            return this.io.getPointerField(this, 23);
596                                    }
597                                    /**
598                                     * VT_BYREF|VT_ERROR<br>
599                                     * C type : SCODE*
600                                     */
601                                    @Field(23)
602                                    public __VARIANT_NAME_3_union pscode(Pointer<Integer > pscode) {
603                                            this.io.setPointerField(this, 23, pscode);
604                                            return this;
605                                    }
606                                    /// C type : SCODE*
607                                    public final Pointer<Integer > pscode_$eq(Pointer<Integer > pscode) {
608                                            pscode(pscode);
609                                            return pscode;
610                                    }
611                                    /**
612                                     * VT_BYREF|VT_CY<br>
613                                     * C type : CY*
614                                     */
615                                    @Field(24)
616                                    public Pointer<CY > pcyVal() {
617                                            return this.io.getPointerField(this, 24);
618                                    }
619                                    /**
620                                     * VT_BYREF|VT_CY<br>
621                                     * C type : CY*
622                                     */
623                                    @Field(24)
624                                    public __VARIANT_NAME_3_union pcyVal(Pointer<CY > pcyVal) {
625                                            this.io.setPointerField(this, 24, pcyVal);
626                                            return this;
627                                    }
628                                    /// C type : CY*
629                                    public final Pointer<CY > pcyVal_$eq(Pointer<CY > pcyVal) {
630                                            pcyVal(pcyVal);
631                                            return pcyVal;
632                                    }
633                                    /**
634                                     * VT_BYREF|VT_DATE<br>
635                                     * C type : DATE*
636                                     */
637                                    @Field(25)
638                                    public Pointer<Double > pdate() {
639                                            return this.io.getPointerField(this, 25);
640                                    }
641                                    /**
642                                     * VT_BYREF|VT_DATE<br>
643                                     * C type : DATE*
644                                     */
645                                    @Field(25)
646                                    public __VARIANT_NAME_3_union pdate(Pointer<Double > pdate) {
647                                            this.io.setPointerField(this, 25, pdate);
648                                            return this;
649                                    }
650                                    /// C type : DATE*
651                                    public final Pointer<Double > pdate_$eq(Pointer<Double > pdate) {
652                                            pdate(pdate);
653                                            return pdate;
654                                    }
655                                    /**
656                                     * VT_BYREF|VT_BSTR<br>
657                                     * C type : BSTR*
658                                     */
659                                    @Field(26)
660                                    public Pointer<Pointer<Byte > > pbstrVal() {
661                                            return this.io.getPointerField(this, 26);
662                                    }
663                                    /**
664                                     * VT_BYREF|VT_BSTR<br>
665                                     * C type : BSTR*
666                                     */
667                                    @Field(26)
668                                    public __VARIANT_NAME_3_union pbstrVal(Pointer<Pointer<Byte > > pbstrVal) {
669                                            this.io.setPointerField(this, 26, pbstrVal);
670                                            return this;
671                                    }
672                                    /// C type : BSTR*
673                                    public final Pointer<Pointer<Byte > > pbstrVal_$eq(Pointer<Pointer<Byte > > pbstrVal) {
674                                            pbstrVal(pbstrVal);
675                                            return pbstrVal;
676                                    }
677                                    /**
678                                     * VT_BYREF|VT_UNKNOWN<br>
679                                     * C type : IUnknown**
680                                     */
681                                    @Field(27)
682                                    public Pointer<Pointer<IUnknown > > ppunkVal() {
683                                            return this.io.getPointerField(this, 27);
684                                    }
685                                    /**
686                                     * VT_BYREF|VT_UNKNOWN<br>
687                                     * C type : IUnknown**
688                                     */
689                                    @Field(27)
690                                    public __VARIANT_NAME_3_union ppunkVal(Pointer<Pointer<IUnknown > > ppunkVal) {
691                                            this.io.setPointerField(this, 27, ppunkVal);
692                                            return this;
693                                    }
694                                    /// C type : IUnknown**
695                                    public final Pointer<Pointer<IUnknown > > ppunkVal_$eq(Pointer<Pointer<IUnknown > > ppunkVal) {
696                                            ppunkVal(ppunkVal);
697                                            return ppunkVal;
698                                    }
699                                    /**
700                                     * VT_BYREF|VT_DISPATCH<br>
701                                     * C type : IDispatch**
702                                     */
703                                    @Field(28)
704                                    public Pointer<Pointer<IDispatch > > ppdispVal() {
705                                            return this.io.getPointerField(this, 28);
706                                    }
707                                    /**
708                                     * VT_BYREF|VT_DISPATCH<br>
709                                     * C type : IDispatch**
710                                     */
711                                    @Field(28)
712                                    public __VARIANT_NAME_3_union ppdispVal(Pointer<Pointer<IDispatch > > ppdispVal) {
713                                            this.io.setPointerField(this, 28, ppdispVal);
714                                            return this;
715                                    }
716                                    /// C type : IDispatch**
717                                    public final Pointer<Pointer<IDispatch > > ppdispVal_$eq(Pointer<Pointer<IDispatch > > ppdispVal) {
718                                            ppdispVal(ppdispVal);
719                                            return ppdispVal;
720                                    }
721                                    /**
722                                     * VT_BYREF|VT_ARRAY<br>
723                                     * C type : SAFEARRAY**
724                                     */
725                                    @Field(29)
726                                    public Pointer<Pointer<SAFEARRAY > > pparray() {
727                                            return this.io.getPointerField(this, 29);
728                                    }
729                                    /**
730                                     * VT_BYREF|VT_ARRAY<br>
731                                     * C type : SAFEARRAY**
732                                     */
733                                    @Field(29)
734                                    public __VARIANT_NAME_3_union pparray(Pointer<Pointer<SAFEARRAY > > pparray) {
735                                            this.io.setPointerField(this, 29, pparray);
736                                            return this;
737                                    }
738                                    /// C type : SAFEARRAY**
739                                    public final Pointer<Pointer<SAFEARRAY > > pparray_$eq(Pointer<Pointer<SAFEARRAY > > pparray) {
740                                            pparray(pparray);
741                                            return pparray;
742                                    }
743                                    /**
744                                     * VT_BYREF|VT_VARIANT<br>
745                                     * C type : VARIANT*
746                                     */
747                                    @Field(30)
748                                    public Pointer<VARIANT > pvarVal() {
749                                            return this.io.getPointerField(this, 30);
750                                    }
751                                    /**
752                                     * VT_BYREF|VT_VARIANT<br>
753                                     * C type : VARIANT*
754                                     */
755                                    @Field(30)
756                                    public __VARIANT_NAME_3_union pvarVal(Pointer<VARIANT > pvarVal) {
757                                            this.io.setPointerField(this, 30, pvarVal);
758                                            return this;
759                                    }
760                                    /// C type : VARIANT*
761                                    public final Pointer<VARIANT > pvarVal_$eq(Pointer<VARIANT > pvarVal) {
762                                            pvarVal(pvarVal);
763                                            return pvarVal;
764                                    }
765                                    /**
766                                     * Generic ByRef<br>
767                                     * C type : PVOID*
768                                     */
769                                    @Field(31)
770                                    public Pointer<Pointer<? > > byref() {
771                                            return this.io.getPointerField(this, 31);
772                                    }
773                                    /**
774                                     * Generic ByRef<br>
775                                     * C type : PVOID*
776                                     */
777                                    @Field(31)
778                                    public __VARIANT_NAME_3_union byref(Pointer<Pointer<? > > byref) {
779                                            this.io.setPointerField(this, 31, byref);
780                                            return this;
781                                    }
782                                    /// C type : PVOID*
783                                    public final Pointer<Pointer<? > > byref_$eq(Pointer<Pointer<? > > byref) {
784                                            byref(byref);
785                                            return byref;
786                                    }
787                                    /**
788                                     * VT_I1<br>
789                                     * C type : CHAR
790                                     */
791                                    @Field(32)
792                                    public byte cVal() {
793                                            return this.io.getByteField(this, 32);
794                                    }
795                                    /**
796                                     * VT_I1<br>
797                                     * C type : CHAR
798                                     */
799                                    @Field(32)
800                                    public __VARIANT_NAME_3_union cVal(byte cVal) {
801                                            this.io.setByteField(this, 32, cVal);
802                                            return this;
803                                    }
804                                    /// C type : CHAR
805                                    public final byte cVal_$eq(byte cVal) {
806                                            cVal(cVal);
807                                            return cVal;
808                                    }
809                                    /**
810                                     * VT_UI2<br>
811                                     * C type : USHORT
812                                     */
813                                    @Field(33)
814                                    public short uiVal() {
815                                            return this.io.getShortField(this, 33);
816                                    }
817                                    /**
818                                     * VT_UI2<br>
819                                     * C type : USHORT
820                                     */
821                                    @Field(33)
822                                    public __VARIANT_NAME_3_union uiVal(short uiVal) {
823                                            this.io.setShortField(this, 33, uiVal);
824                                            return this;
825                                    }
826                                    /// C type : USHORT
827                                    public final short uiVal_$eq(short uiVal) {
828                                            uiVal(uiVal);
829                                            return uiVal;
830                                    }
831                                    /**
832                                     * VT_UI4<br>
833                                     * C type : ULONG
834                                     */
835                                    @Field(34)
836                                    public int ulVal() {
837                                            return this.io.getIntField(this, 34);
838                                    }
839                                    /**
840                                     * VT_UI4<br>
841                                     * C type : ULONG
842                                     */
843                                    @Field(34)
844                                    public __VARIANT_NAME_3_union ulVal(int ulVal) {
845                                            this.io.setIntField(this, 34, ulVal);
846                                            return this;
847                                    }
848                                    /// C type : ULONG
849                                    public final int ulVal_$eq(int ulVal) {
850                                            ulVal(ulVal);
851                                            return ulVal;
852                                    }
853                                    /// VT_UI8
854                                    @Field(35)
855                                    public long ullVal() {
856                                            return this.io.getLongField(this, 35);
857                                    }
858                                    /// VT_UI8
859                                    @Field(35)
860                                    public __VARIANT_NAME_3_union ullVal(long ullVal) {
861                                            this.io.setLongField(this, 35, ullVal);
862                                            return this;
863                                    }
864                                    public final long ullVal_$eq(long ullVal) {
865                                            ullVal(ullVal);
866                                            return ullVal;
867                                    }
868                                    /**
869                                     * VT_INT<br>
870                                     * C type : INT
871                                     */
872                                    @Field(36)
873                                    public int intVal() {
874                                            return this.io.getIntField(this, 36);
875                                    }
876                                    /**
877                                     * VT_INT<br>
878                                     * C type : INT
879                                     */
880                                    @Field(36)
881                                    public __VARIANT_NAME_3_union intVal(int intVal) {
882                                            this.io.setIntField(this, 36, intVal);
883                                            return this;
884                                    }
885                                    /// C type : INT
886                                    public final int intVal_$eq(int intVal) {
887                                            intVal(intVal);
888                                            return intVal;
889                                    }
890                                    /**
891                                     * VT_UINT<br>
892                                     * C type : UINT
893                                     */
894                                    @Field(37)
895                                    public int uintVal() {
896                                            return this.io.getIntField(this, 37);
897                                    }
898                                    /**
899                                     * VT_UINT<br>
900                                     * C type : UINT
901                                     */
902                                    @Field(37)
903                                    public __VARIANT_NAME_3_union uintVal(int uintVal) {
904                                            this.io.setIntField(this, 37, uintVal);
905                                            return this;
906                                    }
907                                    /// C type : UINT
908                                    public final int uintVal_$eq(int uintVal) {
909                                            uintVal(uintVal);
910                                            return uintVal;
911                                    }
912                                    /**
913                                     * VT_BYREF|VT_DECIMAL<br>
914                                     * C type : DECIMAL*
915                                     */
916                                    @Field(38)
917                                    public Pointer<DECIMAL > pdecVal() {
918                                            return this.io.getPointerField(this, 38);
919                                    }
920                                    /**
921                                     * VT_BYREF|VT_DECIMAL<br>
922                                     * C type : DECIMAL*
923                                     */
924                                    @Field(38)
925                                    public __VARIANT_NAME_3_union pdecVal(Pointer<DECIMAL > pdecVal) {
926                                            this.io.setPointerField(this, 38, pdecVal);
927                                            return this;
928                                    }
929                                    /// C type : DECIMAL*
930                                    public final Pointer<DECIMAL > pdecVal_$eq(Pointer<DECIMAL > pdecVal) {
931                                            pdecVal(pdecVal);
932                                            return pdecVal;
933                                    }
934                                    /**
935                                     * VT_BYREF|VT_I1<br>
936                                     * C type : CHAR*
937                                     */
938                                    @Field(39)
939                                    public Pointer<Byte > pcVal() {
940                                            return this.io.getPointerField(this, 39);
941                                    }
942                                    /**
943                                     * VT_BYREF|VT_I1<br>
944                                     * C type : CHAR*
945                                     */
946                                    @Field(39)
947                                    public __VARIANT_NAME_3_union pcVal(Pointer<Byte > pcVal) {
948                                            this.io.setPointerField(this, 39, pcVal);
949                                            return this;
950                                    }
951                                    /// C type : CHAR*
952                                    public final Pointer<Byte > pcVal_$eq(Pointer<Byte > pcVal) {
953                                            pcVal(pcVal);
954                                            return pcVal;
955                                    }
956                                    /**
957                                     * VT_BYREF|VT_UI2<br>
958                                     * C type : USHORT*
959                                     */
960                                    @Field(40)
961                                    public Pointer<Short > puiVal() {
962                                            return this.io.getPointerField(this, 40);
963                                    }
964                                    /**
965                                     * VT_BYREF|VT_UI2<br>
966                                     * C type : USHORT*
967                                     */
968                                    @Field(40)
969                                    public __VARIANT_NAME_3_union puiVal(Pointer<Short > puiVal) {
970                                            this.io.setPointerField(this, 40, puiVal);
971                                            return this;
972                                    }
973                                    /// C type : USHORT*
974                                    public final Pointer<Short > puiVal_$eq(Pointer<Short > puiVal) {
975                                            puiVal(puiVal);
976                                            return puiVal;
977                                    }
978                                    /**
979                                     * VT_BYREF|VT_UI4<br>
980                                     * C type : ULONG*
981                                     */
982                                    @Field(41)
983                                    public Pointer<Integer > pulVal() {
984                                            return this.io.getPointerField(this, 41);
985                                    }
986                                    /**
987                                     * VT_BYREF|VT_UI4<br>
988                                     * C type : ULONG*
989                                     */
990                                    @Field(41)
991                                    public __VARIANT_NAME_3_union pulVal(Pointer<Integer > pulVal) {
992                                            this.io.setPointerField(this, 41, pulVal);
993                                            return this;
994                                    }
995                                    /// C type : ULONG*
996                                    public final Pointer<Integer > pulVal_$eq(Pointer<Integer > pulVal) {
997                                            pulVal(pulVal);
998                                            return pulVal;
999                                    }
1000                                    /**
1001                                     * VT_BYREF|VT_UI8<br>
1002                                     * C type : ULONGLONG*
1003                                     */
1004                                    @Field(42)
1005                                    public Pointer<Long > pullVal() {
1006                                            return this.io.getPointerField(this, 42);
1007                                    }
1008                                    /**
1009                                     * VT_BYREF|VT_UI8<br>
1010                                     * C type : ULONGLONG*
1011                                     */
1012                                    @Field(42)
1013                                    public __VARIANT_NAME_3_union pullVal(Pointer<Long > pullVal) {
1014                                            this.io.setPointerField(this, 42, pullVal);
1015                                            return this;
1016                                    }
1017                                    /// C type : ULONGLONG*
1018                                    public final Pointer<Long > pullVal_$eq(Pointer<Long > pullVal) {
1019                                            pullVal(pullVal);
1020                                            return pullVal;
1021                                    }
1022                                    /**
1023                                     * VT_BYREF|VT_INT<br>
1024                                     * C type : INT*
1025                                     */
1026                                    @Field(43)
1027                                    public Pointer<Integer > pintVal() {
1028                                            return this.io.getPointerField(this, 43);
1029                                    }
1030                                    /**
1031                                     * VT_BYREF|VT_INT<br>
1032                                     * C type : INT*
1033                                     */
1034                                    @Field(43)
1035                                    public __VARIANT_NAME_3_union pintVal(Pointer<Integer > pintVal) {
1036                                            this.io.setPointerField(this, 43, pintVal);
1037                                            return this;
1038                                    }
1039                                    /// C type : INT*
1040                                    public final Pointer<Integer > pintVal_$eq(Pointer<Integer > pintVal) {
1041                                            pintVal(pintVal);
1042                                            return pintVal;
1043                                    }
1044                                    /**
1045                                     * VT_BYREF|VT_UINT<br>
1046                                     * C type : UINT*
1047                                     */
1048                                    @Field(44)
1049                                    public Pointer<Integer > puintVal() {
1050                                            return this.io.getPointerField(this, 44);
1051                                    }
1052                                    /**
1053                                     * VT_BYREF|VT_UINT<br>
1054                                     * C type : UINT*
1055                                     */
1056                                    @Field(44)
1057                                    public __VARIANT_NAME_3_union puintVal(Pointer<Integer > puintVal) {
1058                                            this.io.setPointerField(this, 44, puintVal);
1059                                            return this;
1060                                    }
1061                                    /// C type : UINT*
1062                                    public final Pointer<Integer > puintVal_$eq(Pointer<Integer > puintVal) {
1063                                            puintVal(puintVal);
1064                                            return puintVal;
1065                                    }
1066                                    /// C type : __tagBRECORD
1067                                    @Field(45)
1068                                    public VARIANT.__VARIANT_NAME_1_union.__tagVARIANT.__VARIANT_NAME_3_union.__tagBRECORD __VARIANT_NAME_4() {
1069                                            return this.io.getNativeObjectField(this, 45);
1070                                    }
1071                                    /// <i>native declaration : line 162</i>
1072                                    public static class __tagBRECORD extends StructObject {
1073                                            public __tagBRECORD() {
1074                                                    super();
1075                                            }
1076    //                                      public __tagBRECORD(Pointer pointer) {
1077    //                                              super(pointer);
1078    //                                      }
1079                                            /// C type : PVOID
1080                                            @Field(0)
1081                                            public Pointer<? > pvRecord() {
1082                                                    return this.io.getPointerField(this, 0);
1083                                            }
1084                                            /// C type : PVOID
1085                                            @Field(0)
1086                                            public __tagBRECORD pvRecord(Pointer<? > pvRecord) {
1087                                                    this.io.setPointerField(this, 0, pvRecord);
1088                                                    return this;
1089                                            }
1090                                            /// C type : PVOID
1091                                            public final Pointer<? > pvRecord_$eq(Pointer<? > pvRecord) {
1092                                                    pvRecord(pvRecord);
1093                                                    return pvRecord;
1094                                            }
1095                                            /// C type : IRecordInfo*
1096                                            @Field(1)
1097                                            public Pointer<IRecordInfo > pRecInfo() {
1098                                                    return this.io.getPointerField(this, 1);
1099                                            }
1100                                            /// C type : IRecordInfo*
1101                                            @Field(1)
1102                                            public __tagBRECORD pRecInfo(Pointer<IRecordInfo > pRecInfo) {
1103                                                    this.io.setPointerField(this, 1, pRecInfo);
1104                                                    return this;
1105                                            }
1106                                            /// C type : IRecordInfo*
1107                                            public final Pointer<IRecordInfo > pRecInfo_$eq(Pointer<IRecordInfo > pRecInfo) {
1108                                                    pRecInfo(pRecInfo);
1109                                                    return pRecInfo;
1110                                            }
1111                                    };
1112                            };
1113                    };
1114            };
1115        public Object getValue() {
1116            return COMRuntime.getValue(this);
1117        }
1118        public VARIANT setValue(Object value) {
1119            return COMRuntime.setValue(this, value);
1120        }
1121    
1122        @Override
1123        public String toString() {
1124            return COMRuntime.toString(this);
1125        }
1126    
1127    
1128    }