advpack: Add stubs for the file save/restore functions.
[wine] / include / advpub.h
1 /*
2  * Copyright 2004 Huw D M Davies
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18 #ifndef __WINE_ADVPUB_H
19 #define __WINE_ADVPUB_H
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 typedef struct _CabInfo {
26     PSTR  pszCab;
27     PSTR  pszInf;
28     PSTR  pszSection;
29     char  szSrcPath[MAX_PATH];
30     DWORD dwFlags;
31 } CABINFO, *PCABINFO;
32
33 typedef struct _StrEntry {
34     LPSTR pszName;
35     LPSTR pszValue;
36 } STRENTRY, *LPSTRENTRY;
37
38 typedef const STRENTRY CSTRENTRY;
39 typedef CSTRENTRY *LPCSTRENTRY;
40
41 typedef struct _StrTable {
42     DWORD cEntries;
43     LPSTRENTRY pse;
44 } STRTABLE, *LPSTRTABLE;
45
46 typedef const STRTABLE CSTRTABLE;
47 typedef CSTRTABLE *LPCSTRTABLE;
48
49 /* Flags for AdvInstallFile */
50 #define AIF_WARNIFSKIP              0x00000001
51 #define AIF_NOSKIP                  0x00000002
52 #define AIF_NOVERSIONCHECK          0x00000004
53 #define AIF_FORCE_FILE_IN_USE       0x00000008
54 #define AIF_NOOVERWRITE             0x00000010
55 #define AIF_NO_VERSION_DIALOG       0x00000020
56 #define AIF_REPLACEONLY             0x00000400
57 #define AIF_NOLANGUAGECHECK         0x10000000
58 #define AIF_QUIET                   0x20000000
59
60 /* Flags for RunSetupCommand */
61 #define RSC_FLAG_INF                0x00000001
62 #define RSC_FLAG_SKIPDISKSPACECHECK 0x00000002
63 #define RSC_FLAG_QUIET              0x00000004
64 #define RSC_FLAG_NGCONV             0x00000008
65 #define RSC_FLAG_UPDHLPDLLS         0x00000010
66 #define RSC_FLAG_DELAYREGISTEROCX   0x00000200
67 #define RSC_FLAG_SETUPAPI           0x00000400
68
69 /* Flags for DelNode */
70 #define ADN_DEL_IF_EMPTY            0x00000001
71 #define ADN_DONT_DEL_SUBDIRS        0x00000002
72 #define ADN_DONT_DEL_DIR            0x00000004
73 #define ADN_DEL_UNC_PATHS           0x00000008
74
75 /* Flags for RegRestoreAll, RegSaveRestore, RegSaveRestoreOnINF */
76 #define  IE4_RESTORE                0x00000001
77 #define  IE4_BACKNEW                0x00000002
78 #define  IE4_NODELETENEW            0x00000004
79 #define  IE4_NOMESSAGES             0x00000008
80 #define  IE4_NOPROGRESS             0x00000010
81 #define  IE4_NOENUMKEY              0x00000020
82 #define  IE4_NO_CRC_MAPPING         0x00000040
83 #define  IE4_REGSECTION             0x00000080
84 #define  IE4_FRDOALL                0x00000100
85 #define  IE4_UPDREFCNT              0x00000200
86 #define  IE4_USEREFCNT              0x00000400
87 #define  IE4_EXTRAINCREFCNT         0x00000800
88
89 /* Flags for file save and restore functions */
90 #define  AFSR_RESTORE               IE4_RESTORE
91 #define  AFSR_BACKNEW               IE4_BACKNEW
92 #define  AFSR_NODELETENEW           IE4_NODELETENEW
93 #define  AFSR_NOMESSAGES            IE4_NOMESSAGES
94 #define  AFSR_NOPROGRESS            IE4_NOPROGRESS
95 #define  AFSR_UPDREFCNT             IE4_UPDREFCNT
96 #define  AFSR_USEREFCNT             IE4_USEREFCNT
97 #define  AFSR_EXTRAINCREFCNT        IE4_EXTRAINCREFCNT
98
99 HRESULT WINAPI AdvInstallFile(HWND hwnd, LPCSTR lpszSourceDir,
100      LPCSTR lpszSourceFile, LPCSTR lpszDestDir, LPCSTR lpszDestFile,
101      DWORD dwFlags, DWORD dwReserved);
102 HRESULT WINAPI DelNode(LPCSTR pszFileOrDirName, DWORD dwFlags);
103 HRESULT WINAPI DelNodeRunDLL32(HWND,HINSTANCE,LPSTR,INT);
104 HRESULT WINAPI ExecuteCab( HWND hwnd, PCABINFO pCab, LPVOID pReserved );
105 HRESULT WINAPI ExtractFiles(LPCSTR,LPCSTR,DWORD,LPCSTR,LPVOID,DWORD);
106 HRESULT WINAPI FileSaveMarkNotExist(LPSTR pszFileList, LPSTR pszDir, LPSTR pszBaseName);
107 HRESULT WINAPI FileSaveRestore(HWND hDlg, LPSTR pszFileList, LPSTR pszDir,
108      LPSTR pszBaseName, DWORD dwFlags);
109 HRESULT WINAPI FileSaveRestoreOnINF(HWND hWnd, PCSTR pszTitle, PCSTR pszINF,
110      PCSTR pszSection, PCSTR pszBackupDir, PCSTR pszBaseBackupFile, DWORD dwFlags);
111 HRESULT WINAPI GetVersionFromFile(LPSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion);
112 HRESULT WINAPI GetVersionFromFileEx(LPSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion);
113 BOOL WINAPI IsNTAdmin(DWORD,LPDWORD);
114 INT WINAPI LaunchINFSection(HWND,HINSTANCE,LPSTR,INT);
115 HRESULT WINAPI LaunchINFSectionEx(HWND,HINSTANCE,LPSTR,INT);
116 DWORD WINAPI NeedRebootInit(VOID);
117 BOOL WINAPI NeedReboot(DWORD dwRebootCheck);
118 HRESULT WINAPI RegInstall(HMODULE hm, LPCSTR pszSection, LPCSTRTABLE pstTable);
119 HRESULT WINAPI RegRestoreAll(HWND hWnd, PSTR pszTitleString, HKEY hkBackupKey);
120 HRESULT WINAPI RegSaveRestore(HWND hWnd, PCSTR pszTitleString, HKEY hkBackupKey,
121      PCSTR pcszRootKey, PCSTR pcszSubKey, PCSTR pcszValueName, DWORD dwFlags);
122 HRESULT WINAPI RegSaveRestoreOnINF(HWND hWnd, PCSTR pszTitle, PCSTR pszINF,
123      PCSTR pszSection, HKEY hHKLMBackKey, HKEY hHKCUBackKey, DWORD dwFlags);
124 HRESULT WINAPI RunSetupCommand(HWND hWnd,
125      LPCSTR szCmdName, LPCSTR szInfSection, LPCSTR szDir, LPCSTR lpszTitle,
126      HANDLE *phEXE, DWORD dwFlags, LPVOID pvReserved);
127 HRESULT WINAPI TranslateInfString(PCSTR pszInfFilename, PCSTR pszInstallSection,
128      PCSTR pszTranslateSection, PCSTR pszTranslateKey, PSTR pszBuffer,
129      DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved);
130
131 #ifdef __cplusplus
132 }
133 #endif
134
135 #endif /* __WINE_ADVPUB_H */