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