Changed MoveFileEx to use ntdll functions, and moved it to
[wine] / dlls / unicows / main.c
1 /*
2  * Implementation of the unicows dll
3  *
4  * Copyright (C) 2003 Alexandre Julliard
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #include <stdarg.h>
22
23 #include "windef.h"
24 #include "winbase.h"
25 #include "winreg.h"
26 #include "winnls.h"
27 #include "wingdi.h"
28 #include "winuser.h"
29 #include "winver.h"
30 #include "winspool.h"
31 #include "commdlg.h"
32 #include "wincrypt.h"
33 #include "ddeml.h"
34 #include "wincon.h"
35 #include "oledlg.h"
36 #include "ras.h"
37 #include "mmsystem.h"
38 #include "shlobj.h"
39 #include "shellapi.h"
40 #include "vfw.h"
41 #include "winnetwk.h"
42
43 /* Create a dummy reference to every function we need so that
44  * the linker will import them.
45  */
46 const void *dummy_references[] =
47 {
48     AddAtomW,
49     AddFontResourceW,
50     AddJobW,
51     AddPrinterDriverW,
52     AddPrinterW,
53     AppendMenuW,
54     BeginUpdateResourceA,
55     BeginUpdateResourceW,
56     BroadcastSystemMessageW,
57     BuildCommDCBAndTimeoutsW,
58     BuildCommDCBW,
59     CallMsgFilterW,
60     CallNamedPipeW,
61     CallWindowProcA,
62     CallWindowProcW,
63     ChangeDisplaySettingsExW,
64     ChangeDisplaySettingsW,
65     ChangeMenuW,
66     CharLowerBuffW,
67     CharLowerW,
68     CharNextW,
69     CharPrevW,
70     CharToOemBuffW,
71     CharToOemW,
72     CharUpperBuffW,
73     CharUpperW,
74     ChooseColorW,
75     ChooseFontW,
76     CommConfigDialogW,
77     CompareStringW,
78     CopyAcceleratorTableW,
79     CopyFileExW ,
80     CopyFileW,
81     CopyMetaFileW,
82     CreateAcceleratorTableW,
83     CreateColorSpaceW,
84     CreateDCW,
85     CreateDialogIndirectParamW,
86     CreateDialogParamW,
87     CreateDirectoryExW,
88     CreateDirectoryW,
89     CreateEnhMetaFileW,
90     CreateEventW,
91     CreateFileMappingW,
92     CreateFileW,
93     CreateFontIndirectW,
94     CreateFontW,
95     CreateICW,
96     CreateMDIWindowW,
97     CreateMailslotW,
98     CreateMetaFileW,
99     CreateMutexW,
100     CreateNamedPipeW,
101     CreateProcessW,
102     CreateScalableFontResourceW,
103     CreateSemaphoreW,
104     CreateWaitableTimerW,
105     CreateWindowExW,
106     CryptAcquireContextW,
107     CryptEnumProviderTypesW,
108     CryptEnumProvidersW,
109     CryptGetDefaultProviderW,
110     CryptSetProviderExW,
111     CryptSetProviderW,
112     CryptSignHashW,
113     CryptVerifySignatureW,
114     DdeConnect,
115     DdeConnectList,
116     DdeCreateStringHandleW,
117     DdeInitializeW,
118     DdeQueryConvInfo,
119     DdeQueryStringW,
120     DefDlgProcW,
121     DefFrameProcW,
122     DefMDIChildProcW,
123     DefWindowProcW,
124     DeleteFileW,
125     DeviceCapabilitiesW,
126     DialogBoxIndirectParamW,
127     DialogBoxParamW,
128     DispatchMessageW,
129     DlgDirListComboBoxW,
130     DlgDirListW,
131     DlgDirSelectComboBoxExW,
132     DlgDirSelectExW,
133     DocumentPropertiesW,
134     DragQueryFileW,
135     DrawStateW,
136     DrawTextExW,
137     DrawTextW,
138     EnableWindow,
139     EndUpdateResourceA,
140     EndUpdateResourceW,
141     EnumClipboardFormats,
142     EnumDateFormatsW,
143     EnumDisplayDevicesW,
144     EnumDisplaySettingsExW,
145     EnumDisplaySettingsW,
146     EnumFontFamiliesExW,
147     EnumFontFamiliesW,
148     EnumFontsW,
149     EnumPrinterDriversW,
150     EnumPrintersW,
151     EnumPropsA,
152     EnumPropsExA,
153     EnumPropsExW,
154     EnumPropsW,
155     EnumSystemCodePagesW,
156     EnumSystemLocalesW,
157     EnumTimeFormatsW,
158     ExpandEnvironmentStringsW,
159     ExtTextOutW,
160     ExtractIconExW,
161     ExtractIconW,
162     FatalAppExitW,
163     FillConsoleOutputCharacterW,
164     FindAtomW,
165     FindExecutableW,
166     FindFirstChangeNotificationW,
167     FindFirstFileW,
168     FindNextFileW,
169     FindResourceExW,
170     FindResourceW,
171     FindTextW,
172     FindWindowExW,
173     FindWindowW,
174     FormatMessageW,
175     FreeEnvironmentStringsW,
176     GetAtomNameW,
177     GetCPInfo,
178     GetCPInfoExW,
179     GetCalendarInfoW,
180     GetCharABCWidthsFloatW,
181     GetCharABCWidthsW,
182     GetCharWidth32W,
183     GetCharWidthFloatW,
184     GetCharWidthW,
185     GetCharacterPlacementW,
186     GetClassInfoExW,
187     GetClassInfoW,
188     GetClassLongW,
189     GetClassNameW,
190     GetClipboardData,
191     GetClipboardFormatNameW,
192     GetComputerNameW,
193     GetConsoleTitleW,
194     GetCurrencyFormatW,
195     GetCurrentDirectoryW,
196     GetDateFormatW,
197     GetDefaultCommConfigW,
198     GetDiskFreeSpaceExW ,
199     GetDiskFreeSpaceW,
200     GetDlgItemTextW,
201     GetDriveTypeW,
202     GetEnhMetaFileDescriptionW,
203     GetEnhMetaFileW,
204     GetEnvironmentStringsW,
205     GetEnvironmentVariableW,
206     GetFileAttributesExW,
207     GetFileAttributesW,
208     GetFileTitleW,
209     GetFileVersionInfoSizeW,
210     GetFileVersionInfoW,
211     GetFullPathNameW,
212     GetGlyphOutlineW,
213     GetKerningPairsW,
214     GetKeyNameTextW,
215     GetKeyboardLayoutNameW,
216     GetLocaleInfoW,
217     GetLogicalDriveStringsW,
218     GetLongPathNameW ,
219     GetMenuItemInfoW,
220     GetMenuStringW,
221     GetMessageW,
222     GetMetaFileW,
223     GetModuleFileNameW,
224     GetModuleHandleW,
225     GetMonitorInfoW,
226     GetNamedPipeHandleStateW,
227     GetNumberFormatW,
228     GetObjectW,
229     GetOpenFileNamePreviewW,
230     GetOpenFileNameW,
231     GetOutlineTextMetricsW,
232     GetPrinterDataW,
233     GetPrinterDriverDirectoryW,
234     GetPrinterDriverW,
235     GetPrinterW,
236     GetPrivateProfileIntW,
237     GetPrivateProfileSectionNamesW,
238     GetPrivateProfileSectionW,
239     GetPrivateProfileStringW,
240     GetPrivateProfileStructW,
241     GetProcAddress,
242     GetProfileIntW,
243     GetProfileSectionW,
244     GetProfileStringW,
245     GetPropA,
246     GetPropW,
247     GetSaveFileNamePreviewW,
248     GetSaveFileNameW,
249     GetShortPathNameW,
250     GetStartupInfoW,
251     GetStringTypeExW,
252     GetStringTypeW,
253     GetSystemDirectoryW,
254     GetSystemWindowsDirectoryW,
255     GetTabbedTextExtentW,
256     GetTempFileNameW,
257     GetTempPathW,
258     GetTextExtentExPointW,
259     GetTextExtentPoint32W,
260     GetTextExtentPointW,
261     GetTextFaceW,
262     GetTextMetricsW,
263     GetTimeFormatW,
264     GetUserNameW,
265     GetVersionExW,
266     GetVolumeInformationW,
267     GetWindowLongA,
268     GetWindowLongW,
269     GetWindowModuleFileNameW,
270     GetWindowTextLengthW,
271     GetWindowTextW,
272     GetWindowsDirectoryW,
273     GlobalAddAtomW,
274     GlobalFindAtomW,
275     GlobalGetAtomNameW,
276     GrayStringW,
277     InsertMenuItemW,
278     InsertMenuW,
279     IsBadStringPtrW,
280     IsCharAlphaNumericW,
281     IsCharAlphaW,
282     IsCharLowerW,
283     IsCharUpperW,
284     IsClipboardFormatAvailable,
285     IsDialogMessageW,
286     IsTextUnicode,
287     IsValidCodePage,
288     IsWindowUnicode,
289     LCMapStringW,
290     LoadAcceleratorsW,
291     LoadBitmapW,
292     LoadCursorFromFileW,
293     LoadCursorW,
294     LoadIconW,
295     LoadImageW,
296     LoadKeyboardLayoutW,
297     LoadLibraryExW,
298     LoadLibraryW,
299     LoadMenuIndirectW,
300     LoadMenuW,
301     LoadStringW,
302     MCIWndCreateW,
303     MapVirtualKeyExW,
304     MapVirtualKeyW,
305     MessageBoxExW,
306     MessageBoxIndirectW,
307     MessageBoxW,
308     ModifyMenuW,
309     MoveFileW,
310     MultiByteToWideChar,
311     MultinetGetConnectionPerformanceW,
312     OemToCharBuffW,
313     OemToCharW,
314     OleUIAddVerbMenuW,
315     OleUIBusyW,
316     OleUIChangeIconW,
317     OleUIChangeSourceW,
318     OleUIConvertW,
319     OleUIEditLinksW,
320     OleUIInsertObjectW,
321     OleUIObjectPropertiesW,
322     OleUIPasteSpecialW,
323     OleUIPromptUserW,
324     OleUIUpdateLinksW,
325     OpenEventW,
326     OpenFileMappingW,
327     OpenMutexW,
328     OpenPrinterW,
329     OpenSemaphoreW,
330     OpenWaitableTimerW,
331     OutputDebugStringW,
332     PageSetupDlgW,
333     PeekConsoleInputW,
334     PeekMessageW,
335     PlaySoundW,
336     PolyTextOutW,
337     PostMessageW,
338     PostThreadMessageW,
339     PrintDlgW,
340     QueryDosDeviceW,
341     RasDeleteEntryW,
342     RasEnumConnectionsW,
343     RasEnumDevicesW,
344     RasEnumEntriesW,
345     RasSetEntryPropertiesW,
346     ReadConsoleInputW,
347     ReadConsoleOutputCharacterW,
348     ReadConsoleOutputW,
349     ReadConsoleW,
350     RegConnectRegistryW,
351     RegCreateKeyExW,
352     RegCreateKeyW,
353     RegDeleteKeyW,
354     RegDeleteValueW,
355     RegEnumKeyExW,
356     RegEnumKeyW,
357     RegEnumValueW,
358     RegLoadKeyW,
359     RegOpenKeyExW,
360     RegOpenKeyW,
361     RegQueryInfoKeyW,
362     RegQueryMultipleValuesW,
363     RegQueryValueExW,
364     RegQueryValueW,
365     RegReplaceKeyW,
366     RegSaveKeyW,
367     RegSetValueExW,
368     RegSetValueW,
369     RegUnLoadKeyW,
370     RegisterClassExW,
371     RegisterClassW,
372     RegisterClipboardFormatW,
373     RegisterWindowMessageW,
374     RemoveDirectoryW,
375     RemoveFontResourceW,
376     RemovePropA,
377     RemovePropW,
378     ReplaceTextW,
379     ResetDCW,
380     ResetPrinterW,
381     SHBrowseForFolderW,
382     SHChangeNotify ,
383     SHFileOperationW,
384     SHGetFileInfoW,
385     SHGetPathFromIDListW,
386     ScrollConsoleScreenBufferW,
387     SearchPathW,
388     SendDlgItemMessageW,
389     SendMessageCallbackW,
390     SendMessageTimeoutW,
391     SendMessageW,
392     SendNotifyMessageW,
393     SetCalendarInfoW,
394     SetClassLongW,
395     SetComputerNameW,
396     SetConsoleTitleW,
397     SetCurrentDirectoryW,
398     SetDefaultCommConfigW,
399     SetDlgItemTextW,
400     SetEnvironmentVariableW,
401     SetFileAttributesW,
402     SetJobW,
403     SetLocaleInfoW,
404     SetMenuItemInfoW,
405     SetPrinterDataW,
406     SetPrinterW,
407     SetPropA,
408     SetPropW,
409     SetVolumeLabelW,
410     SetWindowLongA,
411     SetWindowLongW,
412     SetWindowTextW,
413     SetWindowsHookExW,
414     SetWindowsHookW,
415     ShellAboutW,
416     ShellExecuteExW ,
417     ShellExecuteW ,
418     Shell_NotifyIconW,
419     StartDocPrinterW,
420     StartDocW,
421     SystemParametersInfoW,
422     TabbedTextOutW,
423     TextOutW,
424     TranslateAcceleratorW,
425     UnregisterClassW,
426     UpdateResourceA,
427     UpdateResourceW,
428     VerFindFileW,
429     VerInstallFileW,
430     VerLanguageNameW,
431     VerQueryValueW,
432     VkKeyScanExW,
433     VkKeyScanW,
434     WNetAddConnection2W,
435     WNetAddConnection3W,
436     WNetAddConnectionW,
437     WNetCancelConnection2W,
438     WNetCancelConnectionW,
439     WNetConnectionDialog1W,
440     WNetDisconnectDialog1W,
441     WNetEnumResourceW,
442     WNetGetConnectionW,
443     WNetGetLastErrorW,
444     WNetGetNetworkInformationW,
445     WNetGetProviderNameW,
446     WNetGetResourceInformationW,
447     WNetGetResourceParentW,
448     WNetGetUniversalNameW ,
449     WNetGetUserW,
450     WNetOpenEnumW,
451     WNetUseConnectionW,
452     WaitNamedPipeW ,
453     WideCharToMultiByte,
454     WinHelpW,
455     WriteConsoleInputW,
456     WriteConsoleOutputCharacterW,
457     WriteConsoleOutputW,
458     WriteConsoleW,
459     WritePrivateProfileSectionW,
460     WritePrivateProfileStringW,
461     WritePrivateProfileStructW,
462     WriteProfileSectionW,
463     WriteProfileStringW,
464     auxGetDevCapsW,
465     capCreateCaptureWindowW,
466     capGetDriverDescriptionW,
467     joyGetDevCapsW,
468     lstrcatW,
469     lstrcmpW,
470     lstrcmpiW,
471     lstrcpyW,
472     lstrcpynW,
473     lstrlenW,
474     mciGetDeviceIDW,
475     mciGetErrorStringW,
476     mciSendCommandW,
477     mciSendStringW,
478     midiInGetDevCapsW,
479     midiInGetErrorTextW,
480     midiOutGetDevCapsW,
481     midiOutGetErrorTextW,
482     mixerGetControlDetailsW,
483     mixerGetDevCapsW,
484     mixerGetLineControlsW,
485     mixerGetLineInfoW,
486     mmioInstallIOProcW,
487     mmioOpenW,
488     mmioRenameW,
489     mmioStringToFOURCCW,
490     sndPlaySoundW,
491     waveInGetDevCapsW,
492     waveInGetErrorTextW,
493     waveOutGetDevCapsW,
494     waveOutGetErrorTextW,
495     wsprintfW,
496     wvsprintfW
497 };