Partial implementation of the Microsoft Installer (msi.dll).
[wine] / include / msiquery.h
1 /*
2  * Copyright (C) 2002 Mike McCormack
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
19 #ifndef __WINE_MSIQUERY_H
20 #define __WINE_MSIQUERY_H
21
22 #include "msi.h"
23
24 typedef enum tagMSICONDITION
25 {
26     MSICONDITION_FALSE = 0,
27     MSICONDITION_TRUE  = 1,
28     MSICONDITION_NONE  = 2,
29     MSICONDITION_ERROR = 3,
30 } MSICONDITION;
31
32 #define MSI_NULL_INTEGER 0x80000000
33
34 typedef enum tagMSICOLINFO
35 {
36     MSICOLINFO_NAMES = 0,
37     MSICOLINFO_TYPES = 1
38 } MSICOLINFO;
39
40 typedef enum tagMSIMODIFY
41 {
42     MSIMODIFY_REFRESH = 0,
43     MSIMODIFY_INSERT = 1,
44     MSIMODIFY_UPDATE = 2,
45     MSIMODIFY_ASSIGN = 3,
46     MSIMODIFY_REPLACE = 4,
47     MSIMODIFY_MERGE = 5,
48     MSIMODIFY_DELETE = 6,
49     MSIMODIFY_INSERT_TEMPORARY = 7,
50     MSIMODIFY_VALIDATE = 8,
51     MSIMODIFY_VALIDATE_NEW = 9,
52     MSIMODIFY_VALIDATE_FIELD = 10,
53     MSIMODIFY_VALIDATE_DELETE = 11
54 } MSIMODIFY;
55
56 #define MSI_NULL_INTEGER 0x80000000
57
58 /* view manipulation */
59 UINT WINAPI MsiViewFetch(MSIHANDLE,MSIHANDLE*);
60 UINT WINAPI MsiViewExecute(MSIHANDLE,MSIHANDLE);
61 UINT WINAPI MsiViewClose(MSIHANDLE);
62 UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE,LPCSTR,MSIHANDLE*);
63 UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
64
65 /* record manipulation */
66 MSIHANDLE WINAPI MsiCreateRecord(unsigned int);
67 UINT WINAPI MsiRecordClearData(MSIHANDLE);
68 UINT WINAPI MsiRecordSetInteger(MSIHANDLE,unsigned int,int);
69 UINT WINAPI MsiRecordSetStringA(MSIHANDLE,unsigned int,LPCSTR);
70 UINT WINAPI MsiRecordSetStringW(MSIHANDLE,unsigned int,LPCWSTR);
71 UINT WINAPI MsiRecordGetStringA(MSIHANDLE,unsigned int,LPSTR,DWORD*);
72 UINT WINAPI MsiRecordGetStringW(MSIHANDLE,unsigned int,LPWSTR,DWORD*);
73 UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE);
74 int WINAPI MsiRecordGetInteger(MSIHANDLE,unsigned int);
75 UINT WINAPI MsiRecordDataSize(MSIHANDLE,unsigned int);
76 BOOL WINAPI MsiRecordIsNull(MSIHANDLE,unsigned int);
77 UINT WINAPI MsiFormatRecordA(MSIHANDLE,MSIHANDLE,LPSTR,DWORD*);
78 UINT WINAPI MsiFormatRecordW(MSIHANDLE,MSIHANDLE,LPWSTR,DWORD*);
79 UINT WINAPI MsiRecordSetStreamA(MSIHANDLE,unsigned int,LPCSTR);
80 UINT WINAPI MsiRecordSetStreamW(MSIHANDLE,unsigned int,LPCWSTR);
81 UINT WINAPI MsiRecordReadStream(MSIHANDLE,unsigned int,char*,DWORD *);
82
83 UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE,LPCSTR,MSIHANDLE*);
84 UINT WINAPI MsiDatabaseGetPrimaryKeysW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
85
86 /* installing */
87 UINT WINAPI MsiDoActionA(MSIHANDLE,LPCSTR );
88 UINT WINAPI MsiDoActionW(MSIHANDLE,LPCWSTR );
89
90 /* database transforms */
91 UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE,LPCSTR,int);
92 UINT WINAPI MsiDatabaseApplyTransformW(MSIHANDLE,LPCWSTR,int);
93 UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE,MSIHANDLE,LPCSTR,int,int);
94 UINT WINAPI MsiDatabaseGenerateTransformW(MSIHANDLE,MSIHANDLE,LPCWSTR,int,int);
95
96 UINT WINAPI MsiDatabaseCommit(MSIHANDLE);
97
98 #endif /* __WINE_MSIQUERY_H */