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
21 #pragma makedep client
22 #pragma makedep server
27 typedef unsigned long MSIHANDLE
;
28 typedef int INSTALLMESSAGE
;
29 typedef int MSICONDITION
;
30 typedef int MSIRUNMODE
;
31 typedef int INSTALLSTATE
;
32 typedef int MSICOLINFO
;
33 typedef int MSIMODIFY
;
34 typedef int MSICOSTTREE
;
35 typedef int MSIDBERROR
;
37 #define MSIFIELD_NULL
0
38 #define MSIFIELD_INT
1
39 #define MSIFIELD_WSTR
3
40 #define MSIFIELD_STREAM
4
42 cpp_quote
("#include \"msiquery.h\"")
46 [switch_is(type
)] union {
47 [case(MSIFIELD_NULL
)] ;
48 [case(MSIFIELD_INT
)] int iVal
;
49 [case(MSIFIELD_WSTR
), string] LPWSTR szwVal
;
50 [case(MSIFIELD_STREAM
)] IStream
*stream
;
55 /* compatible with MSIRECORD minus header */
59 [size_is(count
+1)] struct wire_field fields
[];
63 uuid(56D58B64
-8780-4c22
-A8BC
-8B0B29E4A9F8
),
64 implicit_handle
(handle_t rpc_handle
)
66 interface IWineMsiRemote
68 UINT remote_ViewClose
( [in] MSIHANDLE view
);
69 UINT remote_ViewExecute
( [in] MSIHANDLE view
, [in, unique] struct wire_record
*record
);
70 UINT remote_ViewFetch
( [in] MSIHANDLE view
, [out] struct wire_record
**record
);
71 UINT remote_ViewGetColumnInfo
( [in] MSIHANDLE view
, [in] MSICOLINFO info
, [out] struct wire_record
**record
);
72 MSIDBERROR remote_ViewGetError
( [in] MSIHANDLE view
, [out, string] LPWSTR
*column
);
73 UINT remote_ViewModify
( [in] MSIHANDLE view
, [in] MSIMODIFY mode
,
74 [in] struct wire_record
*record
, [out] struct wire_record
**refreshed
);
76 MSICONDITION remote_DatabaseIsTablePersistent
( [in] MSIHANDLE db
, [in] LPCWSTR table
);
77 UINT remote_DatabaseGetPrimaryKeys
( [in] MSIHANDLE db
, [in, string] LPCWSTR table
, [out] struct wire_record
**keys
);
78 UINT remote_DatabaseGetSummaryInformation
( [in] MSIHANDLE db
, [in] UINT updatecount
, [out] MSIHANDLE
*suminfo
);
79 UINT remote_DatabaseOpenView
( [in] MSIHANDLE db
, [in, string] LPCWSTR query
, [out] MSIHANDLE
*view
);
81 UINT remote_SummaryInfoGetPropertyCount
( [in] MSIHANDLE suminfo
, [out] UINT
*count
);
82 UINT remote_SummaryInfoGetProperty
( [in] MSIHANDLE suminfo
, [in] UINT property
, [out] UINT
*type
, [out] INT *value
,
83 [out] FILETIME
*ft
, [out, string] LPWSTR
*buf
);
85 MSIHANDLE remote_GetActiveDatabase
( [in] MSIHANDLE hinst
);
86 UINT remote_GetProperty
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR property
, [out, string] LPWSTR
*value
, [out] DWORD
*size
);
87 UINT remote_SetProperty
( [in] MSIHANDLE hinst
, [in, string, unique] LPCWSTR property
, [in, string, unique] LPCWSTR value
);
88 int remote_ProcessMessage
( [in] MSIHANDLE hinst
, [in] INSTALLMESSAGE
message, [in] struct wire_record
*record
);
89 UINT remote_DoAction
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR action
);
90 UINT remote_Sequence
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR table
, [in] int sequence
);
91 UINT remote_GetTargetPath
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR folder
, [out, string] LPWSTR
*value
);
92 UINT remote_SetTargetPath
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR folder
, [in, string] LPCWSTR value
);
93 UINT remote_GetSourcePath
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR folder
, [out, string] LPWSTR
*value
);
94 BOOL remote_GetMode
( [in] MSIHANDLE hinst
, [in] MSIRUNMODE mode
);
95 UINT remote_SetMode
( [in] MSIHANDLE hinst
, [in] MSIRUNMODE mode
, [in] BOOL state
);
96 UINT remote_GetFeatureState
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR feature
, [out] INSTALLSTATE
*installed
, [out] INSTALLSTATE
*action
);
97 UINT remote_SetFeatureState
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR feature
, [in] INSTALLSTATE state
);
98 UINT remote_GetComponentState
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR component
, [out] INSTALLSTATE
*installed
, [out] INSTALLSTATE
*action
);
99 UINT remote_SetComponentState
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR component
, [in] INSTALLSTATE state
);
100 LANGID remote_GetLanguage
( [in] MSIHANDLE hinst
);
101 UINT remote_SetInstallLevel
( [in] MSIHANDLE hinst
, [in] int level
);
102 UINT remote_FormatRecord
( [in] MSIHANDLE hinst
, [in] struct wire_record
*record
, [out, string] LPWSTR
*value
);
103 MSICONDITION remote_EvaluateCondition
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR condition
);
104 UINT remote_GetFeatureCost
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR feature
, [in] MSICOSTTREE cost_tree
, [in] INSTALLSTATE state
, [out] INT *cost
);
105 UINT remote_EnumComponentCosts
( [in] MSIHANDLE hinst
, [in, string, unique] LPCWSTR component
, [in] DWORD index
, [in] INSTALLSTATE state
,
106 [out, string, size_is(3)] LPWSTR drive
, [out] INT *cost
, [out] INT *temp
);
108 UINT remote_GetActionInfo
( [in] const GUID
*guid
, [out, string] WCHAR
**action
, [out] int *type
, [out, string] WCHAR
**dllname,
109 [out, string] char **function
, [out] MSIHANDLE
*hinst
);
110 UINT remote_CloseHandle
( [in] MSIHANDLE
handle );