1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * Authors: Stewart Gordon
7  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8  * Source: $(DRUNTIMESRC core/sys/windows/_nddeapi.d)
9  */
10 /// Automatically imported and edited from the druntime module
11 /// core.sys.windows.nddeapi for the auto-generated win32 package.
12 module win32.nddeapi;
13 //version (Windows):
14 @system:
15 
16 version (ANSI) {} else version = Unicode;
17 
18 import win32.windef;
19 
20 // FIXME: check types and grouping of constants
21 
22 /+
23 #ifndef CNLEN /* also in lmcons.h */
24 #define CNLEN 15
25 #define UNCLEN (CNLEN + 2)
26 #endif
27 +/
28 
29 enum char    SEP_CHAR  = ',';
30 const char[]  BAR_CHAR  = "|";
31 enum wchar   SEP_WCHAR = ',';
32 const wchar[] BAR_WCHAR = "|";
33 
34 enum {
35     NDDE_NO_ERROR,
36     NDDE_ACCESS_DENIED,
37     NDDE_BUF_TOO_SMALL,
38     NDDE_ERROR_MORE_DATA,
39     NDDE_INVALID_SERVER,
40     NDDE_INVALID_SHARE,
41     NDDE_INVALID_PARAMETER,
42     NDDE_INVALID_LEVEL,
43     NDDE_INVALID_PASSWORD,
44     NDDE_INVALID_ITEMNAME,
45     NDDE_INVALID_TOPIC,
46     NDDE_INTERNAL_ERROR,
47     NDDE_OUT_OF_MEMORY,
48     NDDE_INVALID_APPNAME,
49     NDDE_NOT_IMPLEMENTED,
50     NDDE_SHARE_ALREADY_EXIST,
51     NDDE_SHARE_NOT_EXIST,
52     NDDE_INVALID_FILENAME,
53     NDDE_NOT_RUNNING,
54     NDDE_INVALID_WINDOW,
55     NDDE_INVALID_SESSION,
56     NDDE_INVALID_ITEM_LIST,
57     NDDE_SHARE_DATA_CORRUPTED,
58     NDDE_REGISTRY_ERROR,
59     NDDE_CANT_ACCESS_SERVER,
60     NDDE_INVALID_SPECIAL_COMMAND,
61     NDDE_INVALID_SECURITY_DESC,
62     NDDE_TRUST_SHARE_FAIL
63 }
64 
65 enum size_t
66     MAX_NDDESHARENAME = 256,
67     MAX_DOMAINNAME = 15,
68     MAX_USERNAME = 15,
69     MAX_APPNAME = 255,
70     MAX_TOPICNAME = 255,
71     MAX_ITEMNAME = 255;
72 
73 enum NDDEF_NOPASSWORDPROMPT = 1;
74 enum NDDEF_NOCACHELOOKUP    = 2;
75 enum NDDEF_STRIP_NDDE       = 4;
76 
77 enum SHARE_TYPE_OLD         = 1;
78 enum SHARE_TYPE_NEW         = 2;
79 enum SHARE_TYPE_STATIC      = 4;
80 
81 enum uint
82     NDDE_CMD_SHOW_MASK     = 0x0000FFFF,
83     NDDE_TRUST_CMD_SHOW    = 0x10000000,
84     NDDE_TRUST_SHARE_DEL   = 0x20000000,
85     NDDE_TRUST_SHARE_INIT  = 0x40000000,
86     NDDE_TRUST_SHARE_START = 0x80000000;
87 
88 struct NDdeShareInfo_tag {
89     LONG    lRevision;
90     LPTSTR  lpszShareName;
91     LONG    lShareType;
92     LPTSTR  lpszAppTopicList;
93     LONG    fSharedFlag;
94     LONG    fService;
95     LONG    fStartAppFlag;
96     LONG    nCmdShow;
97     LONG[2] qModifyId;
98     LONG    cNumItems;
99     LPTSTR  lpszItemList;
100 }
101 extern (C) {    // huh?
102     NDdeShareInfo_tag  NDDESHAREINFO;
103     NDdeShareInfo_tag* PNDDESHAREINFO;
104 }
105 
106 extern (Windows) {
107     UINT NDdeGetErrorStringA(UINT, LPSTR, DWORD);
108     UINT NDdeGetErrorStringW(UINT, LPWSTR, DWORD);
109     UINT NDdeGetShareSecurityA(LPSTR, LPSTR, SECURITY_INFORMATION,
110       PSECURITY_DESCRIPTOR, DWORD, PDWORD);
111     UINT NDdeGetShareSecurityW(LPWSTR, LPWSTR, SECURITY_INFORMATION,
112       PSECURITY_DESCRIPTOR, DWORD, PDWORD);
113     UINT NDdeGetTrustedShareA(LPSTR, LPSTR, PDWORD, PDWORD, PDWORD);
114     UINT NDdeGetTrustedShareW(LPWSTR, LPWSTR, PDWORD, PDWORD, PDWORD);
115     BOOL NDdeIsValidShareNameA(LPSTR);
116     BOOL NDdeIsValidShareNameW(LPWSTR);
117     BOOL NDdeIsValidAppTopicListA(LPSTR);
118     BOOL NDdeIsValidAppTopicListW(LPWSTR);
119     UINT NDdeSetShareSecurityA(LPSTR, LPSTR, SECURITY_INFORMATION,
120       PSECURITY_DESCRIPTOR);
121     UINT NDdeSetShareSecurityW(LPWSTR, LPWSTR, SECURITY_INFORMATION,
122       PSECURITY_DESCRIPTOR);
123     UINT NDdeSetTrustedShareA(LPSTR, LPSTR, DWORD);
124     UINT NDdeSetTrustedShareW(LPWSTR, LPWSTR, DWORD);
125     UINT NDdeShareAddA(LPSTR, UINT, PSECURITY_DESCRIPTOR, PBYTE, DWORD);
126     UINT NDdeShareAddW(LPWSTR, UINT, PSECURITY_DESCRIPTOR, PBYTE, DWORD);
127     UINT NDdeShareDelA(LPSTR, LPSTR, UINT);
128     UINT NDdeShareDelW(LPWSTR, LPWSTR, UINT);
129     UINT NDdeShareEnumA(LPSTR, UINT, PBYTE, DWORD, PDWORD, PDWORD);
130     UINT NDdeShareEnumW(LPWSTR, UINT, PBYTE, DWORD, PDWORD, PDWORD);
131     UINT NDdeShareGetInfoA(LPSTR, LPSTR, UINT, PBYTE, DWORD, PDWORD, PWORD);
132     UINT NDdeShareGetInfoW(LPWSTR, LPWSTR, UINT, PBYTE, DWORD, PDWORD, PWORD);
133     UINT NDdeShareSetInfoA(LPSTR, LPSTR, UINT, PBYTE, DWORD, WORD);
134     UINT NDdeShareSetInfoW(LPWSTR, LPWSTR, UINT, PBYTE, DWORD, WORD);
135     UINT NDdeTrustedShareEnumA(LPSTR, UINT, PBYTE, DWORD, PDWORD, PDWORD);
136     UINT NDdeTrustedShareEnumW(LPWSTR, UINT, PBYTE, DWORD, PDWORD, PDWORD);
137 }
138 
139 version (Unicode) {
140     alias NDdeShareAddW NDdeShareAdd;
141     alias NDdeShareDelW NDdeShareDel;
142     alias NDdeSetShareSecurityW NDdeSetShareSecurity;
143     alias NDdeGetShareSecurityW NDdeGetShareSecurity;
144     alias NDdeShareEnumW NDdeShareEnum;
145     alias NDdeShareGetInfoW NDdeShareGetInfo;
146     alias NDdeShareSetInfoW NDdeShareSetInfo;
147     alias NDdeGetErrorStringW NDdeGetErrorString;
148     alias NDdeIsValidShareNameW NDdeIsValidShareName;
149     alias NDdeIsValidAppTopicListW NDdeIsValidAppTopicList;
150     alias NDdeSetTrustedShareW NDdeSetTrustedShare;
151     alias NDdeGetTrustedShareW NDdeGetTrustedShare;
152     alias NDdeTrustedShareEnumW NDdeTrustedShareEnum;
153 } else {
154     alias NDdeShareAddA NDdeShareAdd;
155     alias NDdeShareDelA NDdeShareDel;
156     alias NDdeSetShareSecurityA NDdeSetShareSecurity;
157     alias NDdeGetShareSecurityA NDdeGetShareSecurity;
158     alias NDdeShareEnumA NDdeShareEnum;
159     alias NDdeShareGetInfoA NDdeShareGetInfo;
160     alias NDdeShareSetInfoA NDdeShareSetInfo;
161     alias NDdeGetErrorStringA NDdeGetErrorString;
162     alias NDdeIsValidShareNameA NDdeIsValidShareName;
163     alias NDdeIsValidAppTopicListA NDdeIsValidAppTopicList;
164     alias NDdeSetTrustedShareA NDdeSetTrustedShare;
165     alias NDdeGetTrustedShareA NDdeGetTrustedShare;
166     alias NDdeTrustedShareEnumA NDdeTrustedShareEnum;
167 }