com.sun.jna.platform.win32

## Class WTypes.BSTR

- java.lang.Object
- - com.sun.jna.PointerType
  - - com.sun.jna.platform.win32.WTypes.BSTR

- All Implemented Interfaces:
    NativeMapped
  Direct Known Subclasses:
    WTypes.BSTR.ByReference, WTypes.LPSTR.ByReference, WTypes.LPWSTR.ByReference
  Enclosing interface:
    WTypes

      public static class WTypes.BSTR
      extends PointerType

  BSTR wrapper.

  From MSDN:

  > A BSTR (Basic string or binary string) is a string data type that is used by COM, Automation, and Interop functions. Use the BSTR data type in all interfaces that will be accessed from script.

  The memory structure:

  Length prefix
    Length of the data array holding the string data and does not include the final two NULL characters.
  Data string
    UTF-16LE encoded bytes for the string.
  Terminator
    Two null characters

  The "value" of the BSTR is the pointer to the start of the Data String, the length prefix is the four bytes before that.

  The MSDN states, that a BSTR derived from a Nullpointer is treated as a string containing zero characters.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `WTypes.BSTR.ByReference`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BSTR()`
    `BSTR(Pointer pointer)`
    `BSTR(java.lang.String value)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getValue()`
    `void` | `setValue(java.lang.String value)`
    `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

    - #### BSTR

          public BSTR()

    - #### BSTR

          public BSTR(Pointer pointer)

    - #### BSTR

          public BSTR(java.lang.String value)

  - ### Method Detail

    - #### setValue

          public void setValue(java.lang.String value)

    - #### getValue

          public java.lang.String getValue()

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `PointerType`

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