msi: Make MsiGetMode() RPC-compatible.
[wine.git] / dlls / msi / winemsi.idl
blob7282c771a9cf7a936176ae39b5be81f8ea38250d
1 /*
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
22 import "objidl.idl";
24 cpp_quote("#if 0")
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
37 cpp_quote("#endif")
38 cpp_quote("#include \"msiquery.h\"")
40 struct wire_field {
41 unsigned int type;
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;
47 } u;
48 int len;
51 struct wire_record {
52 unsigned int count;
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 BOOL remote_GetMode( [in] MSIHANDLE hinst, [in] MSIRUNMODE mode );
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 );