com.sun.jna.ptr

## Class ByReference

- java.lang.Object
- - com.sun.jna.PointerType
  - - com.sun.jna.ptr.ByReference

- All Implemented Interfaces:
    NativeMapped
  Direct Known Subclasses:
    BaseTSD.ULONG_PTRByReference, ByteByReference, DoubleByReference, FloatByReference, HighLevelMonitorConfigurationAPI.MC_COLOR_TEMPERATURE.ByReference, HighLevelMonitorConfigurationAPI.MC_DISPLAY_TECHNOLOGY_TYPE.ByReference, IntByReference, LibCAPI.size_t.ByReference, LongByReference, LowLevelMonitorConfigurationAPI.MC_VCP_CODE_TYPE.ByReference, NativeLongByReference, OaIdl._VARIANT_BOOLByReference, OaIdl.DISPIDByReference, OaIdl.MEMBERIDByReference, OaIdl.VARIANT_BOOLByReference, PointerByReference, ShortByReference, WinDef.BOOLByReference, WinDef.CHARByReference, WinDef.DWORDByReference, WinDef.LONGByReference, WinDef.LONGLONGByReference, WinDef.SCODEByReference, WinDef.UINTByReference, WinDef.ULONGByReference, WinDef.ULONGLONGByReference, WinDef.USHORTByReference, WinDef.WORDByReference, WinNT.HANDLEByReference, WinNT.PACLByReference, WinNT.PSIDByReference, WinReg.HKEYByReference, WTypes.BSTRByReference, WTypes.VARTYPEByReference, X11.AtomByReference, X11.WindowByReference

      public abstract class ByReference
      extends PointerType

  Provides generic "pointer to type" functionality, often used in C code to return values to the caller in addition to a function result.

  Derived classes must define `setValue(<T>)` and `<T> getValue()` methods which write to/read from the allocated memory.

  This class derives from PointerType instead of Memory in order to restrict the API to only `getValue/setValue`.

  NOTE: this class would ideally be replaced by a generic.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ByReference(int dataSize)` Allocates memory at this pointer, to contain the pointed-to value.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `toString()`

    - ### Methods inherited from class com.sun.jna.PointerType

      `equals, fromNative, getPointer, hashCode, nativeType, setPointer, toNative`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ByReference

          protected ByReference(int dataSize)

      Allocates memory at this pointer, to contain the pointed-to value.
      Parameters:
        `dataSize` - The number of bytes to allocate. Must match the byte size of `T` in the derived class `setValue(<T>)` and `<T> getValue()` methods.

  - ### Method Detail

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `PointerType`

Copyright © 2007-2018 Timothy Wall. All Rights Reserved.