94f00b5e12e3baba23b38afebdfef85c0a1fa65f
[reactos.git] / rosapps / winfile / shell.c
1 /*
2 * ReactOS winfile
3 *
4 * shell.c
5 *
6 * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23 #ifdef _MSC_VER
24 #include "stdafx.h"
25 #else
26 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
27 #include <windows.h>
28 #include <commctrl.h>
29 #include <stdlib.h>
30 #include <malloc.h>
31 #include <memory.h>
32 #include <tchar.h>
33 #include <process.h>
34 #include <stdio.h>
35 #endif
36
37 #include "main.h"
38 #include "shell.h"
39 #include "format.h"
40
41
42 ////////////////////////////////////////////////////////////////////////////////
43 // Global Variables:
44 //
45
46 //DWORD WINAPI SHFormatDrive(HWND hWnd, UINT drive, UINT fmtID, UINT options);
47
48 typedef DWORD (WINAPI *SHFormatDrive_Ptr)(HWND, UINT, UINT, UINT);
49
50
51 BOOL CheckShellAvailable(void)
52 {
53 HMODULE hShell32;
54
55 hShell32 = LoadLibrary(_T("SHELL32.DLL"));
56 if (hShell32) {
57 FreeLibrary(hShell32);
58 }
59 return (hShell32 != NULL);
60 }
61
62
63 void FormatDisk(HWND hWnd)
64 {
65 // SHFormatDrive(hWnd, 0 /* A: */, SHFMT_ID_DEFAULT, 0);
66 HMODULE hShell32;
67 SHFormatDrive_Ptr pSHFormatDrive;
68
69 hShell32 = LoadLibrary(_T("SHELL32.DLL"));
70 if (hShell32) {
71 pSHFormatDrive = (SHFormatDrive_Ptr)(FARPROC)GetProcAddress(hShell32, "SHFormatDrive");
72 if (pSHFormatDrive) {
73 UINT OldMode = SetErrorMode(0); // Get the current Error Mode settings.
74 SetErrorMode(OldMode & ~SEM_FAILCRITICALERRORS); // Force O/S to handle
75 pSHFormatDrive(hWnd, 0 /* A: */, SHFMT_ID_DEFAULT, 0);
76 SetErrorMode(OldMode); // Put it back the way it was.
77 }
78 FreeLibrary(hShell32);
79 }
80 }
81
82 void CopyDisk(HWND hWnd)
83 {
84 }
85
86 void LabelDisk(HWND hWnd)
87 {
88 }
89
90 void ModifySharing(HWND hWnd, BOOL create)
91 {
92 }