Mercurial > hg > xemacs-beta
annotate src/intl-encap-win32.c @ 5940:c608d4b0b75e cygwin64 tip
rescue lost branch from 64bit.backup
author | Henry Thompson <ht@markup.co.uk> |
---|---|
date | Thu, 16 Dec 2021 18:48:58 +0000 |
parents | 2f34b59f451a |
children |
rev | line source |
---|---|
771 | 1 /* Unicode-encapsulation of Win32 library functions. |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
2 Copyright (C) 2000, 2001, 2002, 2004, 2010 Ben Wing. |
771 | 3 |
4 This file is part of XEmacs. | |
5 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4911
diff
changeset
|
6 XEmacs is free software: you can redistribute it and/or modify it |
771 | 7 under the terms of the GNU General Public License as published by the |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4911
diff
changeset
|
8 Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4911
diff
changeset
|
9 option) any later version. |
771 | 10 |
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4911
diff
changeset
|
17 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
771 | 18 |
19 /* Synched up with: Not in FSF. */ | |
20 | |
21 /* Authorship: | |
22 | |
23 Current primary author: Ben Wing <ben@xemacs.org> | |
24 | |
25 Created summer 2000 by Ben Wing. Completed August 2001. Completely | |
26 written by Ben Wing. | |
27 */ | |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
28 /* Brute-force wrench forward to the modern |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
29 world by Henry S. Thompson <ht@inf.ed.ac.uk>, April 2014. |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
30 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
31 Mostly added 'review' for new functionality |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
32 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
33 Added 11 new 'file' lines because refactoring happened, |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
34 moved everything required to its new home among them. |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
35 */ |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
36 |
771 | 37 |
38 #define NEED_MSWINDOWS_COMMCTRL | |
39 #define NEED_MSWINDOWS_SHLOBJ | |
40 | |
41 #include <config.h> | |
42 #include "lisp.h" | |
43 | |
44 #include "console-msw.h" | |
45 | |
46 int no_mswin_unicode_lib_calls; | |
47 | |
48 | |
49 /************************************************************************/ | |
50 /* auto-generation */ | |
51 /************************************************************************/ | |
52 | |
53 /* we use a simple script to control the auto-generation. | |
54 | |
55 \(The following is copied from lib-src/make-mswin-unicode.pl.) | |
56 | |
57 file specifies a file to start reading from. | |
58 yes indicates a function to be automatically Unicode-encapsulated. | |
59 (All parameters either need no special processing or are LPTSTR or | |
60 LPCTSTR.) | |
4911 | 61 override indidates a function where the prototype can be overridden |
62 due to errors in Cygwin or Visual Studio. | |
771 | 63 soon indicates a function that should be automatically Unicode-encapsulated, |
64 but we're not ready to process it yet. | |
65 no indicates a function we don't support (it will be #defined to cause | |
66 a compile error, with the text after the function included in the | |
67 erroneous definition to indicate why we don't support it). | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
68 review indicates a function that we still need to review to determine whether |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
69 or how to support it. This has the same effect as `no', with a comment |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
70 indicating that the function needs review. |
771 | 71 skip indicates a function we support manually; only a comment about this |
72 will be generated. | |
73 split indicates a function with a split structure (different versions | |
74 for Unicode and ANSI), but where the only difference is in pointer | |
75 types, and the actual size does not differ. The structure name | |
76 should follow the function name, and it will be automatically | |
77 Unicode-encapsulated with appropriate casts. | |
78 begin-bracket indicates a #if statement to be inserted here. | |
79 end-bracket indicates the corresponding #endif statement. | |
80 blank lines and lines beginning with // are ignored. | |
81 | |
82 The generated files go into intl-auto-encap-win32.[ch]. | |
83 | |
84 To regenerate, go to the nt/ subdirectory and type | |
85 | |
86 nmake -f xemacs.mak unicode-encapsulate | |
87 | |
88 This does the following: | |
89 | |
90 cd $(SRC) | |
91 perl ../lib-src/make-mswin-unicode.pl --c-output intl-auto-encap-win32.c --h-output intl-auto-encap-win32.h intl-encap-win32.c | |
92 | |
93 */ | |
94 | |
95 /* | |
96 | |
97 terminology used below: | |
98 | |
99 "split-simple" means a structure where the A and W versions are the same | |
100 size, and the only differences are string pointer arguments. (This does NOT | |
101 include structures with a pointer to a split-sized structure within them.) | |
102 This can also refer to a function pointer whose only split arguments are | |
103 string pointers or split-simple structures. | |
104 | |
105 "split-sized" means a structure where the A and W versions are different | |
106 sizes (typically because of an inline string argument), or where there's a | |
107 pointer to another split-sized structure. | |
108 | |
109 "split-complex" | |
110 | |
111 begin-unicode-encapsulation-script | |
112 | |
800 | 113 // dir c:\Program Files\Microsoft Visual Studio\VC98\Include\ |
114 | |
3728 | 115 file ACLAPI.h |
116 | |
117 yes GetNamedSecurityInfo | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
118 review BuildExplicitAccessWithName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
119 review BuildSecurityDescriptor |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
120 review BuildTrusteeWithName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
121 review BuildTrusteeWithObjectsAndName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
122 review BuildTrusteeWithObjectsAndSid |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
123 review BuildTrusteeWithSid |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
124 review GetAuditedPermissionsFromAcl |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
125 review GetEffectiveRightsFromAcl |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
126 review GetExplicitEntriesFromAcl |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
127 review GetTrusteeForm |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
128 review GetTrusteeName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
129 review GetTrusteeType |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
130 review LookupSecurityDescriptorParts |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
131 review SetEntriesInAcl |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
132 review SetNamedSecurityInfo |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
133 review BuildImpersonateExplicitAccessWithName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
134 review BuildImpersonateTrustee |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
135 review GetMultipleTrustee |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
136 review GetMultipleTrusteeOperation |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
137 review GetInheritanceSource HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
138 review TreeResetNamedSecurityInfo HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
139 review TreeSetNamedSecurityInfo HST: new? -- needs review |
3728 | 140 |
771 | 141 file WINBASE.H |
142 | |
143 yes GetBinaryType | |
1684 | 144 no GetLongPathName Win98/2K+ only |
827 | 145 skip GetEnvironmentStrings misnamed ANSI version of the function |
771 | 146 yes FormatMessage |
147 yes CreateMailslot | |
148 begin-bracket !defined (CYGWIN_HEADERS) | |
778 | 149 no EncryptFile Win2K+ only |
150 no DecryptFile Win2K+ only | |
771 | 151 end-bracket |
152 no OpenRaw error "The procedure entry point OpenRawW could not be located in the dynamic link library ADVAPI32.dll." | |
153 no QueryRecoveryAgents split-sized LPRECOVERY_AGENT_INFORMATION | |
154 yes lstrcmp | |
155 yes lstrcmpi | |
156 yes lstrcpyn | |
157 yes lstrcpy | |
158 yes lstrcat | |
159 yes lstrlen | |
160 yes CreateSemaphore | |
161 yes CreateWaitableTimer | |
162 yes LoadLibrary | |
163 yes FatalAppExit | |
164 yes FindResource | |
2500 | 165 skip EnumResourceTypes different prototypes in VC6 and VC7 |
166 skip EnumResourceNames different prototypes in VC6 and VC7 | |
167 skip EnumResourceLanguages different prototypes in VC6 and VC7 | |
771 | 168 yes BeginUpdateResource |
169 yes UpdateResource | |
170 yes EndUpdateResource | |
171 yes GlobalAddAtom | |
172 yes GlobalFindAtom | |
173 yes GlobalGetAtomName | |
174 yes AddAtom | |
175 yes FindAtom | |
176 yes GetAtomName | |
177 yes GetProfileInt | |
178 yes GetProfileString | |
179 yes WriteProfileString | |
180 yes GetProfileSection | |
181 yes WriteProfileSection | |
182 yes GetPrivateProfileInt | |
183 yes GetPrivateProfileString | |
184 yes WritePrivateProfileString | |
185 yes GetPrivateProfileSection | |
186 yes WritePrivateProfileSection | |
187 yes GetPrivateProfileSectionNames | |
188 yes GetPrivateProfileStruct | |
189 yes WritePrivateProfileStruct | |
190 yes CreateDirectoryEx | |
191 yes GetCompressedFileSize | |
192 no FindFirstFileEx split-sized LPWIN32_FIND_DATA; not used, NT 4.0+ only | |
193 skip FindFirstFile split-sized LPWIN32_FIND_DATA | |
194 skip FindNextFile split-sized LPWIN32_FIND_DATA | |
195 yes CopyFile | |
196 yes CopyFileEx NT 4.0+ only | |
197 yes MoveFile | |
198 yes MoveFileEx | |
199 no MoveFileWithProgress NT 5.0+ only | |
200 no CreateHardLink NT 5.0+ only | |
201 yes GetNamedPipeHandleState | |
202 yes CallNamedPipe | |
203 yes SetVolumeLabel | |
204 yes ClearEventLog | |
205 yes BackupEventLog | |
206 yes OpenEventLog | |
207 yes RegisterEventSource | |
208 yes OpenBackupEventLog | |
209 yes ReadEventLog | |
210 yes ReportEvent | |
211 no AccessCheckByTypeAndAuditAlarm NT 5.0+ only | |
212 no AccessCheckByTypeResultListAndAuditAlarm NT 5.0+ only | |
213 no ReadDirectoryChanges Unicode-only | |
214 yes IsBadStringPtr | |
215 yes LookupAccountSid | |
216 yes LookupAccountName | |
217 yes LookupPrivilegeValue | |
218 yes LookupPrivilegeName | |
219 yes LookupPrivilegeDisplayName | |
220 yes BuildCommDCB | |
221 yes BuildCommDCBAndTimeouts | |
222 yes CommConfigDialog | |
223 yes GetDefaultCommConfig | |
224 yes SetDefaultCommConfig | |
225 yes GetComputerName | |
226 yes SetComputerName | |
227 yes GetUserName | |
5928 | 228 skip LogonUser HST_LPC...pblm_unused |
771 | 229 no GetCurrentHwProfile split-sized LPHW_PROFILE_INFO; NT 4.0+ only |
230 no GetVersionEx split-sized LPOSVERSIONINFO | |
231 no CreateJobObject NT 5.0+ only | |
232 no OpenJobObject NT 5.0+ only | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
233 review CheckNameLegalDOS8Dot3 |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
234 review CreateActCtx |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
235 review CreateProcessWithLogon |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
236 review DeleteVolumeMountPoint |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
237 review DnsHostnameToComputerName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
238 review FileEncryptionStatus |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
239 review FindActCtxSectionString |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
240 review FindFirstVolume |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
241 review FindFirstVolumeMountPoint |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
242 review FindNextVolume |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
243 review FindNextVolumeMountPoint |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
244 review GetFirmwareEnvironmentVariable |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
245 review GetComputerNameEx |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
246 review GetDllDirectory |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
247 review GetModuleHandleEx |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
248 review GetSystemWindowsDirectory |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
249 review GetSystemWow64Directory |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
250 review GetVolumeNameForVolumeMountPoint |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
251 review GetVolumePathName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
252 review GetVolumePathNamesForVolumeName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
253 review QueryActCtx |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
254 review ReplaceFile |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
255 review SetComputerNameEx |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
256 review SetDllDirectory |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
257 review SetFileShortName |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
258 review SetFirmwareEnvironmentVariable |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
259 review SetVolumeMountPoint |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
260 review VerifyVersionInfo |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
261 review GetLongPathNameTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
262 review OpenEncryptedFileRaw HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
263 review QueryFullProcessImageName HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
264 review GetFirmwareEnvironmentVariableEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
265 review SetFirmwareEnvironmentVariableEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
266 review GlobalAddAtomEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
267 review CreateDirectoryTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
268 review RemoveDirectoryTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
269 review GetFullPathNameTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
270 review CreateFileTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
271 review SetFileAttributesTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
272 review GetFileAttributesTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
273 review GetCompressedFileSizeTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
274 review DeleteFileTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
275 review FindFirstFileTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
276 review CopyFileTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
277 review MoveFileTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
278 review CreateHardLinkTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
279 review FindFirstStream HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
280 review FindNextStream HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
281 review FindFirstStreamTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
282 review FindFirstFileName HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
283 review FindNextFileName HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
284 review FindFirstFileNameTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
285 review LookupAccountNameLocal HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
286 review LookupAccountSidLocal HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
287 review LogonUserEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
288 review CreateProcessWithToken HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
289 review CreateSymbolicLink HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
290 review CreateSymbolicLinkTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
291 review QueryActCtxSettings HST: new? -- needs review |
771 | 292 |
293 file WINUSER.H | |
294 | |
295 skip MAKEINTRESOURCE macro | |
296 yes wvsprintf | |
297 no wsprintf varargs | |
298 yes LoadKeyboardLayout | |
299 yes GetKeyboardLayoutName | |
300 no CreateDesktop split-sized LPDEVMODE | |
5928 | 301 skip OpenDesktop HST_LPC...pblm_unused |
771 | 302 split EnumDesktops DESKTOPENUMPROC // callback fun differs only in string pointer type |
4903
70089046adef
fix compile problems in intl-encap* under VS6
Ben Wing <ben@xemacs.org>
parents:
4875
diff
changeset
|
303 override HWINSTA CreateWindowStationW(LPWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES); error arg 1, VS6 prototype, missing const |
5928 | 304 skip OpenWindowStation HST_LPC...pblm_unused |
771 | 305 split EnumWindowStations WINSTAENUMPROC // callback fun differs only in string pointer type |
306 yes GetUserObjectInformation | |
307 yes SetUserObjectInformation | |
308 yes RegisterWindowMessage | |
309 yes GetMessage | |
310 yes DispatchMessage | |
311 yes PeekMessage | |
312 skip SendMessage split messages and structures | |
4903
70089046adef
fix compile problems in intl-encap* under VS6
Ben Wing <ben@xemacs.org>
parents:
4875
diff
changeset
|
313 no SendMessageTimeout VS6 has erroneous seventh parameter DWORD_PTR instead of PDWORD_PTR |
771 | 314 yes SendNotifyMessage |
315 yes SendMessageCallback | |
316 no BroadcastSystemMessage win95 version not split; NT 4.0+ only | |
317 no RegisterDeviceNotification NT 5.0+ only | |
318 yes PostMessage | |
319 yes PostThreadMessage | |
320 no PostAppMessage macro | |
321 skip DefWindowProc return value is conditionalized on _MAC, messes up parser | |
322 no CallWindowProc two versions, STRICT and non-STRICT | |
323 skip RegisterClass need to intercept so we can provide our own window procedure and handle split notify messages; split-simple WNDCLASS | |
324 skip UnregisterClass need to intercept for reasons related to RegisterClass | |
325 split GetClassInfo LPWNDCLASS | |
326 skip RegisterClassEx need to intercept so we can provide our own window procedure and handle split notify messages; split-simple WNDCLASSEX; NT 4.0+ only | |
327 split GetClassInfoEx LPWNDCLASSEX NT 4.0+ only | |
328 yes CreateWindowEx | |
329 skip CreateWindow macro | |
330 yes CreateDialogParam | |
331 split CreateDialogIndirectParam LPCDLGTEMPLATE error in Cygwin prototype (no split) but fixable with typedef | |
332 no CreateDialog macro | |
333 no CreateDialogIndirect macro w/split LPCDLGTEMPLATE | |
334 yes DialogBoxParam | |
335 split DialogBoxIndirectParam LPCDLGTEMPLATE error in Cygwin prototype (no split) but fixable with typedef | |
336 no DialogBox macro | |
337 no DialogBoxIndirect macro w/split LPCDLGTEMPLATE | |
338 yes SetDlgItemText | |
339 yes GetDlgItemText | |
340 yes SendDlgItemMessage | |
341 no DefDlgProc return value is conditionalized on _MAC, messes up parser | |
342 begin-bracket !defined (CYGWIN_HEADERS) | |
343 yes CallMsgFilter | |
344 end-bracket | |
345 yes RegisterClipboardFormat | |
346 yes GetClipboardFormatName | |
347 yes CharToOem | |
348 yes OemToChar | |
349 yes CharToOemBuff | |
350 yes OemToCharBuff | |
351 yes CharUpper | |
352 yes CharUpperBuff | |
353 yes CharLower | |
354 yes CharLowerBuff | |
355 yes CharNext | |
356 yes CharPrev | |
357 no IsCharAlpha split CHAR | |
358 no IsCharAlphaNumeric split CHAR | |
359 no IsCharUpper split CHAR | |
360 no IsCharLower split CHAR | |
361 yes GetKeyNameText | |
362 skip VkKeyScan split CHAR | |
363 no VkKeyScanEx split CHAR; NT 4.0+ only | |
364 yes MapVirtualKey | |
365 yes MapVirtualKeyEx NT 4.0+ only | |
366 yes LoadAccelerators | |
367 yes CreateAcceleratorTable | |
368 yes CopyAcceleratorTable | |
369 yes TranslateAccelerator | |
370 yes LoadMenu | |
371 split LoadMenuIndirect MENUTEMPLATE | |
372 yes ChangeMenu | |
373 yes GetMenuString | |
374 yes InsertMenu | |
375 yes AppendMenu | |
376 yes ModifyMenu | |
377 split InsertMenuItem LPCMENUITEMINFO NT 4.0+ only | |
378 split GetMenuItemInfo LPMENUITEMINFO NT 4.0+ only | |
379 split SetMenuItemInfo LPCMENUITEMINFO NT 4.0+ only | |
380 yes DrawText | |
381 yes DrawTextEx NT 4.0+ only | |
382 yes GrayString | |
383 yes DrawState NT 4.0+ only | |
5928 | 384 skip TabbedTextOut HST_LPC...pblm_unused |
385 skip GetTabbedTextExtent HST_LPC...pblm_unused | |
771 | 386 yes SetProp |
387 yes GetProp | |
388 yes RemoveProp | |
389 split EnumPropsEx PROPENUMPROCEX // callback fun differs only in string pointer type | |
390 split EnumProps PROPENUMPROC // callback fun differs only in string pointer type | |
391 yes SetWindowText | |
392 yes GetWindowText | |
393 yes GetWindowTextLength | |
394 yes MessageBox | |
395 yes MessageBoxEx | |
4873
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
396 // split MessageBoxIndirect LPMSGBOXPARAMS NT 4.0+ only |
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
397 no MessageBoxIndirect Cygwin has split MSGBOXPARAMS* instead of LPMSGBOXPARAMS |
771 | 398 yes GetWindowLong |
399 yes SetWindowLong | |
400 yes GetClassLong | |
401 yes SetClassLong | |
402 yes FindWindow | |
403 yes FindWindowEx NT 4.0+ only | |
404 yes GetClassName | |
405 no SetWindowsHook obsolete; two versions, STRICT and non-STRICT | |
406 yes SetWindowsHookEx | |
407 yes LoadBitmap | |
408 yes LoadCursor | |
409 yes LoadCursorFromFile | |
410 yes LoadIcon | |
411 yes LoadImage NT 4.0+ only | |
412 yes IsDialogMessage | |
413 yes DlgDirList | |
414 yes DlgDirSelectEx | |
415 yes DlgDirListComboBox | |
416 yes DlgDirSelectComboBoxEx | |
417 yes DefFrameProc | |
418 no DefMDIChildProc return value is conditionalized on _MAC, messes up parser | |
4911 | 419 override HWND CreateMDIWindowW(LPWSTR,LPWSTR,DWORD,int,int,int,int,HWND,HINSTANCE,LPARAM); error arg 1, VS6 prototype, missing const |
771 | 420 yes WinHelp |
421 no ChangeDisplaySettings split-sized LPDEVMODE | |
422 no ChangeDisplaySettingsEx split-sized LPDEVMODE; NT 5.0/Win98+ only | |
423 no EnumDisplaySettings split-sized LPDEVMODE | |
424 no EnumDisplayDevices split-sized PDISPLAY_DEVICE; NT 5.0+ only, no Win98 | |
425 yes SystemParametersInfo probs w/ICONMETRICS, NONCLIENTMETRICS | |
426 no GetMonitorInfo NT 5.0/Win98+ only | |
427 no GetWindowModuleFileName NT 5.0+ only | |
428 no RealGetWindowClass NT 5.0+ only | |
429 no GetAltTabInfo NT 5.0+ only | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
430 review BroadcastSystemMessageEx |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
431 review EnumDisplaySettingsEx |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
432 review GetClassLongPtr |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
433 review GetRawInputDeviceInfo |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
434 yes GetWindowLongPtr |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
435 yes SetClassLongPtr |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
436 yes SetWindowLongPtr |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
437 review PrivateExtractIcons HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
438 review CreateIcon HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
439 review DestroyIcon HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
440 review LookupIconIdFromDirectory HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
441 review LookupIconIdFromDirectoryEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
442 review CreateIconFromResource HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
443 review CreateIconFromResourceEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
444 review GetRawInputDeviceInfo HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
445 review GetRawInputBuffer HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
446 review CreateDesktopEx HST: new? -- needs review |
771 | 447 |
448 file WINGDI.H | |
449 | |
4873
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
450 begin-bracket defined (HAVE_MS_WINDOWS) |
771 | 451 // split-sized LOGCOLORSPACE |
452 // split-sized TEXTMETRIC | |
453 // split-sized NEWTEXTMETRIC | |
454 // split-sized NEWTEXTMETRICEX | |
455 // split-sized LOGFONT | |
456 // split-sized ENUMLOGFONT | |
457 // split-sized ENUMLOGFONTEX | |
458 // split-sized EXTLOGFONT, used in EMREXTCREATEFONTINDIRECTW (Unicode-only) and (???) in DEVINFO (DDK structure) | |
459 // split-sized DEVMODE | |
460 // split-sized DISPLAY_DEVICE, used in EnumDisplayDevices | |
461 // split-sized OUTLINETEXTMETRIC | |
462 // split-simple POLYTEXT | |
463 // split-simple GCP_RESULTS | |
464 // split-sized function pointer OLDFONTENUMPROC, same as FONTENUMPROC | |
465 // split-sized function pointer FONTENUMPROC | |
466 yes AddFontResource | |
467 yes CopyMetaFile | |
468 skip CreateDC split-sized DEVMODE | |
469 skip CreateFontIndirect split-sized LOGFONT | |
470 yes CreateFont | |
471 skip CreateIC split-sized DEVMODE | |
472 yes CreateMetaFile | |
473 yes CreateScalableFontResource | |
474 skip DeviceCapabilities split-sized DEVMODE | |
475 skip EnumFontFamiliesEx split-complex FONTENUMPROC; NT 4.0+ only | |
476 no EnumFontFamilies split-complex FONTENUMPROC | |
477 no EnumFonts split-complex FONTENUMPROC | |
478 yes GetCharWidth | |
479 yes GetCharWidth32 | |
480 yes GetCharWidthFloat | |
481 yes GetCharABCWidths | |
482 yes GetCharABCWidthsFloat | |
483 yes GetGlyphOutline | |
484 yes GetMetaFile | |
485 no GetOutlineTextMetrics split-sized LPOUTLINETEXTMETRIC | |
486 yes GetTextExtentPoint | |
487 yes GetTextExtentPoint32 | |
488 yes GetTextExtentExPoint | |
489 split GetCharacterPlacement LPGCP_RESULTS NT 4.0+ only | |
490 no GetGlyphIndices NT 5.0+ only | |
491 no AddFontResourceEx NT 5.0+ only | |
492 no RemoveFontResourceEx NT 5.0+ only | |
493 // split-sized AXISINFO, used in AXESLIST; NT 5.0+ only | |
494 // split-sized AXESLIST, used in ENUMLOGFONTEXDV; NT 5.0+ only | |
495 // split-sized ENUMLOGFONTEXDV; NT 5.0+ only | |
496 no CreateFontIndirectEx split-sized ENUMLOGFONTEXDV; NT 5.0+ only | |
497 // split-sized ENUMTEXTMETRIC, returned in EnumFontFamExProc, on NT 5.0+; NT 5.0+ only | |
498 skip ResetDC split-sized DEVMODE | |
499 yes RemoveFontResource | |
500 yes CopyEnhMetaFile | |
501 yes CreateEnhMetaFile | |
502 yes GetEnhMetaFile | |
503 yes GetEnhMetaFileDescription | |
504 skip GetTextMetrics split-sized LPTEXTMETRIC | |
505 // split-simple DOCINFO | |
506 split StartDoc DOCINFO | |
507 skip GetObject split-sized LOGFONT | |
508 yes TextOut | |
509 yes ExtTextOut | |
510 split PolyTextOut POLYTEXT | |
511 yes GetTextFace | |
512 yes GetKerningPairs | |
513 // split-simple function pointer ICMENUMPROC | |
514 no GetLogColorSpace split-sized LPLOGCOLORSPACE; NT 4.0+ only | |
515 no CreateColorSpace split-sized LPLOGCOLORSPACE; NT 4.0+ only | |
4903
70089046adef
fix compile problems in intl-encap* under VS6
Ben Wing <ben@xemacs.org>
parents:
4875
diff
changeset
|
516 yes GetICMProfile NT 4.0+ only, former error in Cygwin prototype but no more (Cygwin 1.7, 1-30-10) |
771 | 517 yes SetICMProfile NT 4.0+ only |
518 split EnumICMProfiles ICMENUMPROC NT 4.0+ only | |
519 skip UpdateICMRegKey NT 4.0+ only, error in Cygwin prototype | |
520 // non-split EMREXTTEXTOUT (A and W versions identical) | |
521 // non-split EMRPOLYTEXTOUT (A and W versions identical) | |
522 // Unicode-only EMREXTCREATEFONTINDIRECTW | |
523 no wglUseFontBitmaps causes link error | |
524 no wglUseFontOutlines causes link error | |
4873
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
525 end-bracket |
771 | 526 |
527 file WINSPOOL.H | |
528 | |
529 begin-bracket defined (HAVE_MS_WINDOWS) | |
530 yes EnumPrinters #### problems with DEVMODE pointer in PRINTER_INFO_2 | |
531 skip OpenPrinter split-sized DEVMODE pointer in split PRINTER_DEFAULTS | |
532 no ResetPrinter split-sized DEVMODE pointer in split PRINTER_DEFAULTS | |
533 no SetJob split-sized DEVMODE pointer in split JOB_INFO_2 | |
534 no GetJob split-sized DEVMODE pointer in split JOB_INFO_2 | |
535 no EnumJobs split-sized DEVMODE pointer in split JOB_INFO_2 | |
536 no AddPrinter split-sized DEVMODE pointer in split PRINTER_INFO_2 | |
537 no SetPrinter split-sized DEVMODE pointer in split PRINTER_INFO_2 | |
538 no GetPrinter split-sized DEVMODE pointer in split PRINTER_INFO_2 | |
539 // other than DocumentProperties below, we don't use any of the others, | |
540 // and they all pretty much have complicated interfaces with lots of | |
541 // split structures, etc. | |
542 no AddPrinterDriver not used, complicated interface with split structures | |
543 no AddPrinterDriverEx not used, complicated interface with split structures | |
544 no EnumPrinterDrivers not used, complicated interface with split structures | |
545 no GetPrinterDriver not used, complicated interface with split structures | |
546 no GetPrinterDriverDirectory not used, complicated interface with split structures | |
547 no DeletePrinterDriver not used, complicated interface with split structures | |
548 no DeletePrinterDriverEx not used, complicated interface with split structures | |
549 no AddPerMachineConnection not used, complicated interface with split structures | |
550 no DeletePerMachineConnection not used, complicated interface with split structures | |
551 no EnumPerMachineConnections not used, complicated interface with split structures | |
552 no AddPrintProcessor not used, complicated interface with split structures | |
553 no EnumPrintProcessors not used, complicated interface with split structures | |
554 no GetPrintProcessorDirectory not used, complicated interface with split structures | |
555 no EnumPrintProcessorDatatypes not used, complicated interface with split structures | |
556 no DeletePrintProcessor not used, complicated interface with split structures | |
557 no StartDocPrinter not used, complicated interface with split structures | |
558 no AddJob not used, complicated interface with split structures | |
559 skip DocumentProperties split-sized DEVMODE, error in Cygwin prototype | |
560 no AdvancedDocumentProperties not used, complicated interface with split structures | |
561 no GetPrinterData not used, complicated interface with split structures | |
562 no GetPrinterDataEx not used, complicated interface with split structures | |
563 no EnumPrinterData not used, complicated interface with split structures | |
564 no EnumPrinterDataEx not used, complicated interface with split structures | |
565 no EnumPrinterKey not used, complicated interface with split structures | |
566 no SetPrinterData not used, complicated interface with split structures | |
567 no SetPrinterDataEx not used, complicated interface with split structures | |
568 no DeletePrinterData not used, complicated interface with split structures | |
569 no DeletePrinterDataEx not used, complicated interface with split structures | |
570 no DeletePrinterKey not used, complicated interface with split structures | |
571 no PrinterMessageBox not used, complicated interface with split structures | |
572 no AddForm not used, complicated interface with split structures | |
573 no DeleteForm not used, complicated interface with split structures | |
574 no GetForm not used, complicated interface with split structures | |
575 no SetForm not used, complicated interface with split structures | |
576 no EnumForms not used, complicated interface with split structures | |
577 no EnumMonitors not used, complicated interface with split structures | |
578 no AddMonitor not used, complicated interface with split structures | |
579 no DeleteMonitor not used, complicated interface with split structures | |
580 no EnumPorts not used, complicated interface with split structures | |
581 no AddPort not used, complicated interface with split structures | |
582 no ConfigurePort not used, complicated interface with split structures | |
583 no DeletePort not used, complicated interface with split structures | |
584 no XcvData not used, complicated interface with split structures | |
585 no SetPort not used, complicated interface with split structures | |
586 no AddPrinterConnection not used, complicated interface with split structures | |
587 no DeletePrinterConnection not used, complicated interface with split structures | |
588 no AddPrintProvidor not used, complicated interface with split structures | |
589 no DeletePrintProvidor not used, complicated interface with split structures | |
590 no SetPrinterHTMLView not used, complicated interface with split structures | |
591 no GetPrinterHTMLView not used, complicated interface with split structures | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
592 review GetDefaultPrinter |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
593 review SetDefaultPrinter HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
594 review AddPrinterConnection2 HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
595 review DeletePrinterDriverPackage HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
596 review DocumentEvent HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
597 review GetCorePrinterDrivers HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
598 review GetPrinterDriver2 HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
599 review GetPrinterDriverPackagePath HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
600 review GetSpoolFileHandle HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
601 review OpenPrinter2 HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
602 review UploadPrinterDriverPackage HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
603 |
771 | 604 end-bracket |
605 | |
606 file SHELLAPI.H | |
607 | |
608 yes DragQueryFile | |
609 yes ShellExecute | |
610 yes FindExecutable | |
611 no CommandLineToArgv Unicode-only | |
612 yes ShellAbout | |
4903
70089046adef
fix compile problems in intl-encap* under VS6
Ben Wing <ben@xemacs.org>
parents:
4875
diff
changeset
|
613 override HICON ExtractAssociatedIconW(HINSTANCE, LPWSTR, LPWORD); error arg2, Cygwin prototype, extra const |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
614 review ExtractAssociatedIconEx HST: new? -- needs review |
771 | 615 yes ExtractIcon |
616 // split-simple DRAGINFO, used ??? (docs say "Not currently supported") | |
617 begin-bracket !defined (CYGWIN_HEADERS) | |
618 yes DoEnvironmentSubst NT 4.0+ only | |
619 end-bracket | |
620 no FindEnvironmentString causes link error; NT 4.0+ only | |
4903
70089046adef
fix compile problems in intl-encap* under VS6
Ben Wing <ben@xemacs.org>
parents:
4875
diff
changeset
|
621 yes ExtractIconEx NT 4.0+ only, former error in Cygwin prototype but no more (Cygwin 1.7, 1-30-10) |
771 | 622 // split-simple SHFILEOPSTRUCT, used in SHFileOperation |
623 // split-simple SHNAMEMAPPING, used in SHFileOperation | |
624 split SHFileOperation LPSHFILEOPSTRUCT NT 4.0+ only | |
625 // split-simple SHELLEXECUTEINFO, used in ShellExecuteEx | |
5921
68639fb08af8
no obvious 64 vs. 32 pblms in compilation, but still crashing in event-msw
Henry Thompson <ht@markup.co.uk>
parents:
5920
diff
changeset
|
626 review ShellExecuteEx LPSHELLEXECUTEINFO NT 4.0+ only HST: not used, split is broken because of * in declaration in shellapi.h |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
627 review SHCreateProcessAsUser HST: new? -- needs review |
771 | 628 no WinExecError causes link error; NT 4.0+ only |
629 begin-bracket !defined (CYGWIN_HEADERS) | |
630 yes SHQueryRecycleBin NT 4.0+ only | |
631 yes SHEmptyRecycleBin NT 4.0+ only | |
632 end-bracket | |
633 // split-sized NOTIFYICONDATA, used in Shell_NotifyIcon | |
634 no Shell_NotifyIcon split-sized NOTIFYICONDATA, NT 4.0+ only | |
635 // split-sized SHFILEINFO, used in SHGetFileInfo | |
636 skip SHGetFileInfo split-sized SHFILEINFO, NT 4.0+ only | |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
637 review SHGetDiskFreeSpaceEx HST: new? -- needs review |
771 | 638 no SHGetDiskFreeSpace causes link error; NT 4.0+ only |
639 begin-bracket !defined (CYGWIN_HEADERS) | |
640 yes SHGetNewLinkInfo NT 4.0+ only | |
641 yes SHInvokePrinterCommand NT 4.0+ only | |
642 end-bracket | |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
643 review IsLFNDrive HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
644 review SHEnumerateUnreadMailAccounts HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
645 review SHGetUnreadMailCount HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
646 review SHSetUnreadMailCount HST: new? -- needs review |
771 | 647 |
648 end-unicode-encapsulation-script | |
649 | |
650 file COMMCTRL.H | |
651 | |
652 yes ImageList_LoadImage | |
653 WC_HEADER | |
654 HDITEM | |
655 LPHDITEM | |
656 HDM_INSERTITEM | |
657 HDM_GETITEM | |
658 HDM_SETITEM | |
659 HDN_ITEMCHANGING | |
660 HDN_ITEMCHANGED | |
661 HDN_ITEMCLICK | |
662 HDN_ITEMDBLCLICK | |
663 HDN_DIVIDERDBLCLICK | |
664 HDN_BEGINTRACK | |
665 HDN_ENDTRACK | |
666 HDN_TRACK | |
667 HDN_GETDISPINFO | |
668 NMHEADER | |
669 LPNMHEADER | |
670 NMHDDISPINFO | |
671 LPNMHDDISPINFO | |
672 TOOLBARCLASSNAME | |
673 TBSAVEPARAMS | |
674 LPTBSAVEPARAMS | |
675 TB_GETBUTTONTEXT | |
676 TB_SAVERESTORE | |
677 TB_ADDSTRING | |
678 TBBUTTONINFO | |
679 LPTBBUTTONINFO | |
680 TB_GETBUTTONINFO | |
681 TB_SETBUTTONINFO | |
682 TB_INSERTBUTTON | |
683 TB_ADDBUTTONS | |
684 TBN_GETINFOTIP | |
685 NMTBGETINFOTIP | |
686 LPNMTBGETINFOTIP | |
687 TBN_GETDISPINFO | |
688 LPNMTBDISPINFO | |
689 TBN_GETBUTTONINFO | |
690 NMTOOLBAR | |
691 LPNMTOOLBAR | |
692 REBARCLASSNAME | |
693 REBARBANDINFO | |
694 LPREBARBANDINFO | |
695 LPCREBARBANDINFO | |
696 RB_INSERTBAND | |
697 RB_SETBANDINFO | |
698 RB_GETBANDINFO | |
699 TOOLTIPS_CLASS | |
700 TTTOOLINFO | |
701 PTOOLINFO | |
702 LPTTTOOLINFO | |
703 TTM_ADDTOOL | |
704 TTM_DELTOOL | |
705 TTM_NEWTOOLRECT | |
706 TTM_GETTOOLINFO | |
707 TTM_SETTOOLINFO | |
708 TTM_HITTEST | |
709 TTM_GETTEXT | |
710 TTM_UPDATETIPTEXT | |
711 TTM_ENUMTOOLS | |
712 TTM_GETCURRENTTOOL | |
713 TTHITTESTINFO | |
714 LPTTHITTESTINFO | |
715 TTN_GETDISPINFO | |
716 NMTTDISPINFO | |
717 LPNMTTDISPINFO | |
718 CreateStatusWindow | |
719 DrawStatusText | |
720 STATUSCLASSNAME | |
721 SB_GETTEXT | |
722 SB_SETTEXT | |
723 SB_GETTEXTLENGTH | |
724 SB_SETTIPTEXT | |
725 SB_GETTIPTEXT | |
726 TRACKBAR_CLASS | |
727 UPDOWN_CLASS | |
728 PROGRESS_CLASS | |
729 HOTKEY_CLASS | |
730 WC_LISTVIEW | |
731 LVITEM | |
732 LPLVITEM | |
733 LPSTR_TEXTCALLBACK | |
734 LVM_GETITEM | |
735 LVM_SETITEM | |
736 LVM_INSERTITEM | |
737 LVFINDINFO | |
738 LVM_FINDITEM | |
739 LVM_GETSTRINGWIDTH | |
740 LVM_EDITLABEL | |
741 LVCOLUMN | |
742 LPLVCOLUMN | |
743 LVM_GETCOLUMN | |
744 LVM_SETCOLUMN | |
745 LVM_GETITEMTEXT | |
746 LVM_SETITEMTEXT | |
747 LVM_GETISEARCHSTRING | |
748 LVBKIMAGE | |
749 LPLVBKIMAGE | |
750 LVM_SETBKIMAGE | |
751 LVM_GETBKIMAGE | |
752 LVN_ODFINDITEM | |
753 LVN_BEGINLABELEDIT | |
754 LVN_ENDLABELEDIT | |
755 LVN_GETDISPINFO | |
756 LVN_SETDISPINFO | |
757 NMLVDISPINFO | |
758 LVN_GETINFOTIP | |
759 NMLVGETINFOTIP | |
760 LPNMLVGETINFOTIP | |
761 WC_TREEVIEW | |
762 TVITEM | |
763 LPTVITEM | |
764 TVINSERTSTRUCT | |
765 LPTVINSERTSTRUCT | |
766 TVM_INSERTITEM | |
767 TVM_GETITEM | |
768 TVM_SETITEM | |
769 TVM_EDITLABEL | |
770 TVM_GETISEARCHSTRING | |
771 NMTREEVIEW | |
772 LPNMTREEVIEW | |
773 NMTVDISPINFO | |
774 LPNMTVDISPINFO | |
775 TVN_SELCHANGING | |
776 TVN_SELCHANGED | |
777 TVN_GETDISPINFO | |
778 TVN_SETDISPINFO | |
779 TVN_ITEMEXPANDING | |
780 TVN_ITEMEXPANDED | |
781 TVN_BEGINDRAG | |
782 TVN_BEGINRDRAG | |
783 TVN_DELETEITEM | |
784 TVN_BEGINLABELEDIT | |
785 TVN_ENDLABELEDIT | |
786 TVN_GETINFOTIP | |
787 NMTVGETINFOTIP | |
788 LPNMTVGETINFOTIP | |
789 WC_COMBOBOXEX | |
790 COMBOBOXEXITEM | |
791 PCOMBOBOXEXITEM | |
792 PCCOMBOBOXEXITEM | |
793 CBEM_INSERTITEM | |
794 CBEM_SETITEM | |
795 CBEM_GETITEM | |
796 NMCOMBOBOXEX | |
797 PNMCOMBOBOXEX | |
798 CBEN_GETDISPINFO | |
799 CBEN_DRAGBEGIN | |
800 CBEN_ENDEDIT | |
801 NMCBEDRAGBEGIN | |
802 LPNMCBEDRAGBEGIN | |
803 PNMCBEDRAGBEGIN | |
804 NMCBEENDEDIT | |
805 LPNMCBEENDEDIT | |
806 PNMCBEENDEDIT | |
807 WC_TABCONTROL | |
808 TCITEMHEADER | |
809 LPTCITEMHEADER | |
810 TCITEM | |
811 LPTCITEM | |
812 TCM_GETITEM | |
813 TCM_SETITEM | |
814 TCM_INSERTITEM | |
815 ANIMATE_CLASS | |
816 ACM_OPEN | |
817 MONTHCAL_CLASS | |
818 DATETIMEPICK_CLASS | |
819 DTM_SETFORMAT | |
820 DTN_USERSTRING | |
821 NMDATETIMESTRING | |
822 LPNMDATETIMESTRING | |
823 DTN_WMKEYDOWN | |
824 NMDATETIMEWMKEYDOWN | |
825 LPNMDATETIMEWMKEYDOWN | |
826 DTN_FORMAT | |
827 NMDATETIMEFORMAT | |
828 LPNMDATETIMEFORMAT | |
829 DTN_FORMATQUERY | |
830 NMDATETIMEFORMATQUERY | |
831 LPNMDATETIMEFORMATQUERY | |
832 WC_IPADDRESS | |
833 WC_PAGESCROLLER | |
834 WC_NATIVEFONTCTL | |
835 | |
836 begin-unicode-encapsulation-script | |
837 | |
838 file COMMDLG.H | |
839 | |
4873
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
840 begin-bracket defined (HAVE_MS_WINDOWS) |
771 | 841 split GetOpenFileName LPOPENFILENAME |
842 split GetSaveFileName LPOPENFILENAME | |
843 yes GetFileTitle | |
844 no CommDlg_OpenSave_GetSpec macro | |
845 no CommDlg_OpenSave_GetFilePath macro | |
846 no CommDlg_OpenSave_GetFolderPath macro | |
847 split ChooseColor LPCHOOSECOLOR | |
848 split FindText LPFINDREPLACE | |
849 split ReplaceText LPFINDREPLACE | |
850 no AfxReplaceText mac only | |
851 no ChooseFont split-sized LPLOGFONT in LPCHOOSEFONT | |
852 // LBSELCHSTRING | |
853 // SHAREVISTRING | |
854 // FILEOKSTRING | |
855 // COLOROKSTRING | |
856 // SETRGBSTRING | |
857 // HELPMSGSTRING | |
858 // FINDMSGSTRING | |
859 skip PrintDlg LPPRINTDLG with split-sized DEVMODE handle | |
860 skip PageSetupDlg LPPAGESETUPDLG with split-sized DEVMODE handle | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
861 review PrintDlgEx |
4873
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
862 end-bracket |
771 | 863 |
864 file DDE.H | |
865 | |
866 // nothing | |
867 | |
868 file DDEML.H | |
869 | |
870 yes DdeInitialize | |
4903
70089046adef
fix compile problems in intl-encap* under VS6
Ben Wing <ben@xemacs.org>
parents:
4875
diff
changeset
|
871 yes DdeCreateStringHandle former error in Cygwin prototype, but no more (Cygwin 1.7, 1-30-10) |
771 | 872 yes DdeQueryString |
873 // #### split-sized (or split-simple??? not completely obvious) structure MONHSZSTRUCT, used when DDE event MF_HSZ_INFO is sent as part of the XTYP_MONITOR transaction sent to a DDE callback; not yet handled | |
874 | |
875 file IMM.H | |
876 | |
877 begin-bracket defined (HAVE_MS_WINDOWS) | |
878 yes ImmInstallIME | |
879 yes ImmGetDescription | |
880 yes ImmGetIMEFileName | |
881 yes ImmGetCompositionString | |
2500 | 882 skip ImmSetCompositionString different prototypes in VC6 and VC7 |
771 | 883 yes ImmGetCandidateListCount |
884 yes ImmGetCandidateList | |
885 yes ImmGetGuideLine | |
886 skip ImmGetCompositionFont split-sized LOGFONT | |
887 skip ImmSetCompositionFont split-sized LOGFONT | |
888 yes ImmConfigureIME // split-simple REGISTERWORD | |
889 yes ImmEscape // strings of various sorts | |
890 yes ImmGetConversionList | |
891 yes ImmIsUIMessage | |
892 yes ImmRegisterWord | |
893 yes ImmUnregisterWord | |
894 no ImmGetRegisterWordStyle split-sized STYLEBUF | |
895 split ImmEnumRegisterWord REGISTERWORDENUMPROC | |
896 no ImmGetImeMenuItems split-sized IMEMENUITEMINFO | |
897 end-bracket | |
898 | |
899 file MMSYSTEM.H | |
900 | |
901 yes sndPlaySound | |
902 yes PlaySound | |
903 no waveOutGetDevCaps split-sized LPWAVEOUTCAPS | |
904 yes waveOutGetErrorText | |
905 no waveInGetDevCaps split-sized LPWAVEINCAPS | |
906 yes waveInGetErrorText | |
907 no midiOutGetDevCaps split-sized LPMIDIOUTCAPS | |
908 yes midiOutGetErrorText | |
909 no midiInGetDevCaps split-sized LPMIDIOUTCAPS | |
910 yes midiInGetErrorText | |
911 no auxGetDevCaps split-sized LPAUXCAPS | |
912 no mixerGetDevCaps split-sized LPMIXERCAPS | |
913 no mixerGetLineInfo split-sized LPMIXERLINE | |
914 no mixerGetLineControls split-sized LPMIXERCONTROL | |
915 no mixerGetControlDetails split-sized LPMIXERCONTROL in LPMIXERLINECONTROLS in LPMIXERCONTROLDETAILS | |
916 no joyGetDevCaps split-sized LPJOYCAPS | |
917 yes mmioStringToFOURCC | |
918 yes mmioInstallIOProc | |
919 yes mmioOpen | |
920 yes mmioRename | |
921 yes mciSendCommand | |
922 yes mciSendString | |
923 yes mciGetDeviceID | |
924 begin-bracket !defined (MINGW) | |
778 | 925 no mciGetDeviceIDFromElementID missing from Win98se version of ADVAPI32.dll |
771 | 926 end-bracket |
927 yes mciGetErrorString | |
928 | |
929 file WINNETWK.H | |
930 | |
931 begin-bracket defined (HAVE_MS_WINDOWS) | |
932 yes WNetAddConnection | |
933 split WNetAddConnection2 LPNETRESOURCE | |
934 split WNetAddConnection3 LPNETRESOURCE | |
935 yes WNetCancelConnection | |
936 yes WNetCancelConnection2 | |
937 yes WNetGetConnection | |
938 split WNetUseConnection LPNETRESOURCE | |
939 split WNetConnectionDialog1 LPCONNECTDLGSTRUCT contains split-simple LPNETRESOURCE | |
940 split WNetDisconnectDialog1 LPDISCDLGSTRUCT | |
941 split WNetOpenEnum LPNETRESOURCE | |
942 yes WNetEnumResource | |
943 yes WNetGetUniversalName | |
944 yes WNetGetUser | |
945 yes WNetGetProviderName | |
946 yes WNetGetNetworkInformation | |
947 // split-simple function pointer PFNGETPROFILEPATH | |
948 // split-simple function pointer PFNRECONCILEPROFILE | |
949 // split-simple function pointer PFNPROCESSPOLICIES | |
950 yes WNetGetLastError | |
951 split MultinetGetConnectionPerformance LPNETRESOURCE | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
952 review WNetSetConnection |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
953 review WNetGetResourceInformation |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
954 review WNetGetResourceParent |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
955 review WNetRestoreSingleConnection HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
956 review WNetRestoreConnection HST: new? -- needs review |
771 | 957 end-bracket |
958 | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
959 // file IME.H -- doesn't exist under Cygwin |
771 | 960 |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
961 no SendIMEMessageEx obsolete, no docs available |
771 | 962 |
963 file OBJBASE.H | |
964 | |
965 // nothing | |
966 | |
967 file SHLOBJ.H | |
968 | |
969 // #### split code for IContextMenu not yet written | |
970 // split flag constant GCS_VERB of IContextMenu::GetCommandString | |
971 // split flag constant GCS_HELPTEXT of IContextMenu::GetCommandString | |
972 // split flag constant GCS_VALIDATE of IContextMenu::GetCommandString | |
973 // split string constant CMDSTR_NEWFOLDER of CMINVOKECOMMANDINFO.lpVerb or CMINVOKECOMMANDINFOEX.lpVerbW of IContextMenu::InvokeCommand | |
974 // split string constant CMDSTR_VIEWLIST of same | |
975 // split string constant CMDSTR_VIEWDETAILS of same | |
976 // #### split code for IExtractIcon, IShellLink, IShellExecuteHook, INewShortcutHook, ICopyHook, IFileViewer not yet written | |
977 // split interface IExtractIcon | |
978 // split interface IShellLink | |
979 // split interface IShellExecuteHook | |
980 // split interface INewShortcutHook | |
981 // split interface ICopyHook | |
982 // split interface IFileViewer | |
983 yes SHGetPathFromIDList | |
984 skip SHGetSpecialFolderPath error in Cygwin prototype, missing from Cygwin libraries | |
985 // split-simple structure BROWSEINFO used in SHBrowseForFolder | |
986 skip SHBrowseForFolder need to intercept callback for SendMessage | |
987 // split message BFFM_SETSTATUSTEXT handled in qxeSendMessage | |
988 // split message BFFM_SETSELECTION handled in qxeSendMessage | |
989 // split message BFFM_VALIDATEFAILED handled in qxeSHBrowseForFolder intercept proc | |
990 // #### code to handle split clipboard formats not yet written. this will | |
991 // #### be tricky -- all functions that use such clipboard formats need to | |
992 // #### be split, and the data itself munged. this may be too much effort, | |
993 // #### and we may just need to require that the app itself does the | |
994 // #### splitting. | |
995 // split clipboard format CFSTR_FILEDESCRIPTOR | |
996 // split clipboard format CFSTR_FILENAME | |
997 // split clipboard format CFSTR_FILENAMEMAP | |
998 // split-sized structure FILEDESCRIPTOR | |
999 // split-sized structure FILEGROUPDESCRIPTOR | |
1000 // split flag SHCNF_PATH; we intercept SHChangeNotify | |
1001 // split flag SHCNF_PRINTER; we intercept SHChangeNotify | |
1002 // split flag SHARD_PATH; we intercept SHAddToRecentDocs | |
1003 skip SHGetDataFromIDList split-sized WIN32_FIND_DATA or split-simple NETRESOURCE, missing from Cygwin libraries | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1004 review SHGetFolderPath |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1005 review SHGetIconOverlayIndex |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1006 review SHCreateDirectoryEx |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1007 review SHGetFolderPathAndSubDir |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1008 review ILCreateFromPath HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1009 review SHSetFolderPath HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1010 review SHUpdateImage HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1011 review PathIsSlow HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1012 review SHStartNetConnectionDialog HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1013 review SHDefExtractIcon HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1014 review Shell_GetCachedImageIndex HST: new? -- needs review |
771 | 1015 |
1016 file WINNLS.H | |
1017 | |
798 | 1018 no LOCALE_ENUMPROC not used, not examined yet |
1019 no CODEPAGE_ENUMPROC not used, not examined yet | |
1020 no DATEFMT_ENUMPROC not used, not examined yet | |
1021 no DATEFMT_ENUMPROCEX not used, not examined yet | |
1022 no TIMEFMT_ENUMPROC not used, not examined yet | |
1023 no CALINFO_ENUMPROC not used, not examined yet | |
1024 no CALINFO_ENUMPROCEX not used, not examined yet | |
1025 no GetCPInfoEx not used, not examined yet | |
1026 no CompareString not used, not examined yet | |
1027 no LCMapString not used, not examined yet | |
1028 yes GetLocaleInfo | |
1029 yes SetLocaleInfo | |
1030 no GetTimeFormat not used, not examined yet | |
1031 no GetDateFormat not used, not examined yet | |
1032 no GetNumberFormat not used, not examined yet | |
1033 no GetCurrencyFormat not used, not examined yet | |
1034 no EnumCalendarInfo not used, not examined yet | |
1035 no EnumCalendarInfoEx not used, not examined yet | |
1036 no EnumTimeFormats not used, not examined yet | |
1037 no EnumDateFormats not used, not examined yet | |
1038 no EnumDateFormatsEx not used, not examined yet | |
1039 no GetStringTypeEx not used, not examined yet | |
800 | 1040 no GetStringType no such fun; A and W versions have different nos. of args |
798 | 1041 no FoldString not used, not examined yet |
1042 no EnumSystemLocales not used, not examined yet | |
1043 no EnumSystemCodePages not used, not examined yet | |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1044 review GetCalendarInfo |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1045 review GetGeoInfo |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1046 review SetCalendarInfo |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1047 review EnumSystemLanguageGroups |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1048 review EnumLanguageGroupLocales |
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1049 review EnumUILanguages |
798 | 1050 |
1051 end-unicode-encapsulation-script | |
771 | 1052 |
1053 file WINVER.H | |
1054 | |
1055 VerFindFile | |
1056 VerInstallFile | |
1057 GetFileVersionInfoSize | |
1058 GetFileVersionInfo | |
1059 VerLanguageName | |
1060 VerQueryValue | |
1061 | |
1062 begin-unicode-encapsulation-script | |
1063 | |
1064 file WINCON.H | |
1065 | |
1066 yes PeekConsoleInput | |
1067 yes ReadConsoleInput | |
1068 yes WriteConsoleInput | |
1069 yes ReadConsoleOutput | |
1070 yes WriteConsoleOutput | |
1071 yes ReadConsoleOutputCharacter | |
1072 yes WriteConsoleOutputCharacter | |
1073 no FillConsoleOutputCharacter split CHAR | |
1074 yes ScrollConsoleScreenBuffer | |
1075 yes GetConsoleTitle | |
1076 yes SetConsoleTitle | |
1077 yes ReadConsole | |
1078 yes WriteConsole | |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1079 review AddConsoleAlias HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1080 review GetConsoleAlias HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1081 review GetConsoleAliasesLength HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1082 review GetConsoleAliasExesLength HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1083 review GetConsoleAliases HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1084 review GetConsoleAliasExes HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1085 review GetConsoleOriginalTitle HST: new? -- needs review |
771 | 1086 file WINREG.H |
1087 | |
4903
70089046adef
fix compile problems in intl-encap* under VS6
Ben Wing <ben@xemacs.org>
parents:
4875
diff
changeset
|
1088 yes RegConnectRegistry former error in Cygwin prototype, but no more (Cygwin 1.7, 1-30-10) |
771 | 1089 yes RegCreateKey |
1090 yes RegCreateKeyEx | |
1091 yes RegDeleteKey | |
1092 yes RegDeleteValue | |
1093 yes RegEnumKey | |
1094 yes RegEnumKeyEx | |
1095 yes RegEnumValue | |
1096 yes RegLoadKey | |
1097 yes RegOpenKey | |
1098 yes RegOpenKeyEx | |
1099 yes RegQueryInfoKey | |
1100 yes RegQueryValue | |
1101 split RegQueryMultipleValues PVALENT | |
1102 yes RegQueryValueEx | |
1103 yes RegReplaceKey | |
1104 yes RegRestoreKey | |
1105 yes RegSaveKey | |
1106 yes RegSetValue | |
1107 yes RegSetValueEx | |
1108 yes RegUnLoadKey | |
1109 yes InitiateSystemShutdown | |
4903
70089046adef
fix compile problems in intl-encap* under VS6
Ben Wing <ben@xemacs.org>
parents:
4875
diff
changeset
|
1110 override BOOL AbortSystemShutdownW(LPWSTR); error arg 1, Cygwin prototype, extra const |
4875
49de55c09f18
add "review" lines in intl-encap-win32.c for all unseen functions in processed headers
Ben Wing <ben@xemacs.org>
parents:
4873
diff
changeset
|
1111 review RegDeleteKeyEx |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1112 review RegConnectRegistryEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1113 review RegGetValue HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1114 review InitiateSystemShutdownEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1115 review RegSaveKeyEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1116 review RegCopyTree HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1117 review RegCreateKeyTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1118 review RegDeleteKeyTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1119 review RegDeleteKeyValue HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1120 review RegDeleteTree HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1121 review RegDisablePredefinedCacheEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1122 review RegLoadAppKey HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1123 review RegLoadMUIString HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1124 review RegOpenKeyTransacted HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1125 review RegSetKeyValue HST: new? -- needs review |
771 | 1126 |
1127 file EXCPT.H | |
1128 | |
1129 // nothing | |
1130 | |
1131 file STDARG.H | |
1132 | |
1133 // nothing | |
1134 | |
1135 file CDERR.H | |
1136 | |
1137 // nothing | |
1138 | |
1139 file WINPERF.H | |
1140 | |
1141 // nothing | |
1142 | |
1143 file RPC.H | |
1144 | |
1145 // nothing | |
1146 | |
1147 file NB30.H | |
1148 | |
1149 // nothing | |
1150 | |
800 | 1151 end-unicode-encapsulation-script |
1152 | |
771 | 1153 file WINSOCK2.H |
1154 | |
1155 SO_PROTOCOL_INFO | |
1156 SERVICE_TYPE_VALUE_SAPID | |
1157 SERVICE_TYPE_VALUE_TCPPORT | |
1158 SERVICE_TYPE_VALUE_UDPPORT | |
1159 SERVICE_TYPE_VALUE_OBJECTID | |
1160 WSADuplicateSocket | |
1161 LPFN_WSADUPLICATESOCKET | |
1162 WSAEnumProtocols | |
1163 LPFN_WSAENUMPROTOCOLS | |
1164 WSASocket | |
1165 LPFN_WSASOCKET | |
1166 WSAAddressToString | |
1167 LPFN_WSAADDRESSTOSTRING | |
1168 WSAStringToAddress | |
1169 LPFN_WSASTRINGTOADDRESS | |
1170 WSALookupServiceBegin | |
1171 LPFN_WSALOOKUPSERVICEBEGIN | |
1172 WSALookupServiceNext | |
1173 LPFN_WSALOOKUPSERVICENEXT | |
1174 WSAInstallServiceClass | |
1175 LPFN_WSAINSTALLSERVICECLASS | |
1176 WSAGetServiceClassInfo | |
1177 LPFN_WSAGETSERVICECLASSINFO | |
1178 WSAEnumNameSpaceProviders | |
1179 LPFN_WSAENUMNAMESPACEPROVIDERS | |
1180 WSAGetServiceClassNameByClassId | |
1181 LPFN_WSAGETSERVICECLASSNAMEBYCLASSID | |
1182 WSASetService | |
1183 LPFN_WSASETSERVICE | |
1184 | |
1185 file WINCRYPT.H | |
1186 | |
1187 MS_DEF_PROV_ | |
1188 MS_ENHANCED_PROV_ | |
1189 MS_DEF_RSA_SIG_PROV_ | |
1190 MS_DEF_RSA_SCHANNEL_PROV_ | |
1191 MS_ENHANCED_RSA_SCHANNEL_PROV_ | |
1192 MS_DEF_DSS_PROV_ | |
1193 MS_DEF_DSS_DH_PROV_ | |
1194 CryptAcquireContext | |
1195 CryptSignHash | |
1196 CryptVerifySignature | |
1197 CryptSetProvider | |
1198 CryptSetProviderEx | |
1199 CryptGetDefaultProvider | |
1200 CryptEnumProviderTypes | |
1201 CryptEnumProviders | |
1202 CERT_STORE_PROV_FILENAME_ | |
1203 CERT_STORE_PROV_SYSTEM_ | |
1204 sz_CERT_STORE_PROV_FILENAME_ | |
1205 sz_CERT_STORE_PROV_SYSTEM_ | |
1206 CERT_STORE_SAVE_TO_FILENAME_ | |
1207 CERT_FIND_SUBJECT_STR_ | |
1208 CERT_FIND_ISSUER_STR_ | |
1209 CertRDNValueToStr | |
1210 CertNameToStr | |
1211 CertStrToName | |
1212 CertOpenSystemStore | |
1213 CertAddEncodedCertificateToSystemStore | |
1214 | |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1215 begin-unicode-encapsulation-script |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1216 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1217 file DBGENG.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1218 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1219 split CreateProcess LPSTARTUPINFO |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1220 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1221 file DEBUGAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1222 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1223 yes OutputDebugString |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1224 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1225 file FILEAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1226 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1227 yes CreateDirectory |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1228 yes CreateFile |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1229 yes DefineDosDevice |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1230 yes DeleteFile |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1231 yes FindFirstChangeNotification |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1232 yes GetDiskFreeSpace |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1233 yes GetDiskFreeSpaceEx |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1234 yes GetDriveType |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1235 yes GetFileAttributes |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1236 yes GetFileAttributesEx |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1237 yes GetFullPathName |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1238 yes GetLogicalDriveStrings |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1239 yes GetShortPathName |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1240 yes GetTempFileName |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1241 yes GetTempPath |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1242 yes GetVolumeInformation |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1243 yes QueryDosDevice |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1244 yes RemoveDirectory |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1245 yes SetFileAttributes |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1246 review DeleteVolumeMountPoint HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1247 review FindFirstFile HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1248 review FindFirstVolume HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1249 review FindNextVolume HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1250 review GetLongPathName HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1251 review GetVolumePathName HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1252 review GetVolumeNameForVolumeMountPoint HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1253 review GetVolumePathNamesForVolumeName HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1254 review GetFinalPathNameByHandle HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1255 review GetVolumeInformationByHandle HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1256 review FindFirstFileEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1257 review FindNextFile HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1258 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1259 file LIBLOADERAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1260 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1261 yes FindResourceEx |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1262 yes GetModuleFileName |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1263 yes GetModuleHandle |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1264 yes LoadLibraryEx |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1265 yes LoadString |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1266 review GetModuleHandleEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1267 review EnumResourceLanguages HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1268 review EnumResourceLanguagesEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1269 review EnumResourceNamesEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1270 review EnumResourceTypesEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1271 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1272 file MEMORYAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1273 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1274 yes CreateFileMapping |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1275 yes OpenFileMapping |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1276 review CreateFileMappingNuma HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1277 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1278 file NAMEDPIPEAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1279 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1280 yes CreateNamedPipe |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1281 yes WaitNamedPipe |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1282 review GetNamedPipeClientComputerName HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1283 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1284 file PROCESSENV.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1285 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1286 yes ExpandEnvironmentStrings |
5921
68639fb08af8
no obvious 64 vs. 32 pblms in compilation, but still crashing in event-msw
Henry Thompson <ht@markup.co.uk>
parents:
5920
diff
changeset
|
1287 review FreeEnvironmentStrings HST: needs fancy split, never used |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1288 yes GetCommandLine |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1289 yes GetCurrentDirectory |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1290 yes GetEnvironmentVariable |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1291 yes SearchPath |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1292 yes SetCurrentDirectory |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1293 yes SetEnvironmentVariable |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1294 review GetEnvironmentStrings HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1295 review SetEnvironmentStrings HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1296 review NeedCurrentDirectoryForExePath HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1297 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1298 file PROCESSTHREADSAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1299 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1300 split CreateProcessAsUser LPSTARTUPINFO |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1301 split GetStartupInfo LPSTARTUPINFO |
5928 | 1302 split CreateProcess LPSTARTUPINFO |
5920
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1303 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1304 file SECURITYBASEAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1305 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1306 yes AccessCheckAndAuditAlarm |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1307 yes GetFileSecurity |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1308 yes ObjectCloseAuditAlarm |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1309 yes ObjectDeleteAuditAlarm |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1310 yes ObjectOpenAuditAlarm |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1311 yes ObjectPrivilegeAuditAlarm |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1312 yes PrivilegedServiceAuditAlarm |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1313 yes SetFileSecurity |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1314 review AccessCheckByTypeAndAuditAlarm HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1315 review AccessCheckByTypeResultListAndAuditAlarm HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1316 review AccessCheckByTypeResultListAndAuditAlarmByHandle HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1317 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1318 file SYNCHAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1319 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1320 yes CreateEvent |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1321 yes CreateMutex |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1322 yes OpenEvent |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1323 yes OpenMutex |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1324 yes OpenSemaphore |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1325 yes OpenWaitableTimer |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1326 review SleepConditionVariableSR HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1327 review CreateMutexEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1328 review CreateEventEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1329 review CreateSemaphoreEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1330 review CreateWaitableTimerEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1331 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1332 file SYSINFOAPI.H |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1333 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1334 yes GetSystemDirectory |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1335 yes GetWindowsDirectory |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1336 review GetSystemWindowsDirectory HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1337 review GetComputerNameEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1338 review SetComputerNameEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1339 review GetVersionEx HST: new? -- needs review |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1340 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1341 end-unicode-encapsulation-script |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1342 |
0f2338afbabf
Minimum necessary to get started:
Henry Thompson <ht@markup.co.uk>
parents:
5402
diff
changeset
|
1343 |
771 | 1344 */ |
1345 | |
1346 /* the functions below are examples of hand-written Unicode-splitting | |
1347 code. note that it needs to be written very carefully and with | |
1348 intimate knowledge of the structures involved, and can sometimes be | |
1349 very hairy (EnumFontFamiliesEx is the most extreme example). it can | |
1350 be argued with some justification that this behind-the-scenes magic | |
1351 is confusing and potentially dangerous, and shouldn't be done. but | |
1352 making the calling code deal with the results in extremely hard-to- | |
1353 read code and is very error-prone. */ | |
1354 | |
1355 | |
1356 /************************************************************************/ | |
1357 /* would be encapsulatable but for parsing problems */ | |
1358 /************************************************************************/ | |
1359 | |
1360 /* NOTE: return value is conditionalized on _MAC, messes up parser */ | |
1361 LRESULT | |
1362 qxeDefWindowProc (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) | |
1363 { | |
1364 if (XEUNICODE_P) | |
1365 return DefWindowProcW (hWnd, Msg, wParam, lParam); | |
1366 else | |
1367 return DefWindowProcA (hWnd, Msg, wParam, lParam); | |
1368 } | |
1369 | |
1370 | |
1371 /* NOTE: two versions, STRICT and non-STRICT */ | |
1372 LRESULT | |
1373 qxeCallWindowProc (WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) | |
1374 { | |
1375 if (XEUNICODE_P) | |
1376 return CallWindowProcW (lpPrevWndFunc, hWnd, Msg, wParam, lParam); | |
1377 else | |
1378 return CallWindowProcA (lpPrevWndFunc, hWnd, Msg, wParam, lParam); | |
1379 } | |
1380 | |
1381 /* NOTE: return value is conditionalized on _MAC, messes up parser */ | |
1382 LRESULT | |
1383 qxeDefDlgProc (HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) | |
1384 { | |
1385 if (XEUNICODE_P) | |
1386 return DefDlgProcW (hDlg, Msg, wParam, lParam); | |
1387 else | |
1388 return DefDlgProcA (hDlg, Msg, wParam, lParam); | |
1389 } | |
1390 | |
1391 /* NOTE: return value is conditionalized on _MAC, messes up parser */ | |
1392 LRESULT | |
1393 qxeDefMDIChildProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | |
1394 { | |
1395 if (XEUNICODE_P) | |
1396 return DefMDIChildProcW (hWnd, uMsg, wParam, lParam); | |
1397 else | |
1398 return DefMDIChildProcA (hWnd, uMsg, wParam, lParam); | |
1399 } | |
1400 | |
800 | 1401 /* This one has two entry points called GetEnvironmentStringsW and |
1402 GetEnvironmentStrings. (misnamed A version) */ | |
1403 Extbyte * | |
1404 qxeGetEnvironmentStrings (void) | |
1405 { | |
1406 if (XEUNICODE_P) | |
1407 return (Extbyte *) GetEnvironmentStringsW (); | |
1408 else | |
1409 return (Extbyte *) GetEnvironmentStrings (); | |
1410 } | |
1411 | |
771 | 1412 |
1413 /************************************************************************/ | |
1414 /* would be encapsulatable but for Cygwin problems */ | |
1415 /************************************************************************/ | |
1416 | |
4873
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
1417 #ifdef HAVE_MS_WINDOWS |
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
1418 |
771 | 1419 /* NOTE: NT 4.0+ only */ |
1420 BOOL | |
1421 qxeUpdateICMRegKey (DWORD arg1, Extbyte * arg2, Extbyte * arg3, UINT arg4) | |
1422 { | |
4837
493e2aa349fd
imported patch cygwin-headers-cosmetic-1-11-10
Ben Wing <ben@xemacs.org>
parents:
4824
diff
changeset
|
1423 #ifdef CYGWIN_HEADERS |
771 | 1424 /* Cygwin mistakenly declares the second argument as DWORD. */ |
1425 if (XEUNICODE_P) | |
1426 return UpdateICMRegKeyW (arg1, (DWORD) arg2, (LPWSTR) arg3, arg4); | |
1427 else | |
1428 return UpdateICMRegKeyA (arg1, (DWORD) arg2, (LPSTR) arg3, arg4); | |
1429 #else | |
1430 if (XEUNICODE_P) | |
1431 return UpdateICMRegKeyW (arg1, (LPWSTR) arg2, (LPWSTR) arg3, arg4); | |
1432 else | |
1433 return UpdateICMRegKeyA (arg1, (LPSTR) arg2, (LPSTR) arg3, arg4); | |
1434 #endif /* CYGWIN_HEADERS */ | |
1435 } | |
1436 | |
4873
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
1437 #endif /* HAVE_MS_WINDOWS */ |
50861fea97f6
regenerate intl-auto-encap-win32.c, now possible from Cygwin /usr/include/w32api headers
Ben Wing <ben@xemacs.org>
parents:
4837
diff
changeset
|
1438 |
771 | 1439 #ifndef CYGWIN /* present in headers but missing in shell32.a */ |
1440 | |
1441 BOOL | |
1442 qxeSHGetSpecialFolderPath (HWND hwndOwner, Extbyte * lpszPath, int nFolder, BOOL fCreate) | |
1443 { | |
1444 #ifdef CYGWIN_HEADERS | |
1445 /* Cygwin mistakenly declares the second argument as LPSTR in both | |
1446 versions. */ | |
1447 if (XEUNICODE_P) | |
1448 return SHGetSpecialFolderPathW (hwndOwner, (LPSTR) lpszPath, nFolder, fCreate); | |
1449 else | |
1450 return SHGetSpecialFolderPathA (hwndOwner, (LPSTR) lpszPath, nFolder, fCreate); | |
1451 #else | |
1452 if (XEUNICODE_P) | |
1453 return SHGetSpecialFolderPathW (hwndOwner, (LPWSTR) lpszPath, nFolder, fCreate); | |
1454 else | |
1455 return SHGetSpecialFolderPathA (hwndOwner, (LPSTR) lpszPath, nFolder, fCreate); | |
1456 #endif | |
1457 } | |
1458 | |
1459 #endif /* not CYGWIN */ | |
1460 | |
2500 | 1461 /********************************************************************************/ |
1462 /* would be encapsulatable but for header changes in different versions of VC++ */ | |
1463 /********************************************************************************/ | |
1464 | |
1465 #if MSC_VERSION >= 1300 | |
1466 | |
1467 BOOL | |
1468 qxeEnumResourceTypes (HMODULE hModule, ENUMRESTYPEPROCW lpEnumFunc, LONG lParam) | |
1469 { | |
1470 if (XEUNICODE_P) | |
1471 return EnumResourceTypesW (hModule, lpEnumFunc, lParam); | |
1472 else | |
1473 return EnumResourceTypesA (hModule, (ENUMRESTYPEPROCA) lpEnumFunc, lParam); | |
1474 } | |
1475 | |
1476 BOOL | |
1477 qxeEnumResourceNames (HMODULE hModule, const Extbyte * lpType, ENUMRESNAMEPROCW lpEnumFunc, LONG lParam) | |
1478 { | |
1479 if (XEUNICODE_P) | |
1480 return EnumResourceNamesW (hModule, (LPCWSTR) lpType, lpEnumFunc, lParam); | |
1481 else | |
1482 return EnumResourceNamesA (hModule, (LPCSTR) lpType, (ENUMRESNAMEPROCA) lpEnumFunc, lParam); | |
1483 } | |
1484 | |
1485 BOOL | |
1486 qxeEnumResourceLanguages (HMODULE hModule, const Extbyte * lpType, const Extbyte * lpName, ENUMRESLANGPROCW lpEnumFunc, LONG lParam) | |
1487 { | |
1488 if (XEUNICODE_P) | |
1489 return EnumResourceLanguagesW (hModule, (LPCWSTR) lpType, (LPCWSTR) lpName, lpEnumFunc, lParam); | |
1490 else | |
1491 return EnumResourceLanguagesA (hModule, (LPCSTR) lpType, (LPCSTR) lpName, (ENUMRESLANGPROCA) lpEnumFunc, lParam); | |
1492 } | |
1493 | |
1494 #else | |
1495 | |
1496 BOOL | |
1497 qxeEnumResourceTypes (HMODULE hModule, ENUMRESTYPEPROC lpEnumFunc, LONG lParam) | |
1498 { | |
1499 if (XEUNICODE_P) | |
1500 return EnumResourceTypesW (hModule, lpEnumFunc, lParam); | |
1501 else | |
1502 return EnumResourceTypesA (hModule, lpEnumFunc, lParam); | |
1503 } | |
1504 | |
1505 BOOL | |
1506 qxeEnumResourceNames (HMODULE hModule, const Extbyte * lpType, ENUMRESNAMEPROC lpEnumFunc, LONG lParam) | |
1507 { | |
1508 if (XEUNICODE_P) | |
1509 return EnumResourceNamesW (hModule, (LPCWSTR) lpType, lpEnumFunc, lParam); | |
1510 else | |
1511 return EnumResourceNamesA (hModule, (LPCSTR) lpType, lpEnumFunc, lParam); | |
1512 } | |
1513 | |
1514 BOOL | |
1515 qxeEnumResourceLanguages (HMODULE hModule, const Extbyte * lpType, const Extbyte * lpName, ENUMRESLANGPROC lpEnumFunc, LONG lParam) | |
1516 { | |
1517 if (XEUNICODE_P) | |
1518 return EnumResourceLanguagesW (hModule, (LPCWSTR) lpType, (LPCWSTR) lpName, lpEnumFunc, lParam); | |
1519 else | |
1520 return EnumResourceLanguagesA (hModule, (LPCSTR) lpType, (LPCSTR) lpName, lpEnumFunc, lParam); | |
1521 } | |
1522 | |
1523 #endif /* MSC_VERSION >= 1300 */ | |
771 | 1524 |
1525 /************************************************************************/ | |
1526 /* files */ | |
1527 /************************************************************************/ | |
1528 | |
1529 static void | |
1530 copy_win32_find_dataa_to_win32_find_dataw (const WIN32_FIND_DATAA *pa, | |
1531 WIN32_FIND_DATAW *pw) | |
1532 { | |
1533 /* the layout of WIN32_FIND_DATA is | |
1534 | |
1535 non-split fields; | |
1536 TCHAR cFileName[...]; | |
1537 TCHAR cAlternateFileName[...]; | |
1538 */ | |
1539 | |
1540 xzero (*pw); | |
1541 memcpy (pw, pa, offsetof (WIN32_FIND_DATAA, cFileName)); | |
1542 memcpy (pw->cFileName, pa->cFileName, sizeof (pa->cFileName)); | |
1543 memcpy (pw->cAlternateFileName, pa->cAlternateFileName, | |
1544 sizeof (pa->cAlternateFileName)); | |
1545 } | |
1546 | |
1547 HANDLE | |
1548 qxeFindFirstFile (const Extbyte *lpFileName, | |
1549 WIN32_FIND_DATAW *lpFindFileData) | |
1550 { | |
1551 if (XEUNICODE_P) | |
1552 return FindFirstFileW ((LPCWSTR) lpFileName, lpFindFileData); | |
1553 else | |
1554 { | |
1555 WIN32_FIND_DATAA ansidat; | |
1556 HANDLE retval; | |
1557 | |
1558 retval = FindFirstFileA ((LPCSTR) lpFileName, &ansidat); | |
1559 if (retval != INVALID_HANDLE_VALUE) | |
1560 copy_win32_find_dataa_to_win32_find_dataw (&ansidat, lpFindFileData); | |
1561 return retval; | |
1562 } | |
1563 } | |
1564 | |
1565 BOOL | |
1566 qxeFindNextFile (HANDLE hFindFile, WIN32_FIND_DATAW *lpFindFileData) | |
1567 { | |
1568 if (XEUNICODE_P) | |
1569 return FindNextFileW (hFindFile, lpFindFileData); | |
1570 else | |
1571 { | |
1572 WIN32_FIND_DATAA ansidat; | |
1573 BOOL retval; | |
1574 | |
1575 retval = FindNextFileA (hFindFile, &ansidat); | |
1576 if (retval) | |
1577 copy_win32_find_dataa_to_win32_find_dataw (&ansidat, lpFindFileData); | |
1578 return retval; | |
1579 } | |
1580 } | |
1581 | |
1582 | |
1583 /************************************************************************/ | |
1584 /* shell */ | |
1585 /************************************************************************/ | |
1586 | |
1587 static void | |
1588 copy_shfileinfoa_to_shfileinfow (const SHFILEINFOA *pa, | |
778 | 1589 SHFILEINFOW *pw, UINT sz) |
771 | 1590 { |
1591 /* the layout of SHFILEINFO is | |
1592 | |
1593 non-split fields; | |
1594 TCHAR szDisplayName[...]; | |
1595 TCHAR szTypeName[...]; | |
1596 */ | |
1597 | |
778 | 1598 assert (sz >= sizeof (SHFILEINFOW)); |
771 | 1599 xzero (*pw); |
1600 memcpy (pw, pa, offsetof (SHFILEINFOA, szDisplayName)); | |
1601 memcpy (pw->szDisplayName, pa->szDisplayName, sizeof (pa->szDisplayName)); | |
1602 memcpy (pw->szTypeName, pa->szTypeName, sizeof (pa->szTypeName)); | |
1603 } | |
1604 | |
1605 DWORD | |
1606 qxeSHGetFileInfo (const Extbyte *pszPath, DWORD dwFileAttributes, | |
1607 SHFILEINFOW *psfi, UINT cbFileInfo, UINT uFlags) | |
1608 { | |
1609 if (XEUNICODE_P) | |
1610 return SHGetFileInfoW ((LPCWSTR) pszPath, dwFileAttributes, | |
1611 psfi, cbFileInfo, uFlags); | |
1612 else | |
1613 { | |
1614 SHFILEINFOA ansidat; | |
1615 BOOL retval; | |
1616 | |
1617 retval = SHGetFileInfoA ((LPCSTR) pszPath, dwFileAttributes, | |
778 | 1618 (SHFILEINFOA FAR *) &ansidat, |
1619 cbFileInfo ? sizeof (ansidat) : 0, uFlags); | |
1620 if (retval && cbFileInfo) | |
1621 copy_shfileinfoa_to_shfileinfow (&ansidat, psfi, cbFileInfo); | |
771 | 1622 return retval; |
1623 } | |
1624 } | |
1625 | |
1626 struct intercepted_SHBrowseForFolder | |
1627 { | |
1628 BFFCALLBACK lpfn; | |
1629 LPARAM lParam; | |
1630 HWND hwnd; | |
1631 struct intercepted_SHBrowseForFolder *next; | |
1632 }; | |
1633 | |
1634 static struct intercepted_SHBrowseForFolder *SHBrowseForFolder_list; | |
1635 | |
1636 static int | |
1637 CALLBACK intercepted_SHBrowseForFolder_proc (HWND hwnd, UINT msg, | |
1638 LPARAM lParam, LPARAM lpData) | |
1639 { | |
1640 struct intercepted_SHBrowseForFolder *s = | |
1641 (struct intercepted_SHBrowseForFolder *) lpData; | |
1642 | |
1643 if (s->hwnd == 0) | |
1644 s->hwnd = hwnd; | |
1645 if (s->lpfn) | |
1646 { | |
1647 /* see below */ | |
1648 if (XEUNICODE_P && msg == BFFM_VALIDATEFAILEDW) | |
1649 msg = BFFM_VALIDATEFAILEDA; | |
1650 else if (!XEUNICODE_P && msg == BFFM_VALIDATEFAILEDA) | |
1651 msg = BFFM_VALIDATEFAILEDW; | |
1652 return (s->lpfn) (hwnd, msg, lParam, s->lParam); | |
1653 } | |
1654 else | |
1655 return 0; | |
1656 } | |
1657 | |
1204 | 1658 #ifdef HAVE_MS_WINDOWS |
1659 | |
771 | 1660 static int |
1661 is_SHBrowseForFolder (HWND hwnd) | |
1662 { | |
1663 struct intercepted_SHBrowseForFolder *s; | |
1664 | |
1665 for (s = SHBrowseForFolder_list; s; s = s->next) | |
1666 if (s->hwnd == hwnd) | |
1667 return 1; | |
1668 return 0; | |
1669 } | |
1670 | |
1204 | 1671 #endif /* HAVE_MS_WINDOWS */ |
1672 | |
771 | 1673 LPITEMIDLIST |
1674 qxeSHBrowseForFolder (LPBROWSEINFOW lpbi) | |
1675 { | |
1676 struct intercepted_SHBrowseForFolder s; | |
1677 LPITEMIDLIST retval; | |
1678 | |
1679 /* There are two outgoing Unicode-split messages: | |
1680 | |
1681 BFFM_SETSELECTION | |
1682 BFFM_SETSTATUSTEXT | |
1683 | |
1684 and one incoming: | |
1685 | |
1686 BFFM_VALIDATEFAILED | |
1687 | |
1688 To handle this, we need to intercept the callback. We handle the | |
1689 incoming message in the callback, and record the window; when | |
1690 qxeSendMessage() is called, we handle the outgoing messages. None of | |
1691 the messages have split-sized structures so we don't need to do | |
1692 anything complicated there. */ | |
1693 | |
1694 s.lParam = lpbi->lParam; | |
1695 s.lpfn = lpbi->lpfn; | |
1696 s.next = SHBrowseForFolder_list; | |
1697 s.hwnd = 0; | |
1698 SHBrowseForFolder_list = &s; | |
1699 | |
1700 lpbi->lpfn = intercepted_SHBrowseForFolder_proc; | |
1701 lpbi->lParam = (LPARAM) &s; | |
1702 | |
1703 if (XEUNICODE_P) | |
1704 retval = SHBrowseForFolderW (lpbi); | |
1705 else | |
1706 retval = SHBrowseForFolderA ((LPBROWSEINFOA) lpbi); | |
1707 SHBrowseForFolder_list = SHBrowseForFolder_list->next; | |
1708 return retval; | |
1709 } | |
1710 | |
1711 VOID | |
1712 qxeSHAddToRecentDocs (UINT uFlags, LPCVOID pv) | |
1713 { | |
1714 /* pv can be a string pointer; this is handled by Unicode-splitting the | |
1715 flag SHARD_PATH rather than the function itself. Fix up the flag to | |
1716 be correct. We write it symmetrically so it doesn't matter whether | |
1717 UNICODE is defined. */ | |
1718 if (XEUNICODE_P) | |
1719 { | |
1720 if (uFlags & SHARD_PATHA) | |
1721 { | |
1722 uFlags |= SHARD_PATHW; | |
1723 uFlags &= ~SHARD_PATHA; | |
1724 } | |
1725 } | |
1726 else | |
1727 { | |
1728 if (uFlags & SHARD_PATHW) | |
1729 { | |
1730 uFlags |= SHARD_PATHA; | |
1731 uFlags &= ~SHARD_PATHW; | |
1732 } | |
1733 } | |
1734 SHAddToRecentDocs (uFlags, pv); | |
1735 } | |
1736 | |
1737 VOID | |
1738 qxeSHChangeNotify (LONG wEventId, UINT uFlags, LPCVOID dwItem1, | |
1739 LPCVOID dwItem2) | |
1740 { | |
1741 /* works like SHAddToRecentDocs */ | |
1742 if (XEUNICODE_P) | |
1743 { | |
1744 if (uFlags & SHCNF_PATHA) | |
1745 { | |
1746 uFlags |= SHCNF_PATHW; | |
1747 uFlags &= ~SHCNF_PATHA; | |
1748 } | |
1749 if (uFlags & SHCNF_PRINTERA) | |
1750 { | |
1751 uFlags |= SHCNF_PRINTERW; | |
1752 uFlags &= ~SHCNF_PRINTERA; | |
1753 } | |
1754 } | |
1755 else | |
1756 { | |
1757 if (uFlags & SHCNF_PATHW) | |
1758 { | |
1759 uFlags |= SHCNF_PATHA; | |
1760 uFlags &= ~SHCNF_PATHW; | |
1761 } | |
1762 if (uFlags & SHCNF_PRINTERW) | |
1763 { | |
1764 uFlags |= SHCNF_PRINTERA; | |
1765 uFlags &= ~SHCNF_PRINTERW; | |
1766 } | |
1767 } | |
1768 SHChangeNotify (wEventId, uFlags, dwItem1, dwItem2); | |
1769 } | |
1770 | |
1771 #ifndef CYGWIN /* present in headers but missing in shell32.a */ | |
1772 | |
1773 HRESULT | |
1774 qxeSHGetDataFromIDList (IShellFolder *psf, LPCITEMIDLIST pidl, int nFormat, | |
1775 PVOID pv, int cb) | |
1776 { | |
1777 if (XEUNICODE_P) | |
1778 return SHGetDataFromIDListW (psf, pidl, nFormat, pv, cb); | |
1779 else if (nFormat == SHGDFIL_FINDDATA) | |
1780 { | |
1781 WIN32_FIND_DATAA ansidat; | |
1782 BOOL retval; | |
1783 | |
1784 retval = SHGetDataFromIDListA (psf, pidl, nFormat, &ansidat, cb); | |
1785 if (retval == NOERROR) | |
1204 | 1786 copy_win32_find_dataa_to_win32_find_dataw (&ansidat, |
1787 (WIN32_FIND_DATAW *) pv); | |
771 | 1788 return retval; |
1789 } | |
1790 else | |
1791 /* nFormat == SHGDFIL_NETRESOURCE, and pv is split-simple NETRESOURCE | |
1792 structure, but we don't need to worry about that currently since we | |
1793 don't translate strings */ | |
1794 return SHGetDataFromIDListA (psf, pidl, nFormat, pv, cb); | |
1795 } | |
1796 | |
1797 #endif /* not CYGWIN */ | |
1798 | |
1799 | |
1800 | |
1801 #ifdef HAVE_MS_WINDOWS | |
1802 | |
1803 /************************************************************************/ | |
1804 /* devmode */ | |
1805 /************************************************************************/ | |
1806 | |
1807 /* These functions return globally allocated blocks because some | |
1808 callers (e.g. qxePrintDlg) want this. */ | |
1809 | |
1810 static HGLOBAL | |
1811 copy_devmodew_to_devmodea (const DEVMODEW *src, DEVMODEA *dst) | |
1812 { | |
1813 /* the layout of DEVMODE is | |
1814 | |
1815 TCHAR dmDeviceName[...]; | |
1816 non-split fields, including dmSize (size of structure; differs between | |
1817 Unicode and ANSI) and dmDriverExtra; | |
1818 TCHAR dmFormName[...]; | |
1819 non-split fields; | |
1820 extra data, of size DEVMODE->dmDriverExtra | |
1821 */ | |
1822 HGLOBAL hdst = NULL; | |
1823 | |
1824 if (!dst) | |
1825 { | |
1826 hdst = GlobalAlloc (GHND, src->dmSize + src->dmDriverExtra - | |
1827 (sizeof (DEVMODEW) - sizeof (DEVMODEA))); | |
1828 dst = (DEVMODEA *) GlobalLock (hdst); | |
1829 } | |
1830 | |
1831 memcpy (dst->dmDeviceName, src->dmDeviceName, sizeof (dst->dmDeviceName)); | |
1832 memcpy ((char *) dst + sizeof (dst->dmDeviceName), | |
1833 (char *) src + sizeof (src->dmDeviceName), | |
1834 offsetof (DEVMODEA, dmFormName) - sizeof (dst->dmDeviceName)); | |
1835 dst->dmSize -= sizeof (DEVMODEW) - sizeof (DEVMODEA); | |
1836 memcpy (dst->dmFormName, src->dmFormName, sizeof (dst->dmFormName)); | |
1837 memcpy ((char *) dst + offsetof (DEVMODEA, dmFormName) + | |
1838 sizeof (dst->dmFormName), | |
1839 (char *) src + offsetof (DEVMODEW, dmFormName) + | |
1840 sizeof (src->dmFormName), | |
1841 dst->dmSize + dst->dmDriverExtra - | |
1842 (offsetof (DEVMODEA, dmFormName) + sizeof (dst->dmFormName))); | |
1843 | |
1844 if (hdst) | |
1845 GlobalUnlock (hdst); | |
1846 return hdst; | |
1847 } | |
1848 | |
1849 static HGLOBAL | |
1850 copy_devmodea_to_devmodew (const DEVMODEA *src, DEVMODEW *dst) | |
1851 { | |
1852 HGLOBAL hdst = NULL; | |
1853 | |
1854 if (!dst) | |
1855 { | |
1856 hdst = GlobalAlloc (GHND, src->dmSize + src->dmDriverExtra + | |
1857 (sizeof (DEVMODEW) - sizeof (DEVMODEA))); | |
1858 dst = (DEVMODEW *) GlobalLock (hdst); | |
1859 } | |
1860 | |
1861 memcpy (dst->dmDeviceName, src->dmDeviceName, sizeof (src->dmDeviceName)); | |
1862 memcpy ((char *) dst + sizeof (dst->dmDeviceName), | |
1863 (char *) src + sizeof (src->dmDeviceName), | |
1864 offsetof (DEVMODEA, dmFormName) - sizeof (src->dmDeviceName)); | |
1865 dst->dmSize += sizeof (DEVMODEW) - sizeof (DEVMODEA); | |
1866 memcpy (dst->dmFormName, src->dmFormName, sizeof (src->dmFormName)); | |
1867 memcpy ((char *) dst + offsetof (DEVMODEW, dmFormName) + | |
1868 sizeof (dst->dmFormName), | |
1869 (char *) src + offsetof (DEVMODEA, dmFormName) + | |
1870 sizeof (src->dmFormName), | |
1871 src->dmSize + src->dmDriverExtra - | |
1872 (offsetof (DEVMODEA, dmFormName) + sizeof (src->dmFormName))); | |
1873 | |
1874 if (hdst) | |
1875 GlobalUnlock (hdst); | |
1876 return hdst; | |
1877 } | |
1878 | |
1879 HDC | |
1880 qxeCreateDC (const Extbyte *lpszDriver, const Extbyte *lpszDevice, | |
1881 const Extbyte *lpszOutput, CONST DEVMODEW *lpInitData) | |
1882 { | |
1883 if (XEUNICODE_P) | |
1884 return CreateDCW ((LPCWSTR) lpszDriver, (LPCWSTR) lpszDevice, | |
1885 (LPCWSTR) lpszOutput, lpInitData); | |
1886 else | |
1887 { | |
1888 HGLOBAL hInitData = NULL; | |
1889 DEVMODEA *lpInitDataa = NULL; | |
1890 HDC retval; | |
1891 | |
1892 if (lpInitData) | |
1893 { | |
1894 hInitData = copy_devmodew_to_devmodea (lpInitData, NULL); | |
1895 lpInitDataa = (DEVMODEA *) GlobalLock (hInitData); | |
1896 } | |
1897 retval = CreateDCA ((LPCSTR) lpszDriver, (LPCSTR) lpszDevice, | |
1898 (LPCSTR) lpszOutput, lpInitDataa); | |
1899 | |
1900 if (hInitData) | |
1901 { | |
1902 GlobalUnlock (hInitData); | |
1903 GlobalFree (hInitData); | |
1904 } | |
1905 | |
1906 return retval; | |
1907 } | |
1908 } | |
1909 | |
1910 HDC | |
1911 qxeResetDC (HDC hdc, CONST DEVMODEW *lpInitData) | |
1912 { | |
1913 if (XEUNICODE_P) | |
1914 return ResetDCW (hdc, lpInitData); | |
1915 else | |
1916 { | |
1917 HGLOBAL hInitData = NULL; | |
1918 DEVMODEA *lpInitDataa = NULL; | |
1919 HDC retval; | |
1920 | |
1921 if (lpInitData) | |
1922 { | |
1923 hInitData = copy_devmodew_to_devmodea (lpInitData, NULL); | |
1924 lpInitDataa = (DEVMODEA *) GlobalLock (hInitData); | |
1925 } | |
1926 retval = ResetDCA (hdc, lpInitDataa); | |
1927 | |
1928 if (hInitData) | |
1929 { | |
1930 GlobalUnlock (hInitData); | |
1931 GlobalFree (hInitData); | |
1932 } | |
1933 | |
1934 return retval; | |
1935 } | |
1936 } | |
1937 | |
1938 DWORD | |
1939 qxeOpenPrinter (Extbyte *pPrinterName, LPHANDLE phPrinter, | |
1940 LPPRINTER_DEFAULTSW pDefaultconst) | |
1941 { | |
1942 assert (!pDefaultconst); /* we don't split it, so let's make sure we | |
1943 don't try. */ | |
1944 if (XEUNICODE_P) | |
1945 return OpenPrinterW ((LPWSTR) pPrinterName, phPrinter, | |
1946 pDefaultconst); | |
1947 else | |
1948 return OpenPrinterA ((LPSTR) pPrinterName, phPrinter, | |
1949 (LPPRINTER_DEFAULTSA) pDefaultconst); | |
1950 } | |
1951 | |
1952 LONG | |
1953 qxeDocumentProperties (HWND hWnd, HANDLE hPrinter, Extbyte *pDeviceName, | |
1954 DEVMODEW *pDevModeOutput, DEVMODEW *pDevModeInput, | |
1955 DWORD fMode) | |
1956 { | |
1957 if (XEUNICODE_P) | |
2262 | 1958 #if defined (CYGWIN_HEADERS) && W32API_INSTALLED_VER < W32API_VER(3,1) |
1959 /* Cygwin used to mistakenly declare the fourth and fifth arguments as | |
771 | 1960 PDEVMODEA. */ |
1961 return DocumentPropertiesW (hWnd, hPrinter, (LPWSTR) pDeviceName, | |
1962 (DEVMODEA *) pDevModeOutput, | |
1963 (DEVMODEA *) pDevModeInput, fMode); | |
1964 #else | |
1965 return DocumentPropertiesW (hWnd, hPrinter, (LPWSTR) pDeviceName, | |
1966 pDevModeOutput, pDevModeInput, fMode); | |
1967 #endif /* CYGWIN_HEADERS */ | |
1968 else | |
1969 { | |
1970 HGLOBAL hDevModeInput = NULL; | |
1971 DEVMODEA *pDevModeInputa = NULL; | |
1972 LONG retval; | |
1973 | |
1974 if (pDevModeInput) | |
1975 { | |
1976 hDevModeInput = copy_devmodew_to_devmodea (pDevModeInput, NULL); | |
1977 pDevModeInputa = (DEVMODEA *) GlobalLock (hDevModeInput); | |
1978 } | |
1979 | |
1980 /* Here we cheat a bit to avoid a problem: If the output | |
1981 structure is given but not the input one, how do we know how | |
1982 big to allocate our shadow output structure? Since the | |
1983 shadow structure is ANSI and the original Unicode, we know | |
1984 the shadow structure is smaller than what's given, so we just | |
1985 write into the given structure and then fix. */ | |
1986 retval = DocumentPropertiesA (hWnd, hPrinter, (LPSTR) pDeviceName, | |
1987 pDevModeOutput ? | |
1988 (DEVMODEA *) pDevModeOutput : 0, | |
1989 pDevModeInput ? pDevModeInputa : 0, | |
1990 fMode); | |
1991 | |
1992 if (hDevModeInput) | |
1993 { | |
1994 GlobalUnlock (hDevModeInput); | |
1995 GlobalFree (hDevModeInput); | |
1996 } | |
1997 | |
1998 if (retval >= 0 && pDevModeOutput) | |
1999 { | |
2000 /* copy the shadow structure out of the way and then put the | |
2001 right contents back. */ | |
2002 DEVMODEA *shadow = (DEVMODEA *) pDevModeOutput; | |
2003 DEVMODEA *newshadow = alloca_array (DEVMODEA, shadow->dmSize + | |
2004 shadow->dmDriverExtra); | |
2005 | |
2006 memcpy (newshadow, shadow, shadow->dmSize + shadow->dmDriverExtra); | |
2007 copy_devmodea_to_devmodew (newshadow, pDevModeOutput); | |
2008 } | |
2009 | |
2010 if (fMode == 0) | |
2011 retval += (sizeof (DEVMODEW) - sizeof (DEVMODEA)); | |
2012 return retval; | |
2013 } | |
2014 } | |
2015 | |
2016 static BOOL | |
2017 ansi_printer_dialog_1 (void *strucked, HGLOBAL *devmode_inout, int do_PrintDlg) | |
2018 { | |
2019 HGLOBAL hdma = NULL; | |
2020 HGLOBAL hdmw = *devmode_inout; | |
2021 DEVMODEW *dmw = NULL; | |
2022 BOOL retval; | |
2023 | |
2024 if (hdmw != NULL) | |
2025 { | |
2026 /* copy to shadow in structure if needed */ | |
2027 dmw = (DEVMODEW *) GlobalLock (hdmw); | |
2028 hdma = copy_devmodew_to_devmodea (dmw, NULL); | |
2029 *devmode_inout = hdma; | |
2030 } | |
2031 | |
2032 if (do_PrintDlg) | |
2033 retval = PrintDlgA ((PRINTDLGA *) strucked); | |
2034 else | |
2035 retval = PageSetupDlgA ((PAGESETUPDLGA *) strucked); | |
2036 | |
2037 if (retval) | |
2038 { | |
2039 /* copy the shadow output structure back to original, or | |
2040 allocate new one. */ | |
2041 if (*devmode_inout) | |
2042 { | |
2043 DEVMODEA *newdma = (DEVMODEA *) GlobalLock (*devmode_inout); | |
2044 if (dmw) | |
2045 { | |
2046 copy_devmodea_to_devmodew (newdma, dmw); | |
2047 GlobalUnlock (hdmw); | |
2048 } | |
2049 else | |
2050 hdmw = copy_devmodea_to_devmodew (newdma, NULL); | |
2051 GlobalUnlock (*devmode_inout); | |
2052 GlobalFree (*devmode_inout); | |
2053 *devmode_inout = hdmw; | |
2054 } | |
2055 else if (hdma) | |
2056 /* #### can this happen? */ | |
2057 GlobalFree (hdma); | |
2058 } | |
2059 | |
2060 return retval; | |
2061 } | |
2062 | |
2063 BOOL | |
2064 qxePrintDlg (PRINTDLGW *lppd) | |
2065 { | |
2066 if (XEUNICODE_P) | |
2067 return PrintDlgW (lppd); | |
2068 else | |
2069 return ansi_printer_dialog_1 (lppd, &lppd->hDevMode, 1); | |
2070 } | |
2071 | |
2072 BOOL | |
2073 qxePageSetupDlg (PAGESETUPDLGW *lppd) | |
2074 { | |
2075 if (XEUNICODE_P) | |
2076 return PageSetupDlgW (lppd); | |
2077 else | |
2078 return ansi_printer_dialog_1 (lppd, &lppd->hDevMode, 0); | |
2079 } | |
2080 | |
2081 | |
2082 /************************************************************************/ | |
2083 /* fonts */ | |
2084 /************************************************************************/ | |
2085 | |
2086 static void | |
2087 copy_logfonta_to_logfontw (const LOGFONTA *src, LOGFONTW *dst) | |
2088 { | |
2089 /* the layout of LOGFONT is | |
2090 | |
2091 non-split fields; | |
2092 TCHAR lfFaceName[...]; | |
2093 */ | |
2094 memcpy (dst, src, sizeof (LOGFONTA)); | |
2095 } | |
2096 | |
2097 static void | |
2098 copy_logfontw_to_logfonta (const LOGFONTW *src, LOGFONTA *dst) | |
2099 { | |
2100 memcpy (dst, src, sizeof (LOGFONTA)); | |
2101 } | |
2102 | |
872 | 2103 #if 0 /* unused */ |
2104 | |
771 | 2105 static void |
2106 copy_enumlogfonta_to_enumlogfontw (const ENUMLOGFONTA *src, ENUMLOGFONTW *dst) | |
2107 { | |
2108 /* the layout of ENUMLOGFONT is | |
2109 | |
2110 LOGFONT elfLogFont; | |
2111 TCHAR elfFullName[...]; | |
2112 TCHAR elfStyle[...]; | |
2113 */ | |
2114 xzero (*dst); | |
2115 copy_logfonta_to_logfontw (&src->elfLogFont, &dst->elfLogFont); | |
2116 memcpy (dst->elfFullName, src->elfFullName, sizeof (src->elfFullName)); | |
2117 memcpy (dst->elfStyle, src->elfStyle, sizeof (src->elfStyle)); | |
2118 } | |
2119 | |
872 | 2120 #endif /* 0 */ |
2121 | |
771 | 2122 static void |
2123 copy_enumlogfontexa_to_enumlogfontexw (const ENUMLOGFONTEXA *src, | |
2124 ENUMLOGFONTEXW *dst) | |
2125 { | |
2126 /* the layout of ENUMLOGFONT is | |
2127 | |
2128 LOGFONT elfLogFont; | |
2129 TCHAR elfFullName[...]; | |
2130 TCHAR elfStyle[...]; | |
2131 TCHAR elfScript[...]; | |
2132 */ | |
2133 xzero (*dst); | |
2134 copy_logfonta_to_logfontw (&src->elfLogFont, &dst->elfLogFont); | |
2135 memcpy (dst->elfFullName, src->elfFullName, sizeof (src->elfFullName)); | |
2136 memcpy (dst->elfStyle, src->elfStyle, sizeof (src->elfStyle)); | |
2137 memcpy (dst->elfScript, src->elfScript, sizeof (src->elfScript)); | |
2138 } | |
2139 | |
2140 static void | |
2141 copy_newtextmetrica_to_newtextmetricw (const NEWTEXTMETRICA *src, | |
2142 NEWTEXTMETRICW *dst) | |
2143 { | |
2144 /* the layout of NEWTEXTMETRIC is | |
2145 | |
2146 non-split fields; | |
2147 WCHAR/BYTE tmFirstChar; | |
2148 WCHAR/BYTE tmLastChar; | |
2149 WCHAR/BYTE tmDefaultChar; | |
2150 WCHAR/BYTE tmBreakChar; | |
2151 BYTE tmItalic; | |
2152 non-split fields; | |
2153 */ | |
2154 xzero (*dst); | |
2155 memcpy ((char *) dst, (char *) src, | |
2156 offsetof (NEWTEXTMETRICA, tmFirstChar)); | |
2157 memcpy ((char *) dst + offsetof (NEWTEXTMETRICW, tmItalic), | |
2158 (char *) src + offsetof (NEWTEXTMETRICA, tmItalic), | |
2159 sizeof (NEWTEXTMETRICA) - offsetof (NEWTEXTMETRICA, tmItalic)); | |
2160 dst->tmFirstChar = (WCHAR) src->tmFirstChar; | |
2161 dst->tmLastChar = (WCHAR) src->tmLastChar; | |
2162 dst->tmDefaultChar = (WCHAR) src->tmDefaultChar; | |
2163 dst->tmBreakChar = (WCHAR) src->tmBreakChar; | |
2164 } | |
2165 | |
2166 static void | |
2167 copy_newtextmetricexa_to_newtextmetricexw (const NEWTEXTMETRICEXA *src, | |
2168 NEWTEXTMETRICEXW *dst) | |
2169 { | |
2170 /* the layout of NEWTEXTMETRICEX is | |
2171 | |
2172 NEWTEXTMETRICA/W ntmTm; | |
2173 FONTSIGNATURE ntmFontSig; | |
2174 */ | |
2175 copy_newtextmetrica_to_newtextmetricw (&src->ntmTm, &dst->ntmTm); | |
2176 dst->ntmFontSig = src->ntmFontSig; | |
2177 } | |
2178 | |
872 | 2179 #if 0 /* unused */ |
2180 | |
771 | 2181 static void |
2182 copy_textmetricw_to_textmetrica (const TEXTMETRICW *src, | |
2183 TEXTMETRICA *dst) | |
2184 { | |
2185 /* the layout of TEXTMETRIC is like NEWTEXTMETRIC; see above. */ | |
2186 xzero (*dst); | |
2187 memcpy ((char *) dst, (char *) src, | |
2188 offsetof (TEXTMETRICA, tmFirstChar)); | |
2189 memcpy ((char *) dst + offsetof (TEXTMETRICA, tmItalic), | |
2190 (char *) src + offsetof (TEXTMETRICW, tmItalic), | |
2191 sizeof (TEXTMETRICA) - offsetof (TEXTMETRICA, tmItalic)); | |
2192 dst->tmFirstChar = (BYTE) src->tmFirstChar; | |
2193 dst->tmLastChar = (BYTE) src->tmLastChar; | |
2194 dst->tmDefaultChar = (BYTE) src->tmDefaultChar; | |
2195 dst->tmBreakChar = (BYTE) src->tmBreakChar; | |
2196 } | |
2197 | |
872 | 2198 #endif /* 0 */ |
2199 | |
771 | 2200 static void |
2201 copy_textmetrica_to_textmetricw (const TEXTMETRICA *src, | |
2202 TEXTMETRICW *dst) | |
2203 { | |
2204 /* the layout of TEXTMETRIC is like NEWTEXTMETRIC; see above. */ | |
2205 xzero (*dst); | |
2206 memcpy ((char *) dst, (char *) src, | |
2207 offsetof (TEXTMETRICA, tmFirstChar)); | |
2208 memcpy ((char *) dst + offsetof (TEXTMETRICW, tmItalic), | |
2209 (char *) src + offsetof (TEXTMETRICA, tmItalic), | |
2210 sizeof (TEXTMETRICA) - offsetof (TEXTMETRICA, tmItalic)); | |
2211 dst->tmFirstChar = (WCHAR) src->tmFirstChar; | |
2212 dst->tmLastChar = (WCHAR) src->tmLastChar; | |
2213 dst->tmDefaultChar = (WCHAR) src->tmDefaultChar; | |
2214 dst->tmBreakChar = (WCHAR) src->tmBreakChar; | |
2215 } | |
2216 | |
2217 typedef int (CALLBACK *qxeEnumFontFamExProcW) (ENUMLOGFONTEXW *lpelfe, | |
2218 NEWTEXTMETRICEXW *lpntme, | |
2219 DWORD FontType, | |
2220 LPARAM lParam); | |
2221 | |
2222 struct qxeEnumFontFamExProcA_wrapper_t | |
2223 { | |
2224 qxeEnumFontFamExProcW orig_proc; | |
2225 LPARAM orig_lparam; | |
2226 }; | |
2227 | |
2228 static int CALLBACK | |
2229 qxeEnumFontFamExProcA_wrapper (ENUMLOGFONTEXA *lpelfe, | |
2230 NEWTEXTMETRICEXA *lpntme, | |
2231 DWORD fontType, | |
2232 struct qxeEnumFontFamExProcA_wrapper_t | |
2233 *closure) | |
2234 { | |
2235 ENUMLOGFONTEXW lpelfew; | |
2236 NEWTEXTMETRICEXW lpntmew; | |
2237 | |
2238 /* #### if we're on Windows 2000 or above, lpelfe is actually an | |
2239 ENUMLOGFONTEXDV structure, and lpntme is an ENUMTEXTMETRIC structure | |
2240 when TRUETYPE_FONTTYPE. both are split-sized and need their own copy | |
2241 functions. need to handle. */ | |
2242 copy_enumlogfontexa_to_enumlogfontexw (lpelfe, &lpelfew); | |
2243 if (fontType & TRUETYPE_FONTTYPE) | |
2244 copy_newtextmetricexa_to_newtextmetricexw (lpntme, &lpntmew); | |
2245 else | |
2246 { | |
2247 /* see docs of EnumFontFamExProc */ | |
2248 xzero (lpntmew); | |
2249 copy_textmetrica_to_textmetricw ((TEXTMETRICA *) lpntme, | |
2250 (TEXTMETRICW *) &lpntmew); | |
2251 } | |
2252 return (closure->orig_proc) (&lpelfew, &lpntmew, fontType, | |
2253 closure->orig_lparam); | |
2254 } | |
2255 | |
2256 int | |
2257 qxeEnumFontFamiliesEx (HDC hdc, LOGFONTW *lpLogfont, | |
2258 FONTENUMPROCW lpEnumFontFamProc, LPARAM lParam, | |
2259 DWORD dwFlags) | |
2260 { | |
2261 if (XEUNICODE_P) | |
2262 return EnumFontFamiliesExW (hdc, lpLogfont, lpEnumFontFamProc, lParam, | |
2263 dwFlags); | |
2264 else | |
2265 { | |
2266 struct qxeEnumFontFamExProcA_wrapper_t closure; | |
2267 LOGFONTA lfa; | |
2268 | |
2269 closure.orig_proc = (qxeEnumFontFamExProcW) lpEnumFontFamProc; | |
2270 closure.orig_lparam = lParam; | |
2271 copy_logfontw_to_logfonta (lpLogfont, &lfa); | |
2272 return EnumFontFamiliesExA (hdc, &lfa, | |
2273 (FONTENUMPROCA) | |
2274 qxeEnumFontFamExProcA_wrapper, | |
2275 (LPARAM) &closure, dwFlags); | |
2276 } | |
2277 } | |
2278 | |
2279 HFONT | |
2280 qxeCreateFontIndirect (CONST LOGFONTW *lplf) | |
2281 { | |
2282 if (XEUNICODE_P) | |
2283 return CreateFontIndirectW (lplf); | |
2284 else | |
2285 { | |
2286 LOGFONTA lfa; | |
2287 | |
2288 copy_logfontw_to_logfonta (lplf, &lfa); | |
2289 return CreateFontIndirectA (&lfa); | |
2290 } | |
2291 } | |
2292 | |
2293 BOOL | |
2294 qxeImmSetCompositionFont (HIMC imc, LOGFONTW *lplf) | |
2295 { | |
2296 if (XEUNICODE_P) | |
2297 return ImmSetCompositionFontW (imc, lplf); | |
2298 else | |
2299 { | |
2300 LOGFONTA lfa; | |
2301 | |
2302 copy_logfontw_to_logfonta (lplf, &lfa); | |
2303 return ImmSetCompositionFontA (imc, &lfa); | |
2304 } | |
2305 } | |
2306 | |
2307 BOOL | |
2308 qxeImmGetCompositionFont (HIMC imc, LOGFONTW *lplf) | |
2309 { | |
2310 if (XEUNICODE_P) | |
2311 return ImmGetCompositionFontW (imc, lplf); | |
2312 else | |
2313 { | |
2314 LOGFONTA lfa; | |
2315 BOOL retval = ImmGetCompositionFontA (imc, &lfa); | |
2316 | |
2317 if (retval) | |
2318 copy_logfonta_to_logfontw (&lfa, lplf); | |
2319 return retval; | |
2320 } | |
2321 } | |
2500 | 2322 |
2323 #if MSC_VERSION >= 1300 | |
2324 | |
2325 BOOL | |
2326 qxeImmSetCompositionString (HIMC arg1, DWORD dwIndex, LPVOID lpComp, DWORD arg4, LPVOID lpRead, DWORD arg6) | |
2327 { | |
2328 if (XEUNICODE_P) | |
2329 return ImmSetCompositionStringW (arg1, dwIndex, lpComp, arg4, lpRead, arg6); | |
2330 else | |
2331 return ImmSetCompositionStringA (arg1, dwIndex, lpComp, arg4, lpRead, arg6); | |
2332 } | |
2333 | |
2334 #else | |
2335 | |
2336 BOOL | |
2337 qxeImmSetCompositionString (HIMC arg1, DWORD dwIndex, LPCVOID lpComp, DWORD arg4, LPCVOID lpRead, DWORD arg6) | |
2338 { | |
2339 if (XEUNICODE_P) | |
2340 return ImmSetCompositionStringW (arg1, dwIndex, lpComp, arg4, lpRead, arg6); | |
2341 else | |
2342 return ImmSetCompositionStringA (arg1, dwIndex, lpComp, arg4, lpRead, arg6); | |
2343 } | |
2344 | |
2345 #endif /* MSC_VERSION >= 1300 */ | |
2346 | |
771 | 2347 int |
2348 qxeGetObject (HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject) | |
2349 { | |
2350 if (XEUNICODE_P) | |
2351 return GetObjectW (hgdiobj, cbBuffer, lpvObject); | |
2352 else | |
2353 { | |
2354 if (cbBuffer == sizeof (LOGFONTW)) | |
2355 { | |
2356 LOGFONTA lfa; | |
2357 int retval = GetObjectA (hgdiobj, sizeof (LOGFONTA), &lfa); | |
2358 | |
2359 if (!retval) | |
2360 return retval; | |
2361 copy_logfonta_to_logfontw (&lfa, (LOGFONTW *) lpvObject); | |
2362 return retval; | |
2363 } | |
2364 else | |
2365 return GetObjectA (hgdiobj, cbBuffer, lpvObject); | |
2366 } | |
2367 } | |
2368 | |
2369 BOOL | |
2370 qxeGetTextMetrics (HDC hdc, LPTEXTMETRICW lptm) | |
2371 { | |
2372 if (XEUNICODE_P) | |
2373 return GetTextMetricsW (hdc, lptm); | |
2374 else | |
2375 { | |
2376 TEXTMETRICA tma; | |
2377 BOOL retval = GetTextMetricsA (hdc, &tma); | |
2378 | |
2379 if (retval) | |
2380 copy_textmetrica_to_textmetricw (&tma, lptm); | |
2381 return retval; | |
2382 } | |
2383 } | |
2384 | |
2385 | |
2386 /************************************************************************/ | |
2387 /* windows */ | |
2388 /************************************************************************/ | |
2389 | |
2390 typedef struct Intercepted_wnd_proc | |
2391 { | |
2392 WNDPROC proc; | |
2393 Extbyte *name; | |
2394 int is_ansi; | |
2395 } Intercepted_wnd_proc; | |
2396 | |
2397 typedef struct | |
2398 { | |
2399 Dynarr_declare (Intercepted_wnd_proc); | |
2400 } Intercepted_wnd_proc_dynarr; | |
2401 | |
2402 static Intercepted_wnd_proc_dynarr *intercepted_wnd_procs; | |
2403 | |
2404 static Intercepted_wnd_proc * | |
2405 find_window_class (const Extbyte *name, int is_ansi) | |
2406 { | |
2407 int i; | |
2408 | |
2409 if (!intercepted_wnd_procs) | |
2410 intercepted_wnd_procs = Dynarr_new (Intercepted_wnd_proc); | |
2411 | |
2412 for (i = 0; i < Dynarr_length (intercepted_wnd_procs); i++) | |
2413 { | |
2414 Intercepted_wnd_proc *s = Dynarr_atp (intercepted_wnd_procs, i); | |
2415 | |
2416 if (s->is_ansi == is_ansi && (is_ansi ? !strcmp (s->name, name) : | |
2417 !wcscmp ((wchar_t *) s->name, | |
2418 (wchar_t *) name))) | |
2419 return s; | |
2420 } | |
2421 | |
2422 return 0; | |
2423 } | |
2424 | |
2425 /* #### | |
2426 | |
2427 check problem with cutting and pasting in my current mule -- if i cut, | |
2428 then go to another application, then switch back to this one and | |
2429 paste, it seems to get confused -- loses the size or something? | |
2430 | |
2431 other things: split flags on CreateProcess and DDE stuff should be | |
2432 handled by us. | |
2433 */ | |
2434 | |
2435 static LRESULT WINAPI | |
2436 intercepted_wnd_proc (HWND hwnd, UINT message_, WPARAM wParam, LPARAM lParam) | |
2437 { | |
2438 Intercepted_wnd_proc *s; | |
2439 int is_ansi = XEUNICODE_P ? !IsWindowUnicode (hwnd) : 1; | |
2440 Extbyte *classname; | |
2441 int size = 100; | |
2442 | |
2443 /* Just in case XEUNICODE_P changes during the execution of the program | |
2444 (admittedly, unlikely), check whether the window is Unicode and keep | |
2445 track of this in the list of classes. */ | |
2446 while (1) | |
2447 { | |
2448 classname = alloca_extbytes (size * XETCHAR_SIZE); | |
2449 if ((is_ansi ? GetClassNameA (hwnd, (LPSTR) classname, size) : | |
2450 GetClassNameW (hwnd, (LPWSTR) classname, size)) < size - 1) | |
2451 break; | |
2452 size *= 2; | |
2453 } | |
2454 | |
2455 s = find_window_class (classname, is_ansi); | |
2456 | |
2457 assert (s); | |
2458 | |
2459 if (message_ == WM_NOTIFY) | |
2460 { | |
2461 LPNMHDR nmhdr = (LPNMHDR) lParam; | |
2462 int putback = nmhdr->code; | |
2463 int do_putback = 0; | |
2464 | |
2465 #define FROB(msg) \ | |
2466 case msg##W: \ | |
2467 /* split structures are the same size, so no conversion necessary */ \ | |
2468 nmhdr->code = (UINT) msg##A; \ | |
2469 do_putback = 1; \ | |
2470 break; | |
2471 switch (nmhdr->code) | |
2472 { | |
2473 /* NMHEADER */ | |
2474 FROB (HDN_ITEMCHANGING); | |
2475 FROB (HDN_ITEMCHANGED); | |
2476 FROB (HDN_ITEMCLICK); | |
2477 FROB (HDN_ITEMDBLCLICK); | |
2478 FROB (HDN_DIVIDERDBLCLICK); | |
2479 FROB (HDN_BEGINTRACK); | |
2480 FROB (HDN_ENDTRACK); | |
2481 FROB (HDN_TRACK); | |
2482 /* NMDISPINFO */ | |
2483 FROB (HDN_GETDISPINFO); | |
2484 /* NMTBGETINFOTIP */ | |
2485 FROB (TBN_GETINFOTIP); | |
2486 /* NMTBDISPINFO */ | |
2487 FROB (TBN_GETDISPINFO); | |
2488 /* NMTOOLBAR */ | |
2489 FROB (TBN_GETBUTTONINFO); | |
2490 | |
2491 /* split-sized NMTTDISPINFO */ | |
2492 FROB (TTN_GETDISPINFO); /* handle the ...W case; then handle the | |
2493 ...A case specially, since we need to | |
2494 mess with the structure */ | |
2495 case TTN_GETDISPINFOA: /* same as TTN_NEEDTEXTA */ | |
2496 { | |
2497 NMTTDISPINFOW *nmw = alloca_new (NMTTDISPINFOW); | |
2498 NMTTDISPINFOA *nma = (NMTTDISPINFOA *) lParam; | |
2499 LRESULT retval; | |
2500 /* the layout of NMTTDISPINFO is | |
2501 | |
2502 non-split fields; | |
2503 TCHAR szText[...]; | |
2504 non-split fields; | |
2505 */ | |
2506 | |
2507 xzero (*nmw); | |
2508 /* copy to ...W struct for Unicode code */ | |
2509 memcpy ((char *) nmw, (char *) nma, | |
2510 offsetof (NMTTDISPINFOA, szText)); | |
2511 memcpy ((char *) nmw + offsetof (NMTTDISPINFOW, szText) + | |
2512 sizeof (nmw->szText), | |
2513 (char *) nma + offsetof (NMTTDISPINFOA, szText) + | |
2514 sizeof (nma->szText), | |
2515 sizeof (NMTTDISPINFOA) - | |
2516 (offsetof (NMTTDISPINFOA, szText) + sizeof (nma->szText))); | |
2517 memcpy (nmw->szText, nma->szText, sizeof (nma->szText)); | |
2518 retval = (s->proc) (hwnd, message_, wParam, lParam); | |
2519 /* copy back to ...A struct */ | |
2520 xzero (*nma); | |
2521 memcpy ((char *) nma, (char *) nmw, | |
2522 offsetof (NMTTDISPINFOA, szText)); | |
2523 memcpy ((char *) nma + offsetof (NMTTDISPINFOA, szText) + | |
2524 sizeof (nma->szText), | |
2525 (char *) nmw + offsetof (NMTTDISPINFOW, szText) + | |
2526 sizeof (nmw->szText), | |
2527 sizeof (NMTTDISPINFOA) - | |
2528 (offsetof (NMTTDISPINFOA, szText) + sizeof (nma->szText))); | |
2529 memcpy (nma->szText, nmw->szText, sizeof (nma->szText)); | |
2530 return retval; | |
2531 } | |
2532 | |
2533 /* NMLVFINDITEM */ | |
2534 FROB (LVN_ODFINDITEM); | |
2535 /* NMLVDISPINFO */ | |
2536 FROB (LVN_BEGINLABELEDIT); | |
2537 FROB (LVN_ENDLABELEDIT); | |
2538 FROB (LVN_GETDISPINFO); | |
2539 FROB (LVN_SETDISPINFO); | |
2540 /* NMLVGETINFOTIP */ | |
2541 FROB (LVN_GETINFOTIP); | |
2542 /* NMTREEVIEW */ | |
2543 FROB (TVN_SELCHANGING); | |
2544 FROB (TVN_SELCHANGED); | |
2545 FROB (TVN_ITEMEXPANDING); | |
2546 FROB (TVN_ITEMEXPANDED); | |
2547 FROB (TVN_BEGINDRAG); | |
2548 FROB (TVN_BEGINRDRAG); | |
2549 FROB (TVN_DELETEITEM); | |
2550 /* NMTVDISPINFO */ | |
2551 FROB (TVN_GETDISPINFO); | |
2552 FROB (TVN_SETDISPINFO); | |
2553 FROB (TVN_BEGINLABELEDIT); | |
2554 FROB (TVN_ENDLABELEDIT); | |
2555 /* NMTVGETINFOTIP */ | |
2556 FROB (TVN_GETINFOTIP); | |
2557 /* NMCOMBOBOXEX */ | |
2558 FROB (CBEN_GETDISPINFO); | |
2559 | |
2560 /* split-sized NMCBEDRAGBEGIN */ | |
2561 FROB (CBEN_DRAGBEGIN); /* handle the ...W case; then handle the | |
2562 ...A case specially, since we need to | |
2563 mess with the structure */ | |
2564 { | |
2565 NMCBEDRAGBEGINW *nmw = alloca_new (NMCBEDRAGBEGINW); | |
2566 NMCBEDRAGBEGINA *nma = (NMCBEDRAGBEGINA *) lParam; | |
2567 LRESULT retval; | |
2568 /* the layout of NNMCBEDRAGBEGIN is | |
2569 | |
2570 non-split fields; | |
2571 TCHAR szText[...]; | |
2572 */ | |
2573 | |
2574 xzero (*nmw); | |
2575 /* copy to ...W struct for Unicode code */ | |
2576 memcpy ((char *) nmw, (char *) nma, | |
2577 sizeof (*nma)); | |
2578 retval = (s->proc) (hwnd, message_, wParam, lParam); | |
2579 /* copy back to ...A struct */ | |
2580 xzero (*nma); | |
2581 memcpy ((char *) nma, (char *) nmw, | |
2582 sizeof (*nma)); | |
2583 return retval; | |
2584 } | |
2585 | |
2586 /* split-sized NMCBEENDEDIT */ | |
2587 FROB (CBEN_ENDEDIT); /* handle the ...W case; then handle the | |
2588 ...A case specially, since we need to | |
2589 mess with the structure */ | |
2590 { | |
2591 NMCBEENDEDITW *nmw = alloca_new (NMCBEENDEDITW); | |
2592 NMCBEENDEDITA *nma = (NMCBEENDEDITA *) lParam; | |
2593 LRESULT retval; | |
2594 /* the layout of NMCBEENDEDIT is | |
2595 | |
2596 non-split fields; | |
2597 TCHAR szText[...]; | |
2598 non-split fields; | |
2599 */ | |
2600 | |
2601 xzero (*nmw); | |
2602 /* copy to ...W struct for Unicode code */ | |
2603 memcpy ((char *) nmw, (char *) nma, | |
2604 offsetof (NMCBEENDEDITA, szText)); | |
2605 memcpy ((char *) nmw + offsetof (NMCBEENDEDITW, szText) + | |
2606 sizeof (nmw->szText), | |
2607 (char *) nma + offsetof (NMCBEENDEDITA, szText) + | |
2608 sizeof (nma->szText), | |
2609 sizeof (NMCBEENDEDITA) - | |
2610 (offsetof (NMCBEENDEDITA, szText) + sizeof (nma->szText))); | |
2611 memcpy (nmw->szText, nma->szText, sizeof (nma->szText)); | |
2612 retval = (s->proc) (hwnd, message_, wParam, lParam); | |
2613 /* copy back to ...A struct */ | |
2614 xzero (*nma); | |
2615 memcpy ((char *) nma, (char *) nmw, | |
2616 offsetof (NMCBEENDEDITA, szText)); | |
2617 memcpy ((char *) nma + offsetof (NMCBEENDEDITA, szText) + | |
2618 sizeof (nma->szText), | |
2619 (char *) nmw + offsetof (NMCBEENDEDITW, szText) + | |
2620 sizeof (nmw->szText), | |
2621 sizeof (NMCBEENDEDITA) - | |
2622 (offsetof (NMCBEENDEDITA, szText) + sizeof (nma->szText))); | |
2623 memcpy (nma->szText, nmw->szText, sizeof (nma->szText)); | |
2624 return retval; | |
2625 } | |
2626 | |
2627 /* NMDATETIMESTRING */ | |
2628 FROB (DTN_USERSTRING); | |
2629 /* NMDATETIMEWMKEYDOWN */ | |
2630 FROB (DTN_WMKEYDOWN); | |
2631 | |
2632 /* split-sized NMDATETIMEFORMAT */ | |
2633 FROB (DTN_FORMAT); /* handle the ...W case; then handle the | |
2634 ...A case specially, since we need to | |
2635 mess with the structure */ | |
2636 { | |
2637 NMDATETIMEFORMATW *nmw = alloca_new (NMDATETIMEFORMATW); | |
2638 NMDATETIMEFORMATA *nma = (NMDATETIMEFORMATA *) lParam; | |
2639 LRESULT retval; | |
2640 /* the layout of NMDATETIMEFORMAT is | |
2641 | |
2642 non-split fields; | |
2643 TCHAR szText[...]; | |
2644 */ | |
2645 | |
2646 xzero (*nmw); | |
2647 /* copy to ...W struct for Unicode code */ | |
2648 memcpy ((char *) nmw, (char *) nma, | |
2649 sizeof (*nma)); | |
2650 retval = (s->proc) (hwnd, message_, wParam, lParam); | |
2651 /* copy back to ...A struct */ | |
2652 xzero (*nma); | |
2653 memcpy ((char *) nma, (char *) nmw, | |
2654 sizeof (*nma)); | |
2655 return retval; | |
2656 } | |
2657 | |
2658 /* NMDATETIMEFORMATQUERY */ | |
2659 FROB (DTN_FORMATQUERY); | |
2660 default: break; | |
2661 } | |
2662 #undef FROB | |
2663 if (do_putback) | |
2664 { | |
2665 LRESULT retval = (s->proc) (hwnd, message_, wParam, lParam); | |
2666 ((LPNMHDR) lParam)->code = putback; | |
2667 return retval; | |
2668 } | |
2669 } | |
2670 | |
2671 return (s->proc) (hwnd, message_, wParam, lParam); | |
2672 } | |
2673 | |
2674 ATOM | |
2675 qxeRegisterClass (CONST WNDCLASSW * lpWndClass) | |
2676 { | |
2677 Intercepted_wnd_proc *s = | |
2678 find_window_class ((Extbyte *) lpWndClass->lpszClassName, !XEUNICODE_P); | |
2679 WNDCLASSW classnew; | |
2680 | |
2681 if (s) | |
2682 { | |
2683 s->proc = lpWndClass->lpfnWndProc; | |
2684 s->name = (Extbyte *) lpWndClass->lpszClassName; | |
2685 s->is_ansi = !XEUNICODE_P; | |
2686 } | |
2687 else | |
2688 { | |
2689 Intercepted_wnd_proc news; | |
2690 news.proc = lpWndClass->lpfnWndProc; | |
2691 news.name = (Extbyte *) lpWndClass->lpszClassName; | |
2692 news.is_ansi = !XEUNICODE_P; | |
2693 Dynarr_add (intercepted_wnd_procs, news); | |
2694 } | |
2695 classnew = *lpWndClass; | |
2696 classnew.lpfnWndProc = intercepted_wnd_proc; | |
2697 if (XEUNICODE_P) | |
2698 return RegisterClassW (&classnew); | |
2699 else | |
2367 | 2700 /* The intermediate cast fools gcc into not outputting strict-aliasing |
2701 complaints */ | |
2702 return RegisterClassA ((CONST WNDCLASSA *) (void *) &classnew); | |
771 | 2703 } |
2704 | |
2705 BOOL | |
2706 qxeUnregisterClass (const Extbyte * lpClassName, HINSTANCE hInstance) | |
2707 { | |
2708 Intercepted_wnd_proc *s = | |
2709 find_window_class (lpClassName, !XEUNICODE_P); | |
2710 | |
2711 if (s) | |
2712 Dynarr_delete_by_pointer (intercepted_wnd_procs, s); | |
2713 if (XEUNICODE_P) | |
2714 return UnregisterClassW ((LPCWSTR) lpClassName, hInstance); | |
2715 else | |
2716 return UnregisterClassA ((LPCSTR) lpClassName, hInstance); | |
2717 } | |
2718 | |
2719 /* NOTE: NT 4.0+ only */ | |
2720 ATOM | |
2721 qxeRegisterClassEx (CONST WNDCLASSEXW *lpWndClass) | |
2722 { | |
2723 Intercepted_wnd_proc *s = | |
2724 find_window_class ((Extbyte *) lpWndClass->lpszClassName, !XEUNICODE_P); | |
2725 WNDCLASSEXW classnew; | |
2726 | |
2727 if (s) | |
2728 { | |
2729 s->proc = lpWndClass->lpfnWndProc; | |
2730 s->name = (Extbyte *) lpWndClass->lpszClassName; | |
2731 s->is_ansi = !XEUNICODE_P; | |
2732 } | |
2733 else | |
2734 { | |
2735 Intercepted_wnd_proc news; | |
2736 news.proc = lpWndClass->lpfnWndProc; | |
2737 news.name = (Extbyte *) lpWndClass->lpszClassName; | |
2738 news.is_ansi = !XEUNICODE_P; | |
2739 Dynarr_add (intercepted_wnd_procs, news); | |
2740 } | |
2741 classnew = *lpWndClass; | |
2742 classnew.lpfnWndProc = intercepted_wnd_proc; | |
2743 if (XEUNICODE_P) | |
2744 return RegisterClassExW (&classnew); | |
2745 else | |
2367 | 2746 /* The intermediate cast fools gcc into not outputting strict-aliasing |
2747 complaints */ | |
2748 return RegisterClassExA ((CONST WNDCLASSEXA *) (void *) &classnew); | |
771 | 2749 } |
2750 | |
2751 | |
2752 /************************************************************************/ | |
2753 /* COMMCTRL.H */ | |
2754 /************************************************************************/ | |
2755 | |
2756 /* there are only four structures in commctrl.h that cannot be cast | |
2757 between Unicode/ANSI versions: | |
2758 | |
2759 NMTTDISPINFO aka TOOLTIPTEXT | |
2760 NMCBEDRAGBEGIN | |
2761 NMCBEENDEDIT | |
2762 NMDATETIMEFORMAT | |
2763 | |
2764 these are all notify structures, and we handle them above in | |
2765 intercepted_wnd_proc(). | |
2766 | |
2767 in addition, this constant is weird, being a struct size of one of these: | |
2768 | |
2769 NMTTDISPINFO_V1_SIZE | |
2770 */ | |
2771 | |
2772 /* | |
2773 split class names: | |
2774 | |
2775 WC_HEADER | |
2776 TOOLBARCLASSNAME | |
2777 REBARCLASSNAME | |
2778 TOOLTIPS_CLASS | |
2779 STATUSCLASSNAME | |
2780 TRACKBAR_CLASS | |
2781 UPDOWN_CLASS | |
2782 PROGRESS_CLASS | |
2783 HOTKEY_CLASS | |
2784 WC_LISTVIEW | |
2785 WC_TREEVIEW | |
2786 WC_COMBOBOXEX | |
2787 WC_TABCONTROL | |
2788 ANIMATE_CLASS | |
2789 MONTHCAL_CLASS | |
2790 DATETIMEPICK_CLASS | |
2791 WC_IPADDRESS | |
2792 WC_PAGESCROLLER | |
2793 WC_NATIVEFONTCTL | |
2794 */ | |
2795 | |
2796 /* | |
2797 SendMessage split messages: | |
2798 | |
2799 HDM_INSERTITEM | |
2800 HDM_GETITEM | |
2801 HDM_SETITEM | |
2802 TB_GETBUTTONTEXT | |
2803 TB_SAVERESTORE | |
2804 TB_ADDSTRING | |
2805 TB_GETBUTTONINFO | |
2806 TB_SETBUTTONINFO | |
2807 TB_INSERTBUTTON | |
2808 TB_ADDBUTTONS | |
2809 RB_INSERTBAND | |
2810 RB_SETBANDINFO | |
2811 RB_GETBANDINFO | |
2812 TTM_ADDTOOL | |
2813 TTM_DELTOOL | |
2814 TTM_NEWTOOLRECT | |
2815 TTM_GETTOOLINFO | |
2816 TTM_SETTOOLINFO | |
2817 TTM_HITTEST | |
2818 TTM_GETTEXT | |
2819 TTM_UPDATETIPTEXT | |
2820 TTM_ENUMTOOLS | |
2821 TTM_GETCURRENTTOOL | |
2822 SB_GETTEXT | |
2823 SB_SETTEXT | |
2824 SB_GETTEXTLENGTH | |
2825 SB_SETTIPTEXT | |
2826 SB_GETTIPTEXT | |
2827 LVM_GETITEM | |
2828 LVM_SETITEM | |
2829 LVM_INSERTITEM | |
2830 LVM_FINDITEM | |
2831 LVM_GETSTRINGWIDTH | |
2832 LVM_EDITLABEL | |
2833 LVM_GETCOLUMN | |
2834 LVM_SETCOLUMN | |
2835 LVM_GETITEMTEXT | |
2836 LVM_SETITEMTEXT | |
2837 LVM_GETISEARCHSTRING | |
2838 LVM_SETBKIMAGE | |
2839 LVM_GETBKIMAGE | |
2840 TVM_INSERTITEM | |
2841 TVM_GETITEM | |
2842 TVM_SETITEM | |
2843 TVM_EDITLABEL | |
2844 TVM_GETISEARCHSTRING | |
2845 CBEM_INSERTITEM | |
2846 CBEM_SETITEM | |
2847 CBEM_GETITEM | |
2848 TCM_GETITEM | |
2849 TCM_SETITEM | |
2850 TCM_INSERTITEM | |
2851 ACM_OPEN | |
2852 DTM_SETFORMAT | |
2853 BFFM_SETSTATUSTEXT | |
2854 BFFM_SETSELECTION | |
2855 */ | |
2856 | |
2857 /* | |
2858 split notify messages: | |
2859 | |
2860 HDN_ITEMCHANGING | |
2861 HDN_ITEMCHANGED | |
2862 HDN_ITEMCLICK | |
2863 HDN_ITEMDBLCLICK | |
2864 HDN_DIVIDERDBLCLICK | |
2865 HDN_BEGINTRACK | |
2866 HDN_ENDTRACK | |
2867 HDN_TRACK | |
2868 HDN_GETDISPINFO | |
2869 TBN_GETINFOTIP | |
2870 TBN_GETDISPINFO | |
2871 TBN_GETBUTTONINFO | |
2872 TTN_GETDISPINFO | |
2873 TTN_NEEDTEXTW | |
2874 LVN_ODFINDITEM | |
2875 LVN_BEGINLABELEDIT | |
2876 LVN_ENDLABELEDIT | |
2877 LVN_GETDISPINFO | |
2878 LVN_SETDISPINFO | |
2879 LVN_GETINFOTIP | |
2880 TVN_SELCHANGING | |
2881 TVN_SELCHANGED | |
2882 TVN_GETDISPINFO | |
2883 TVN_SETDISPINFO | |
2884 TVN_ITEMEXPANDING | |
2885 TVN_ITEMEXPANDED | |
2886 TVN_BEGINDRAG | |
2887 TVN_BEGINRDRAG | |
2888 TVN_DELETEITEM | |
2889 TVN_BEGINLABELEDIT | |
2890 TVN_ENDLABELEDIT | |
2891 TVN_GETINFOTIP | |
2892 CBEN_GETDISPINFO | |
2893 CBEN_DRAGBEGIN | |
2894 CBEN_ENDEDIT | |
2895 DTN_USERSTRING | |
2896 DTN_WMKEYDOWN | |
2897 DTN_FORMAT | |
2898 DTN_FORMATQUERY | |
2899 BFFM_VALIDATEFAILED (send to SHBrowseForFolder procedure) | |
2900 */ | |
2901 | |
2902 /* | |
2903 split structures: | |
2904 | |
2905 TV_INSERTSTRUCT (simple-split, though -- just cast) | |
2906 TC_ITEM (simple-split, though -- just cast) | |
2907 | |
2908 #### | |
2909 */ | |
2910 | |
2911 /* | |
2912 split macros or macros needing splitting: | |
2913 | |
2914 #### | |
2915 */ | |
2916 | |
2917 LRESULT | |
2918 qxeSendMessage (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) | |
2919 { | |
2920 #define FROB(msg) \ | |
2921 case msg##A: \ | |
2922 /* split structures are the same size, so no conversion necessary */ \ | |
2923 Msg = msg##W; \ | |
2924 break; | |
2925 | |
2926 if (XEUNICODE_P) | |
2927 { | |
2928 WCHAR classname[100]; | |
2929 /* the name for SHBrowseForFolder windows is non-obvious so we have | |
2930 to intercept the callback */ | |
2931 if (is_SHBrowseForFolder (hWnd)) | |
2932 { | |
2933 switch (Msg) | |
2934 { | |
2935 FROB (BFFM_SETSELECTION); | |
2936 FROB (BFFM_SETSTATUSTEXT); | |
2937 default: break; | |
2938 } | |
2939 } | |
2940 else if (!GetClassNameW (hWnd, classname, 100)) | |
2941 ; | |
2942 /* luckily, subclassing leaves the name alone, so we can still | |
2943 determine fairly easily the correct class to switch on */ | |
2944 else if (!wcscmp (classname, WC_HEADERW)) | |
2945 { | |
2946 switch (Msg) | |
2947 { | |
2948 FROB (HDM_INSERTITEM); | |
2949 FROB (HDM_GETITEM); | |
2950 FROB (HDM_SETITEM); | |
2951 default: break; | |
2952 } | |
2953 } | |
2954 else if (!wcscmp (classname, TOOLBARCLASSNAMEW)) | |
2955 { | |
2956 switch (Msg) | |
2957 { | |
2958 FROB (TB_GETBUTTONTEXT); | |
2959 FROB (TB_SAVERESTORE); | |
2960 FROB (TB_ADDSTRING); | |
2961 FROB (TB_GETBUTTONINFO); | |
2962 FROB (TB_SETBUTTONINFO); | |
2963 FROB (TB_INSERTBUTTON); | |
2964 FROB (TB_ADDBUTTONS); | |
2965 default: break; | |
2966 } | |
2967 } | |
2968 else if (!wcscmp (classname, REBARCLASSNAMEW)) | |
2969 { | |
2970 switch (Msg) | |
2971 { | |
2972 FROB (RB_INSERTBAND); | |
2973 FROB (RB_SETBANDINFO); | |
2974 FROB (RB_GETBANDINFO); | |
2975 default: break; | |
2976 } | |
2977 } | |
2978 else if (!wcscmp (classname, TOOLTIPS_CLASSW)) | |
2979 { | |
2980 switch (Msg) | |
2981 { | |
2982 FROB (TTM_ADDTOOL); | |
2983 FROB (TTM_DELTOOL); | |
2984 FROB (TTM_NEWTOOLRECT); | |
2985 FROB (TTM_GETTOOLINFO); | |
2986 FROB (TTM_SETTOOLINFO); | |
2987 FROB (TTM_HITTEST); | |
2988 FROB (TTM_GETTEXT); | |
2989 FROB (TTM_UPDATETIPTEXT); | |
2990 FROB (TTM_ENUMTOOLS); | |
2991 FROB (TTM_GETCURRENTTOOL); | |
2992 default: break; | |
2993 } | |
2994 } | |
2995 else if (!wcscmp (classname, STATUSCLASSNAMEW)) | |
2996 { | |
2997 switch (Msg) | |
2998 { | |
2999 FROB (SB_GETTEXT); | |
3000 FROB (SB_SETTEXT); | |
3001 FROB (SB_GETTEXTLENGTH); | |
3002 FROB (SB_SETTIPTEXT); | |
3003 FROB (SB_GETTIPTEXT); | |
3004 default: break; | |
3005 } | |
3006 } | |
3007 else if (!wcscmp (classname, WC_LISTVIEWW)) | |
3008 { | |
3009 switch (Msg) | |
3010 { | |
3011 FROB (LVM_GETITEM); | |
3012 FROB (LVM_SETITEM); | |
3013 FROB (LVM_INSERTITEM); | |
3014 FROB (LVM_FINDITEM); | |
3015 FROB (LVM_GETSTRINGWIDTH); | |
3016 FROB (LVM_EDITLABEL); | |
3017 FROB (LVM_GETCOLUMN); | |
3018 FROB (LVM_SETCOLUMN); | |
3019 FROB (LVM_GETITEMTEXT); | |
3020 FROB (LVM_SETITEMTEXT); | |
3021 FROB (LVM_GETISEARCHSTRING); | |
3022 FROB (LVM_SETBKIMAGE); | |
3023 FROB (LVM_GETBKIMAGE); | |
3024 default: break; | |
3025 } | |
3026 } | |
3027 else if (!wcscmp (classname, WC_TREEVIEWW)) | |
3028 { | |
3029 switch (Msg) | |
3030 { | |
3031 FROB (TVM_INSERTITEM); /* no need to split TV_INSERTSTRUCT */ | |
3032 FROB (TVM_GETITEM); | |
3033 FROB (TVM_SETITEM); | |
3034 FROB (TVM_EDITLABEL); | |
3035 FROB (TVM_GETISEARCHSTRING); | |
3036 default: break; | |
3037 } | |
3038 } | |
3039 else if (!wcscmp (classname, WC_COMBOBOXEXW)) | |
3040 { | |
3041 switch (Msg) | |
3042 { | |
3043 FROB (CBEM_INSERTITEM); | |
3044 FROB (CBEM_SETITEM); | |
3045 FROB (CBEM_GETITEM); | |
3046 default: break; | |
3047 } | |
3048 } | |
3049 else if (!wcscmp (classname, WC_TABCONTROLW)) | |
3050 { | |
3051 switch (Msg) | |
3052 { | |
3053 FROB (TCM_GETITEM); | |
3054 FROB (TCM_SETITEM); | |
3055 FROB (TCM_INSERTITEM); /* no need to split TC_ITEM */ | |
3056 default: break; | |
3057 } | |
3058 } | |
3059 else if (!wcscmp (classname, ANIMATE_CLASSW)) | |
3060 { | |
3061 switch (Msg) | |
3062 { | |
3063 FROB (ACM_OPEN); | |
3064 default: break; | |
3065 } | |
3066 } | |
3067 else if (!wcscmp (classname, DATETIMEPICK_CLASSW)) | |
3068 { | |
3069 switch (Msg) | |
3070 { | |
3071 FROB (DTM_SETFORMAT); | |
3072 default: break; | |
3073 } | |
3074 } | |
3075 } | |
3076 | |
3077 if (XEUNICODE_P) | |
3078 return SendMessageW (hWnd, Msg, wParam, lParam); | |
3079 else | |
3080 return SendMessageA (hWnd, Msg, wParam, lParam); | |
3081 | |
3082 #undef FROB | |
3083 } | |
3084 | |
3085 #endif /* HAVE_MS_WINDOWS */ | |
3086 | |
3087 |