Class Guid.REFIID

  • All Implemented Interfaces:
    NativeMapped
    Enclosing interface:
    Guid

    public static class Guid.REFIID
    extends PointerType
    REFIID is a pointer to an IID.

    This type needs to be seperate from IID, as the REFIID can be passed in from external code, that does not allow writes to memory.

    With the normal JNA behaviour a structure, that crosses the native<-%gt;Java border will be autowritten, which causes a fault when written. Observed was this behaviour in COM-Callbacks, which get the REFIID passed into Invoke-method.

    So a IID can't be used directly, although the typedef of REFIID (from MSDN):

    typedef IID* REFIID;

    and the jna behaviour is described as:

    "When a function requires a pointer to a struct, a Java Structure should be used."

    • Constructor Detail

      • REFIID

        public REFIID()
        Instantiates a new refiid.
      • REFIID

        public REFIID​(Pointer memory)
        Instantiates a new refiid.
        Parameters:
        memory - the memory
      • REFIID

        public REFIID​(Guid.IID guid)
    • Method Detail

      • setValue

        public void setValue​(Guid.IID value)
      • equals

        public boolean equals​(Object o)
        Description copied from class: PointerType
        Instances of PointerType with identical pointers compare equal by default.
        Overrides:
        equals in class PointerType
      • hashCode

        public int hashCode()
        Description copied from class: PointerType
        The hash code for a PointerType is the same as that for its pointer.
        Overrides:
        hashCode in class PointerType