com.sun.jna.platform.win32

## Interface Msi

- All Superinterfaces:
    AltCallingConvention, Library, StdCall, StdCallLibrary

      public interface Msi
      extends StdCallLibrary

  Provides access to the w32 MSI installer library.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.sun.jna.win32.StdCallLibrary

      `StdCallLibrary.StdCallCallback`

    - ### Nested classes/interfaces inherited from interface com.sun.jna.Library

      `Library.Handler`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `INSTALLSTATE_ABSENT` The feature was uninstalled.
    `static int` | `INSTALLSTATE_ADVERTISED` The advertised feature.
    `static int` | `INSTALLSTATE_BADCONFIG` The configuration data is corrupt.
    `static int` | `INSTALLSTATE_BROKEN` The feature is broken.
    `static int` | `INSTALLSTATE_DEFAULT` The feature is installed in the default location: local or source.
    `static int` | `INSTALLSTATE_INCOMPLETE` The installation is suspended or in progress.
    `static int` | `INSTALLSTATE_INVALIDARG` An invalid parameter was passed to the function.
    `static int` | `INSTALLSTATE_LOCAL` The feature was installed on the local drive.
    `static int` | `INSTALLSTATE_MOREDATA` The return buffer is full.
    `static int` | `INSTALLSTATE_NOTUSED` The component being requested is disabled on the computer.
    `static int` | `INSTALLSTATE_REMOVED` The component is being removed.
    `static int` | `INSTALLSTATE_SOURCE` The feature must run from the source, CD-ROM, or network.
    `static int` | `INSTALLSTATE_SOURCEABSENT` The feature must run from the source, and the source is unavailable.
    `static int` | `INSTALLSTATE_UNKNOWN` An unrecognized product or feature was specified.
    `static Msi` | `INSTANCE`

    - ### Fields inherited from interface com.sun.jna.win32.StdCallLibrary

      `FUNCTION_MAPPER, STDCALL_CONVENTION`

    - ### Fields inherited from interface com.sun.jna.Library

      `OPTION_ALLOW_OBJECTS, OPTION_CALLING_CONVENTION, OPTION_CLASSLOADER, OPTION_FUNCTION_MAPPER, OPTION_INVOCATION_MAPPER, OPTION_OPEN_FLAGS, OPTION_STRING_ENCODING, OPTION_STRUCTURE_ALIGNMENT, OPTION_TYPE_MAPPER`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `MsiEnumComponents(WinDef.DWORD iComponentIndex, char[] lpComponentBuf)` The MsiEnumComponents function enumerates the installed components for all products.
    `int` | `MsiGetComponentPath(java.lang.String szProduct, java.lang.String szComponent, char[] lpPathBuf, IntByReference pcchBuf)` The MsiGetComponentPath function returns the full path to an installed component.
    `int` | `MsiGetProductCode(java.lang.String szComponent, char[] lpProductBuf)` The MsiGetProductCode function returns the product code of an application by using the component code of an installed or advertised component of the application.
    `int` | `MsiLocateComponent(java.lang.String szComponent, char[] lpPathBuf, IntByReference pcchBuf)` The MsiLocateComponent function returns the full path to an installed component without a product code.

- - ### Field Detail

    - #### INSTANCE

          static final Msi INSTANCE

    - #### INSTALLSTATE_NOTUSED

          static final int INSTALLSTATE_NOTUSED

      The component being requested is disabled on the computer.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_BADCONFIG

          static final int INSTALLSTATE_BADCONFIG

      The configuration data is corrupt.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_INCOMPLETE

          static final int INSTALLSTATE_INCOMPLETE

      The installation is suspended or in progress.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_SOURCEABSENT

          static final int INSTALLSTATE_SOURCEABSENT

      The feature must run from the source, and the source is unavailable.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_MOREDATA

          static final int INSTALLSTATE_MOREDATA

      The return buffer is full.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_INVALIDARG

          static final int INSTALLSTATE_INVALIDARG

      An invalid parameter was passed to the function.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_UNKNOWN

          static final int INSTALLSTATE_UNKNOWN

      An unrecognized product or feature was specified.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_BROKEN

          static final int INSTALLSTATE_BROKEN

      The feature is broken.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_ADVERTISED

          static final int INSTALLSTATE_ADVERTISED

      The advertised feature.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_REMOVED

          static final int INSTALLSTATE_REMOVED

      The component is being removed.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_ABSENT

          static final int INSTALLSTATE_ABSENT

      The feature was uninstalled.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_LOCAL

          static final int INSTALLSTATE_LOCAL

      The feature was installed on the local drive.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_SOURCE

          static final int INSTALLSTATE_SOURCE

      The feature must run from the source, CD-ROM, or network.
      See Also:
        Constant Field Values

    - #### INSTALLSTATE_DEFAULT

          static final int INSTALLSTATE_DEFAULT

      The feature is installed in the default location: local or source.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### MsiGetComponentPath

          int MsiGetComponentPath(java.lang.String szProduct,
                                java.lang.String szComponent,
                                char[] lpPathBuf,
                                IntByReference pcchBuf)

      The MsiGetComponentPath function returns the full path to an installed component. If the key path for the component is a registry key then the registry key is returned.
      Parameters:
        `szProduct` - Specifies the product code for the client product.
        `szComponent` - Specifies the component ID of the component to be located.
        `lpPathBuf` - Pointer to a variable that receives the path to the component. This parameter can be null. If the component is a registry key, the registry roots are represented numerically. If this is a registry subkey path, there is a backslash at the end of the Key Path. If this is a registry value key path, there is no backslash at the end. For example, a registry path on a 32-bit operating system of HKEY_CURRENT_USER\SOFTWARE\Microsoft is returned as "01:\SOFTWARE\Microsoft\".
        `pcchBuf` - Pointer to a variable that specifies the size, in characters, of the buffer pointed to by the lpPathBuf parameter. On input, this is the full size of the buffer, including a space for a terminating null character. If the buffer passed in is too small, the count returned does not include the terminating null character. If lpPathBuf is null, pcchBuf can be null.
      Returns:
        The MsiGetComponentPath function returns the following values. INSTALLSTATE_NOTUSED - The component being requested is disabled on the computer. INSTALLSTATE_ABSENT - The component is not installed. INSTALLSTATE_INVALIDARG - One of the function parameters is invalid. INSTALLSTATE_LOCAL - The component is installed locally. INSTALLSTATE_SOURCE - The component is installed to run from source. INSTALLSTATE_SOURCEABSENT - The component source is inaccessible. INSTALLSTATE_UNKNOWN - The product code or component ID is unknown.

    - #### MsiLocateComponent

          int MsiLocateComponent(java.lang.String szComponent,
                               char[] lpPathBuf,
                               IntByReference pcchBuf)

      The MsiLocateComponent function returns the full path to an installed component without a product code. This function attempts to determine the product using MsiGetProductCode, but is not guaranteed to find the correct product for the caller. MsiGetComponentPath should always be called when possible.
      Parameters:
        `szComponent` - Specifies the component ID of the component to be located.
        `lpPathBuf` - Pointer to a variable that receives the path to the component. The variable includes the terminating null character.
        `pcchBuf` - Pointer to a variable that specifies the size, in characters, of the buffer pointed to by the lpPathBuf parameter. On input, this is the full size of the buffer, including a space for a terminating null character. Upon success of the MsiLocateComponent function, the variable pointed to by pcchBuf contains the count of characters not including the terminating null character. If the size of the buffer passed in is too small, the function returns INSTALLSTATE_MOREDATA. If lpPathBuf is null, pcchBuf can be null.
      Returns:
        The MsiGetComponentPath function returns the following values. INSTALLSTATE_NOTUSED - The component being requested is disabled on the computer. INSTALLSTATE_ABSENT - The component is not installed. INSTALLSTATE_INVALIDARG - One of the function parameters is invalid. INSTALLSTATE_LOCAL - The component is installed locally. INSTALLSTATE_MOREDATA - The buffer provided was too small. INSTALLSTATE_SOURCE - The component is installed to run from source. INSTALLSTATE_SOURCEABSENT - The component source is inaccessible. INSTALLSTATE_UNKNOWN - The product code or component ID is unknown.

    - #### MsiGetProductCode

          int MsiGetProductCode(java.lang.String szComponent,
                              char[] lpProductBuf)

      The MsiGetProductCode function returns the product code of an application by using the component code of an installed or advertised component of the application. During initialization, an application must determine under which product code it has been installed or advertised.
      Parameters:
        `szComponent` - This parameter specifies the component code of a component that has been installed by the application. This will be typically the component code of the component containing the executable file of the application.
        `lpProductBuf` - Pointer to a buffer that receives the product code. This buffer must be 39 characters long. The first 38 characters are for the GUID, and the last character is for the terminating null character.
      Returns:
        ERROR_BAD_CONFIGURATION - The configuration data is corrupt. ERROR_INSTALL_FAILURE - The product code could not be determined. ERROR_INVALID_PARAMETER - An invalid parameter was passed to the function. ERROR_SUCCESS - The function completed successfully. ERROR_UNKNOWN_COMPONENT - The specified component is unknown.

    - #### MsiEnumComponents

          int MsiEnumComponents(WinDef.DWORD iComponentIndex,
                              char[] lpComponentBuf)

      The MsiEnumComponents function enumerates the installed components for all products. This function retrieves one component code each time it is called.
      Parameters:
        `iComponentIndex` - Specifies the index of the component to retrieve. This parameter should be zero for the first call to the MsiEnumComponents function and then incremented for subsequent calls. Because components are not ordered, any new component has an arbitrary index. This means that the function can return components in any order.
        `lpComponentBuf` - Pointer to a buffer that receives the component code. This buffer must be 39 characters long. The first 38 characters are for the GUID, and the last character is for the terminating null character.
      Returns:
        ERROR_BAD_CONFIGURATION - The configuration data is corrupt. ERROR_INVALID_PARAMETER - An invalid parameter was passed to the function. ERROR_NO_MORE_ITEMS - There are no components to return. ERROR_NOT_ENOUGH_MEMORY - The system does not have enough memory to complete the operation. Available with Windows Server 2003. ERROR_SUCCESS - A value was enumerated.

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