Change REFIID to IID* for stack declarations to avoid initializers
[wine] / include / msiquery.h
1 /*
2  * Copyright (C) 2002,2003 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 #define MSIDBOPEN_READONLY (LPCTSTR)0
59 #define MSIDBOPEN_TRANSACT (LPCTSTR)1
60 #define MSIDBOPEN_DIRECT   (LPCTSTR)2
61 #define MSIDBOPEN_CREATE   (LPCTSTR)3
62
63
64 /* view manipulation */
65 UINT WINAPI MsiViewFetch(MSIHANDLE,MSIHANDLE*);
66 UINT WINAPI MsiViewExecute(MSIHANDLE,MSIHANDLE);
67 UINT WINAPI MsiViewClose(MSIHANDLE);
68 UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE,LPCSTR,MSIHANDLE*);
69 UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
70 #define     MsiDatabaseOpenView WINELIB_NAME_AW(MsiDatabaseOpenView)
71
72 /* record manipulation */
73 MSIHANDLE WINAPI MsiCreateRecord(unsigned int);
74 UINT WINAPI MsiRecordClearData(MSIHANDLE);
75 UINT WINAPI MsiRecordSetInteger(MSIHANDLE,unsigned int,int);
76 UINT WINAPI MsiRecordSetStringA(MSIHANDLE,unsigned int,LPCSTR);
77 UINT WINAPI MsiRecordSetStringW(MSIHANDLE,unsigned int,LPCWSTR);
78 #define     MsiRecordSetString WINELIB_NAME_AW(MsiRecordSetString)
79 UINT WINAPI MsiRecordGetStringA(MSIHANDLE,unsigned int,LPSTR,DWORD*);
80 UINT WINAPI MsiRecordGetStringW(MSIHANDLE,unsigned int,LPWSTR,DWORD*);
81 #define     MsiRecordGetString WINELIB_NAME_AW(MsiRecordGetString)
82 UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE);
83 int WINAPI MsiRecordGetInteger(MSIHANDLE,unsigned int);
84 UINT WINAPI MsiRecordDataSize(MSIHANDLE,unsigned int);
85 BOOL WINAPI MsiRecordIsNull(MSIHANDLE,unsigned int);
86 UINT WINAPI MsiFormatRecordA(MSIHANDLE,MSIHANDLE,LPSTR,DWORD*);
87 UINT WINAPI MsiFormatRecordW(MSIHANDLE,MSIHANDLE,LPWSTR,DWORD*);
88 #define     MsiFormatRecord WINELIB_NAME_AW(MsiFormatRecord)
89 UINT WINAPI MsiRecordSetStreamA(MSIHANDLE,unsigned int,LPCSTR);
90 UINT WINAPI MsiRecordSetStreamW(MSIHANDLE,unsigned int,LPCWSTR);
91 #define     MsiRecordSetStream WINELIB_NAME_AW(MsiRecordSetStream)
92 UINT WINAPI MsiRecordReadStream(MSIHANDLE,unsigned int,char*,DWORD *);
93
94 UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE,LPCSTR,MSIHANDLE*);
95 UINT WINAPI MsiDatabaseGetPrimaryKeysW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
96 #define     MsiDatabaseGetPrimaryKeys WINELIB_NAME_AW(MsiDatabaseGetPrimaryKeys)
97
98 /* installing */
99 UINT WINAPI MsiDoActionA(MSIHANDLE,LPCSTR );
100 UINT WINAPI MsiDoActionW(MSIHANDLE,LPCWSTR );
101 #define     MsiDoAction WINELIB_NAME_AW(MsiDoAction)
102
103 /* database transforms */
104 UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE,LPCSTR,int);
105 UINT WINAPI MsiDatabaseApplyTransformW(MSIHANDLE,LPCWSTR,int);
106 #define     MsiDatabaseApplyTransform WINELIB_NAME_AW(MsiDatabaseApplyTransform)
107 UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE,MSIHANDLE,LPCSTR,int,int);
108 UINT WINAPI MsiDatabaseGenerateTransformW(MSIHANDLE,MSIHANDLE,LPCWSTR,int,int);
109 #define     MsiDatabaseGenerateTransform WINELIB_NAME_AW(MsiDatabaseGenerateTransform)
110
111 UINT WINAPI MsiDatabaseCommit(MSIHANDLE);
112
113 /* install state */
114 UINT WINAPI MsiGetFeatureStateA(MSIHANDLE,LPSTR,INSTALLSTATE*,INSTALLSTATE*);
115 UINT WINAPI MsiGetFeatureStateW(MSIHANDLE,LPWSTR,INSTALLSTATE*,INSTALLSTATE*);
116 #define     MsiGetFeatureState WINELIB_NAME_AW(MsiGetFeatureState)
117 UINT WINAPI MsiGetComponentStateA(MSIHANDLE,LPSTR,INSTALLSTATE*,INSTALLSTATE*);
118 UINT WINAPI MsiGetComponentStateW(MSIHANDLE,LPWSTR,INSTALLSTATE*,INSTALLSTATE*);
119 #define     MsiGetComponentState WINELIB_NAME_AW(MsiGetComponentState)
120
121 MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE,LPCSTR);
122 MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE,LPCWSTR);
123 #define     MsiEvaluateCondition WINELIB_NAME_AW(MsiEvaluateCondition)
124
125 /* property functions */
126 UINT WINAPI MsiGetPropertyA(MSIHANDLE hInstall, LPCSTR szName,
127                            LPSTR szValueBuf, DWORD* pchValueBuf);
128 UINT WINAPI MsiGetPropertyW(MSIHANDLE hInstall, LPCWSTR szName,
129                            LPWSTR szValueBuf, DWORD* pchValueBuf);
130 #define     MsiGetProperty WINELIB_NAME_AW(MsiGetProperty)
131
132 UINT WINAPI MsiSetPropertyA(MSIHANDLE hInstall, LPCSTR szName, LPCSTR szValue);
133 UINT WINAPI MsiSetPropertyW(MSIHANDLE hInstall, LPCWSTR szName, 
134                               LPCWSTR szValue);
135 #define     MsiSetProperty WINELIB_NAME_AW(MsiSetProperty)
136
137 UINT WINAPI MsiGetTargetPathA(MSIHANDLE,LPCSTR,LPSTR,DWORD*);
138 UINT WINAPI MsiGetTargetPathW(MSIHANDLE,LPCWSTR,LPWSTR,DWORD*);
139 #define     MsiGetTargetPath WINELIB_NAME_AW(MsiGetTargetPath)
140
141 UINT WINAPI MsiSetTargetPathA(MSIHANDLE, LPCSTR, LPCSTR);
142 UINT WINAPI MsiSetTargetPathW(MSIHANDLE, LPCWSTR, LPCWSTR);
143 #define     MsiSetTargetPath WINELIB_NAME_AW(MsiSetTargetPath)
144
145 UINT WINAPI MsiGetSourcePathA(MSIHANDLE,LPCSTR,LPSTR,DWORD*);
146 UINT WINAPI MsiGetSourcePathW(MSIHANDLE,LPCWSTR,LPWSTR,DWORD*);
147 #define     MsiGetSourcePath WINELIB_NAME_AW(MsiGetSourcePath)
148
149 MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE);
150
151 UINT WINAPI MsiViewGetColumnInfo( MSIHANDLE, MSICOLINFO, MSIHANDLE*);
152 INT WINAPI MsiProcessMessage( MSIHANDLE, INSTALLMESSAGE, MSIHANDLE);
153
154 UINT WINAPI MsiSetFeatureStateA( MSIHANDLE, LPCSTR, INSTALLSTATE);
155 UINT WINAPI MsiSetFeatureStateW( MSIHANDLE, LPCWSTR, INSTALLSTATE);
156 #define     MsiSetFeatureState WINELIB_NAME_AW(MsiSetFeatureState)
157
158 #endif /* __WINE_MSIQUERY_H */