2 * Copyright (C) 2007 James Hawkins
3 * Copyright (C) 2018 Zebediah Figura
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #pragma makedep header
25 typedef unsigned long MSIHANDLE
;
26 typedef int INSTALLMESSAGE
;
27 typedef int MSICONDITION
;
28 typedef int MSIRUNMODE
;
29 typedef int INSTALLSTATE
;
30 typedef int MSICOLINFO
;
31 typedef int MSIMODIFY
;
33 #define MSIFIELD_NULL
0
34 #define MSIFIELD_INT
1
35 #define MSIFIELD_WSTR
3
36 #define MSIFIELD_STREAM
4
38 cpp_quote
("#include \"msiquery.h\"")
42 [switch_is(type
)] union {
43 [case(MSIFIELD_NULL
)] ;
44 [case(MSIFIELD_INT
)] int iVal
;
45 [case(MSIFIELD_WSTR
), string] LPWSTR szwVal
;
46 [case(MSIFIELD_STREAM
)] IStream
*stream
;
53 [size_is(count
+1)] struct wire_field fields
[];
57 uuid(56D58B64
-8780-4c22
-A8BC
-8B0B29E4A9F8
)
59 interface IWineMsiRemote
61 UINT remote_ViewClose
( [in] MSIHANDLE view
);
62 UINT remote_ViewExecute
( [in] MSIHANDLE view
, [in, unique] struct wire_record
*record
);
63 UINT remote_ViewFetch
( [in] MSIHANDLE view
, [out] struct wire_record
**record
);
64 UINT remote_ViewGetColumnInfo
( [in] MSIHANDLE view
, [in] MSICOLINFO info
, [out] struct wire_record
**record
);
65 UINT remote_ViewModify
( [in] MSIHANDLE view
, [in] MSIMODIFY mode
,
66 [in] struct wire_record
*record
, [out] struct wire_record
**refreshed
);
68 MSICONDITION remote_DatabaseIsTablePersistent
( [in] MSIHANDLE db
, [in] LPCWSTR table
);
69 UINT remote_DatabaseGetPrimaryKeys
( [in] MSIHANDLE db
, [in, string] LPCWSTR table
, [out] struct wire_record
**keys
);
70 UINT remote_DatabaseGetSummaryInformation
( [in] MSIHANDLE db
, [in] UINT updatecount
, [out] MSIHANDLE
*suminfo
);
71 UINT remote_DatabaseOpenView
( [in] MSIHANDLE db
, [in, string] LPCWSTR query
, [out] MSIHANDLE
*view
);
73 MSIHANDLE remote_GetActiveDatabase
( [in] MSIHANDLE hinst
);
74 UINT remote_GetProperty
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR property
, [out, string] LPWSTR
*value
, [out] DWORD
*size
);
75 UINT remote_SetProperty
( [in] MSIHANDLE hinst
, [in, string, unique] LPCWSTR property
, [in, string, unique] LPCWSTR value
);
76 int remote_ProcessMessage
( [in] MSIHANDLE hinst
, [in] INSTALLMESSAGE
message, [in] struct wire_record
*record
);
77 UINT remote_DoAction
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR action
);
78 UINT remote_Sequence
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR table
, [in] int sequence
);
79 UINT remote_GetTargetPath
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR folder
, [out, string] LPWSTR
*value
);
80 UINT remote_SetTargetPath
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR folder
, [in, string] LPCWSTR value
);
81 UINT remote_GetSourcePath
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR folder
, [out, string] LPWSTR
*value
);
82 HRESULT remote_GetMode
( [in] MSIHANDLE hinst
, [in] MSIRUNMODE mode
, [out] BOOL
*ret
);
83 HRESULT remote_SetMode
( [in] MSIHANDLE hinst
, [in] MSIRUNMODE mode
, [in] BOOL state
);
84 HRESULT remote_GetFeatureState
( [in] MSIHANDLE hinst
, [in] BSTR feature
, [out] INSTALLSTATE
*installed
, [out] INSTALLSTATE
*action
);
85 HRESULT remote_SetFeatureState
( [in] MSIHANDLE hinst
, [in] BSTR feature
, [in] INSTALLSTATE state
);
86 HRESULT remote_GetComponentState
( [in] MSIHANDLE hinst
, [in] BSTR component
, [out] INSTALLSTATE
*installed
, [out] INSTALLSTATE
*action
);
87 HRESULT remote_SetComponentState
( [in] MSIHANDLE hinst
, [in] BSTR component
, [in] INSTALLSTATE state
);
88 HRESULT remote_GetLanguage
( [in] MSIHANDLE hinst
, [out] LANGID
*language
);
89 HRESULT remote_SetInstallLevel
( [in] MSIHANDLE hinst
, [in] int level
);
90 HRESULT remote_FormatRecord
( [in] MSIHANDLE hinst
, [in] MSIHANDLE record
, [out] BSTR *value
);
91 HRESULT remote_EvaluateCondition
( [in] MSIHANDLE hinst
, [in] BSTR condition
);
92 HRESULT remote_GetFeatureCost
( [in] MSIHANDLE hinst
, [in] BSTR feature
, [in] INT cost_tree
, [in] INSTALLSTATE state
, [out] INT *cost
);
93 HRESULT remote_EnumComponentCosts
( [in] MSIHANDLE hinst
, [in] BSTR component
, [in] DWORD index
, [in] INSTALLSTATE state
,
94 [out, size_is(*buflen
)] BSTR drive
, [in, out] DWORD
*buflen
, [out] INT *cost
, [out] INT *temp
);
96 HRESULT remote_GetActionInfo
( [in] LPCGUID guid
, [out] INT *type
, [out] BSTR *dllname,
97 [out] BSTR *function
, [out] MSIHANDLE
*package
);
98 UINT remote_CloseHandle
( [in] MSIHANDLE
handle );