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*/
114