2007-01-26 12:14:58 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2007 Mike McCormack
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
2007-05-01 01:53:49 +00:00
|
|
|
#include "msiserver_dispids.h"
|
2007-01-26 12:14:58 +00:00
|
|
|
import "unknwn.idl";
|
|
|
|
import "wtypes.idl";
|
|
|
|
import "objidl.idl";
|
|
|
|
import "oaidl.idl";
|
|
|
|
|
|
|
|
[ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
|
|
|
|
library WindowsInstaller
|
|
|
|
{
|
|
|
|
dispinterface Installer;
|
|
|
|
dispinterface Record;
|
|
|
|
dispinterface Session;
|
|
|
|
dispinterface Database;
|
|
|
|
dispinterface SummaryInfo;
|
|
|
|
dispinterface View;
|
|
|
|
dispinterface UIPreview;
|
|
|
|
dispinterface FeatureInfo;
|
|
|
|
dispinterface RecordList;
|
|
|
|
dispinterface StringList;
|
|
|
|
dispinterface Product;
|
|
|
|
dispinterface Patch;
|
|
|
|
|
2007-05-07 22:50:30 +00:00
|
|
|
typedef enum {
|
|
|
|
msiInstallStateNotUsed = -7,
|
|
|
|
msiInstallStateBadConfig = -6,
|
|
|
|
msiInstallStateIncomplete = -5,
|
|
|
|
msiInstallStateSourceAbsent = -4,
|
|
|
|
msiInstallStateInvalidArg = -2,
|
|
|
|
msiInstallStateUnknown = -1,
|
|
|
|
msiInstallStateBroken = 0,
|
|
|
|
msiInstallStateAdvertised = 1,
|
|
|
|
msiInstallStateRemoved = 1,
|
|
|
|
msiInstallStateAbsent = 2,
|
|
|
|
msiInstallStateLocal = 3,
|
|
|
|
msiInstallStateSource = 4,
|
|
|
|
msiInstallStateDefault = 5
|
|
|
|
} MsiInstallState;
|
|
|
|
|
2007-01-26 12:14:58 +00:00
|
|
|
[ uuid(000C1090-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface Installer
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_INSTALLER_OPENPACKAGE)]
|
|
|
|
Session* OpenPackage(
|
2007-05-07 22:49:17 +00:00
|
|
|
[in] VARIANT PackagePath,
|
|
|
|
[in, optional, defaultvalue(0)] long Options);
|
2007-05-10 20:40:28 +00:00
|
|
|
[id(DISPID_INSTALLER_REGISTRYVALUE), propget]
|
|
|
|
BSTR RegistryValue(
|
|
|
|
[in] VARIANT Root,
|
|
|
|
[in] BSTR Key,
|
|
|
|
[in, optional] VARIANT Value);
|
2007-05-07 22:50:30 +00:00
|
|
|
[id(DISPID_INSTALLER_PRODUCTSTATE), propget]
|
|
|
|
MsiInstallState ProductState(
|
|
|
|
[in] BSTR Product);
|
|
|
|
[id(DISPID_INSTALLER_PRODUCTS), propget]
|
|
|
|
StringList *Products();
|
2007-01-26 12:14:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C1093-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface Record
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_RECORD_STRINGDATA), propget]
|
2007-05-07 22:49:17 +00:00
|
|
|
BSTR StringData([in] long Field);
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_RECORD_STRINGDATA), propput]
|
|
|
|
void StringData(
|
2007-05-07 22:49:17 +00:00
|
|
|
[in] long Field,
|
2007-05-01 01:53:49 +00:00
|
|
|
[in] BSTR rhs);
|
2007-01-26 12:14:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C1095-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface StringList
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
2007-05-07 22:50:30 +00:00
|
|
|
[id(DISPID_STRINGLIST_ITEM), propget]
|
|
|
|
BSTR Item(long Index);
|
|
|
|
[id(DISPID_STRINGLIST_COUNT), propget]
|
|
|
|
long Count();
|
2007-01-26 12:14:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C1096-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface RecordList
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C109A-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface UIPreview
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C109B-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface SummaryInfo
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C109C-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface View
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_VIEW_EXECUTE)]
|
2007-05-07 22:49:17 +00:00
|
|
|
void Execute([in, optional, defaultvalue(0)] Record *Params);
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_VIEW_FETCH)]
|
|
|
|
Record* Fetch();
|
|
|
|
[id(DISPID_VIEW_CLOSE)]
|
|
|
|
void Close();
|
2007-01-26 12:14:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C109D-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface Database
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_DATABASE_OPENVIEW)]
|
2007-05-07 22:49:17 +00:00
|
|
|
View* OpenView([in] BSTR Sql);
|
2007-01-26 12:14:58 +00:00
|
|
|
}
|
|
|
|
|
2007-05-01 01:53:49 +00:00
|
|
|
typedef enum {
|
|
|
|
msiDoActionStatusNoAction = 0,
|
|
|
|
msiDoActionStatusSuccess = 1,
|
|
|
|
msiDoActionStatusUserExit = 2,
|
|
|
|
msiDoActionStatusFailure = 3,
|
|
|
|
msiDoActionStatusSuspend = 4,
|
|
|
|
msiDoActionStatusFinished = 5,
|
|
|
|
msiDoActionStatusWrongState = 6,
|
|
|
|
msiDoActionStatusBadActionData = 7
|
|
|
|
} MsiDoActionStatus;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
msiRunModeAdmin = 0,
|
|
|
|
msiRunModeAdvertise = 1,
|
|
|
|
msiRunModeMaintenance = 2,
|
|
|
|
msiRunModeRollbackEnabled = 3,
|
|
|
|
msiRunModeLogEnabled = 4,
|
|
|
|
msiRunModeOperations = 5,
|
|
|
|
msiRunModeRebootAtEnd = 6,
|
|
|
|
msiRunModeRebootNow = 7,
|
|
|
|
msiRunModeCabinet = 8,
|
|
|
|
msiRunModeSourceShortNames = 9,
|
|
|
|
msiRunModeTargetShortNames = 10,
|
|
|
|
msiRunModeWindows9x = 12,
|
|
|
|
msiRunModeZawEnabled = 13,
|
|
|
|
msiRunModeScheduled = 16,
|
|
|
|
msiRunModeRollback = 17,
|
|
|
|
msiRunModeCommit = 18
|
|
|
|
} MsiRunMode;
|
|
|
|
|
2007-01-26 12:14:58 +00:00
|
|
|
[ uuid(000C109E-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface Session
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
2007-05-05 04:18:40 +00:00
|
|
|
[id(DISPID_SESSION_INSTALLER), propget]
|
|
|
|
Installer *Installer();
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_SESSION_PROPERTY), propget]
|
2007-05-07 22:49:17 +00:00
|
|
|
BSTR Property([in] BSTR Name);
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_SESSION_PROPERTY), propput]
|
|
|
|
void Property(
|
2007-05-07 22:49:17 +00:00
|
|
|
[in] BSTR Name,
|
2007-05-01 01:53:49 +00:00
|
|
|
[in] BSTR rhs);
|
|
|
|
[id(DISPID_SESSION_LANGUAGE), propget]
|
|
|
|
long Language();
|
|
|
|
[id(DISPID_SESSION_MODE), propget]
|
2007-05-07 22:49:17 +00:00
|
|
|
VARIANT_BOOL Mode([in] MsiRunMode Flag);
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_SESSION_MODE), propput]
|
|
|
|
void Mode(
|
2007-05-07 22:49:17 +00:00
|
|
|
[in] MsiRunMode Flag,
|
2007-05-01 01:53:49 +00:00
|
|
|
[in] VARIANT_BOOL rhs);
|
|
|
|
[id(DISPID_SESSION_DATABASE), propget]
|
|
|
|
Database* Database();
|
|
|
|
[id(DISPID_SESSION_DOACTION)]
|
2007-05-07 22:49:17 +00:00
|
|
|
MsiDoActionStatus DoAction([in] BSTR Action);
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_SESSION_FEATURECURRENTSTATE), propget]
|
2007-05-07 22:49:17 +00:00
|
|
|
MsiInstallState FeatureCurrentState([in] BSTR Feature);
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_SESSION_FEATUREREQUESTSTATE), propget]
|
2007-05-07 22:49:17 +00:00
|
|
|
MsiInstallState FeatureRequestState([in] BSTR Feature);
|
2007-05-01 01:53:49 +00:00
|
|
|
[id(DISPID_SESSION_FEATUREREQUESTSTATE), propput]
|
|
|
|
void FeatureRequestState(
|
2007-05-07 22:49:17 +00:00
|
|
|
[in] BSTR Feature,
|
2007-05-01 01:53:49 +00:00
|
|
|
[in] MsiInstallState rhs);
|
|
|
|
[id(DISPID_SESSION_SETINSTALLLEVEL)]
|
2007-05-07 22:49:17 +00:00
|
|
|
void SetInstallLevel([in] long Level);
|
2007-01-26 12:14:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C109F-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface FeatureInfo
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C10A0-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface Product
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
|
|
|
}
|
|
|
|
|
|
|
|
[ uuid(000C10A1-0000-0000-C000-000000000046) ]
|
|
|
|
dispinterface Patch
|
|
|
|
{
|
|
|
|
properties:
|
|
|
|
methods:
|
|
|
|
}
|
|
|
|
}
|