/*** Autogenerated by WIDL 9.5 from include/hstring.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __hstring_h__
#define __hstring_h__

#ifndef __WIDL_INLINE
#if defined(__cplusplus) || defined(_MSC_VER)
#define __WIDL_INLINE inline
#elif defined(__GNUC__)
#define __WIDL_INLINE __inline__
#endif
#endif

/* Forward declarations */

/* Headers for imported files */

#include <wtypes.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct HSTRING__ {
    int unused;
} HSTRING__;
typedef HSTRING__ *HSTRING;

  typedef struct HSTRING_HEADER {
    __C89_NAMELESS union {
      PVOID Reserved1;
#ifdef _WIN64
      char Reserved2[24];
#else
      char Reserved2[20];
#endif
    } Reserved;
  } HSTRING_HEADER;

DECLARE_HANDLE(HSTRING_BUFFER);
/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __hstring_h__ */
