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
;
31 #define MSIFIELD_NULL
0
32 #define MSIFIELD_INT
1
33 #define MSIFIELD_WSTR
3
34 #define MSIFIELD_STREAM
4
36 cpp_quote
("#include \"msiquery.h\"")
40 [switch_is(type
)] union {
41 [case(MSIFIELD_NULL
)] ;
42 [case(MSIFIELD_INT
)] int iVal
;
43 [case(MSIFIELD_WSTR
), string] LPWSTR szwVal
;
44 [case(MSIFIELD_STREAM
)] IStream
*stream
;
51 [size_is(count
+1)] struct wire_field fields
[];
55 uuid(56D58B64
-8780-4c22
-A8BC
-8B0B29E4A9F8
)
57 interface IWineMsiRemote
59 HRESULT remote_DatabaseIsTablePersistent
( [in] MSIHANDLE db
, [in] LPCWSTR table
, [out] MSICONDITION
*persistent
);
60 HRESULT remote_DatabaseGetPrimaryKeys
( [in] MSIHANDLE db
, [in] LPCWSTR table
, [out] MSIHANDLE
*keys
);
61 HRESULT remote_DatabaseGetSummaryInformation
( [in] MSIHANDLE db
, [in] UINT updatecount
, [out] MSIHANDLE
*suminfo
);
62 HRESULT remote_DatabaseOpenView
( [in] MSIHANDLE db
, [in] LPCWSTR query
, [out] MSIHANDLE
*view
);
64 HRESULT remote_GetActiveDatabase
( [in] MSIHANDLE hinst
, [out] MSIHANDLE
*handle );
65 UINT remote_GetProperty
( [in] MSIHANDLE hinst
, [in, string] LPCWSTR property
, [out, string] LPWSTR
*value
, [out] DWORD
*size
);
66 UINT remote_SetProperty
( [in] MSIHANDLE hinst
, [in, string, unique] LPCWSTR property
, [in, string, unique] LPCWSTR value
);
67 int remote_ProcessMessage
( [in] MSIHANDLE hinst
, [in] INSTALLMESSAGE
message, [in] struct wire_record
*record
);
68 HRESULT remote_DoAction
( [in] MSIHANDLE hinst
, [in] BSTR action
);
69 HRESULT remote_Sequence
( [in] MSIHANDLE hinst
, [in] BSTR table
, [in] int sequence
);
70 HRESULT remote_GetTargetPath
( [in] MSIHANDLE hinst
, [in] BSTR folder
, [out, size_is(*size
)] BSTR value
, [in, out] DWORD
*size
);
71 HRESULT remote_SetTargetPath
( [in] MSIHANDLE hinst
, [in] BSTR folder
, [in] BSTR value
);
72 HRESULT remote_GetSourcePath
( [in] MSIHANDLE hinst
, [in] BSTR folder
, [out, size_is(*size
)] BSTR value
, [in, out] DWORD
*size
);
73 HRESULT remote_GetMode
( [in] MSIHANDLE hinst
, [in] MSIRUNMODE mode
, [out] BOOL
*ret
);
74 HRESULT remote_SetMode
( [in] MSIHANDLE hinst
, [in] MSIRUNMODE mode
, [in] BOOL state
);
75 HRESULT remote_GetFeatureState
( [in] MSIHANDLE hinst
, [in] BSTR feature
, [out] INSTALLSTATE
*installed
, [out] INSTALLSTATE
*action
);
76 HRESULT remote_SetFeatureState
( [in] MSIHANDLE hinst
, [in] BSTR feature
, [in] INSTALLSTATE state
);
77 HRESULT remote_GetComponentState
( [in] MSIHANDLE hinst
, [in] BSTR component
, [out] INSTALLSTATE
*installed
, [out] INSTALLSTATE
*action
);
78 HRESULT remote_SetComponentState
( [in] MSIHANDLE hinst
, [in] BSTR component
, [in] INSTALLSTATE state
);
79 HRESULT remote_GetLanguage
( [in] MSIHANDLE hinst
, [out] LANGID
*language
);
80 HRESULT remote_SetInstallLevel
( [in] MSIHANDLE hinst
, [in] int level
);
81 HRESULT remote_FormatRecord
( [in] MSIHANDLE hinst
, [in] MSIHANDLE record
, [out] BSTR *value
);
82 HRESULT remote_EvaluateCondition
( [in] MSIHANDLE hinst
, [in] BSTR condition
);
83 HRESULT remote_GetFeatureCost
( [in] MSIHANDLE hinst
, [in] BSTR feature
, [in] INT cost_tree
, [in] INSTALLSTATE state
, [out] INT *cost
);
84 HRESULT remote_EnumComponentCosts
( [in] MSIHANDLE hinst
, [in] BSTR component
, [in] DWORD index
, [in] INSTALLSTATE state
,
85 [out, size_is(*buflen
)] BSTR drive
, [in, out] DWORD
*buflen
, [out] INT *cost
, [out] INT *temp
);
87 HRESULT remote_GetActionInfo
( [in] LPCGUID guid
, [out] INT *type
, [out] BSTR *dllname,
88 [out] BSTR *function
, [out] MSIHANDLE
*package
);
89 UINT remote_CloseHandle
( [in] MSIHANDLE
handle );