master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef _INC_SLPUBLIC
  7#define _INC_SLPUBLIC
  8#if (_WIN32_WINNT >= 0x0600)
  9
 10#ifdef __cplusplus
 11extern "C" {
 12#endif
 13
 14typedef GUID SLID;
 15
 16typedef enum _SL_GENUINE_STATE {
 17  SL_GEN_STATE_IS_GENUINE        = 0,
 18  SL_GEN_STATE_INVALID_LICENSE   = 1,
 19  SL_GEN_STATE_TAMPERED          = 2,
 20  SL_GEN_STATE_LAST              = 3 
 21} SL_GENUINE_STATE;
 22
 23typedef enum _tagSLDATATYPE {
 24  SL_DATA_NONE       = REG_NONE,
 25  SL_DATA_SZ         = REG_SZ,
 26  SL_DATA_DWORD      = REG_DWORD,
 27  SL_DATA_BINARY     = REG_BINARY,
 28  SL_DATA_MULTI_SZ   = REG_MULTI_SZ,
 29  SL_DATA_SUM        = 100 
 30} SLDATATYPE;
 31
 32typedef struct _tagSL_NONGENUINE_UI_OPTIONS {
 33  DWORD      cbSize;
 34  const SLID *pComponentId;
 35  HRESULT    hResultUI;
 36} SL_NONGENUINE_UI_OPTIONS;
 37
 38HRESULT WINAPI SLAcquireGenuineTicket(
 39  void **ppTicketBlob,
 40  UINT *pcbTicketBlob,
 41  PCWSTR pwszTemplateId,
 42  PCWSTR pwszServerUrl,
 43  PCWSTR pwszClientToken 
 44);
 45
 46HRESULT WINAPI SLGetGenuineInformation(
 47  const SLID *pAppId,
 48  PCWSTR pwszValueName,
 49  SLDATATYPE *peDataType,
 50  UINT *pcbValue,
 51  BYTE **ppbValue
 52);
 53
 54HRESULT WINAPI SLGetInstalledSAMLicenseApplications(
 55  UINT *pnReturnedAppIds,
 56  SLID **ppReturnedAppIds
 57);
 58
 59HRESULT WINAPI SLGetSAMLicense(
 60  const SLID *pApplicationId,
 61  UINT *pcbXmlLicenseData,
 62  PBYTE *ppbXmlLicenseData
 63);
 64
 65HRESULT WINAPI SLGetWindowsInformation(
 66  PCWSTR pwszValueName,
 67  SLDATATYPE *peDataType,
 68  UINT *pcbValue,
 69  PBYTE *ppbValue
 70);
 71
 72HRESULT WINAPI SLGetWindowsInformationDWORD(
 73  PCWSTR pwszValueName,
 74  DWORD *pdwValue
 75);
 76
 77HRESULT WINAPI SLInstallSAMLicense(
 78  const SLID *pApplicationId,
 79  UINT cbXmlLicenseData,
 80  const BYTE *pbXmlLicenseData
 81);
 82
 83HRESULT WINAPI SLIsGenuineLocal(
 84  const SLID *pAppId,
 85  SL_GENUINE_STATE *pGenuineState,
 86  SL_NONGENUINE_UI_OPTIONS *pUIOptions
 87);
 88
 89HRESULT WINAPI SLSetGenuineInformation(
 90  const SLID *pAppId,
 91  PCWSTR pwszValueName,
 92  SLDATATYPE eDataType,
 93  UINT cbValue,
 94  const BYTE *pbValue
 95);
 96
 97HRESULT WINAPI SLUninstallSAMLicense(
 98  const SLID *pApplicationId
 99);
100
101#if (_WIN32_WINNT >= 0x0601)
102HRESULT WINAPI SLIsGenuineLocalEx(
103  const SLID *pAppId,
104  const SLID pSkuId,
105  SL_GENUINE_STATE *pGenuineState
106);
107#endif /*(_WIN32_WINNT >= 0x0601)*/
108
109#ifdef __cplusplus
110}
111#endif
112#endif /*(_WIN32_WINNT >= 0x0600)*/
113#endif /*_INC_SLPUBLIC*/