218 lines
9.8 KiB
Plaintext
218 lines
9.8 KiB
Plaintext
|
|
import "unknwn.idl";
|
|
import "messag.idl";
|
|
import "icust.idl";
|
|
|
|
cpp_quote("/****************************************************************************")
|
|
cpp_quote(" server.h")
|
|
cpp_quote("")
|
|
cpp_quote(" GENERATED FILE!!! DO NOT EDIT!!!")
|
|
cpp_quote(" ")
|
|
cpp_quote(" Owner: DavidMck")
|
|
cpp_quote(" Copyright (C) Microsoft Corporation, 1998 - 1999")
|
|
cpp_quote(" ")
|
|
cpp_quote(" This file contains the exported interfaces for Darwin's Server marshalling.")
|
|
cpp_quote(" It is generated by midl.exe from server.idl")
|
|
cpp_quote("****************************************************************************/")
|
|
|
|
cpp_quote("#ifndef SERVER_H")
|
|
cpp_quote("#define SERVER_H")
|
|
|
|
typedef enum iauthEnum // Authentication result enum
|
|
{
|
|
iauthAccept,
|
|
iauthReject,
|
|
iauthCantValidate,
|
|
iauthError
|
|
} iauthEnum;
|
|
|
|
// UI level, arg for IMsiEngine::Initialize, IMsiHandler::Initialize
|
|
typedef enum iuiEnum
|
|
{
|
|
iuiFull = 0, // 'F' complete UI functionality
|
|
iuiReduced, // 'R' non-progress related UI actions suppressed
|
|
iuiBasic, // 'B' internal engine UI, Message function only
|
|
iuiNone, // 'N' totally quiet UI
|
|
iuiNextEnum
|
|
} iuiEnum;
|
|
|
|
typedef enum ipackTypeEnum // type of package to authenticate
|
|
{
|
|
ipackTypePE, // Windows PE (exe or dll)
|
|
ipackTypeCAB, // Cabinet file
|
|
ipackTypeJava, // Java class file
|
|
ipackTypeOLE // OLE storage file
|
|
} ipackTypeEnum;
|
|
|
|
typedef enum iesEnum // return status from IMsiEngine::Sequence and DoAction
|
|
{
|
|
iesNoAction = 0, // action not invoked
|
|
iesSuccess = 1, // IDOK, completed actions successfully
|
|
iesUserExit = 2, // IDCANCEL, user terminated prematurely,$resume with next action
|
|
iesFailure = 3, // IDABORT, unrecoverable error occurred
|
|
iesSuspend = 4, // IDRETRY, sequence suspended, resume with same action
|
|
iesFinished = 5, // IDIGNORE, skip remaining actions
|
|
iesWrongState = 6, // calling sequence error, not in executable state
|
|
iesBadActionData = 7, // invalid Action table record data
|
|
iesInstallRunning = 8, // another install is in progress
|
|
iesNextEnum
|
|
} iesEnum;
|
|
|
|
typedef enum ireEnum // enumeration for 1st arg of CreateAndRunEngine
|
|
{
|
|
ireProductCode,
|
|
irePackagePath,
|
|
ireSubStorage,
|
|
ireDatabaseHandle,
|
|
ireInstallFinalize,
|
|
} ireEnum;
|
|
|
|
typedef enum iioEnum // various options flags passed to IMsiEngine::Initialize
|
|
{
|
|
iioUpgrade = 0x00000001,
|
|
iioChild = 0x00000002,
|
|
iioDisablePlatformValidation = 0x00000004,
|
|
iioEndDialog = 0x00000008,
|
|
iioCreatingAdvertiseScript = 0x00000010,
|
|
iioDisableRollback = 0x00000020,
|
|
iioMustAccessInstallerKey = 0x00000040, // Insist that we can access the installer key.
|
|
iioReinstallModePackage = 0x00000080,
|
|
iioClientEngine = 0x00000100, // Used to indicate that we have a client engine.
|
|
iioSimulateX86 = 0x00000200, // ignore current execution platform and use X86, only valid w/ iioCreatingAdvertiseScript
|
|
iioSimulateIA64 = 0x00000400, // ignore current execution platform and use IA64, only valid w/ iioCreatingAdvertiseScript
|
|
iioRestrictedEngine = 0x00000800, // create a "safe" engine that is not subject to machine state and cannot modify machine state
|
|
iioSimulateAMD64 = 0x00001000, // ignore current execution platform and use AMD64, only valid w/iioCreateAdvertiseScript
|
|
} iioEnum;
|
|
|
|
typedef enum isrcEnum // enumeration for sourcelist type to work with
|
|
{
|
|
isrcNet = 0,
|
|
isrcMedia = 1,
|
|
isrcURL = 2,
|
|
} isrcEnum;
|
|
|
|
typedef enum icacCustomActionContext // enumeration for types of custom action servers
|
|
{
|
|
icacFirst = 0,
|
|
icac32Impersonated = 0,
|
|
icac64Impersonated = 1,
|
|
icac32Elevated = 2,
|
|
icac64Elevated = 3,
|
|
icacNext = 4,
|
|
} icacCustomActionContext;
|
|
|
|
#ifdef UNICODE
|
|
typedef wchar_t ichar;
|
|
#else
|
|
typedef char ichar;
|
|
#endif //UNICODE
|
|
|
|
|
|
cpp_quote("#ifndef __cplusplus")
|
|
cpp_quote("typedef interface IMsiMessage IMsiMessage;")
|
|
cpp_quote("typedef interface IMsiCustomAction IMsiCustomAction;")
|
|
typedef IMsiMessage *REF_IMsiMessage;
|
|
cpp_quote("#else // __cplusplus")
|
|
cpp_quote("#define REF_IMsiMessage IMsiMessage&")
|
|
cpp_quote("#endif")
|
|
|
|
[
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(000C101C-0000-0000-c000-000000000046)
|
|
|
|
]
|
|
|
|
interface IMsiServer : IUnknown
|
|
{
|
|
typedef [unique] IMsiServer *PMSISERVER;
|
|
|
|
[local]
|
|
iesEnum InstallFinalize([in] iesEnum iesState, [in] REF_IMsiMessage riMessage, [in] boolean fUserChangedDuringInstall);
|
|
[call_as(InstallFinalize)]
|
|
HRESULT InstallFinalizeRemote([in] iesEnum iesState, [in] IMsiMessage* riMessage, [in] boolean fUserChangedDuringInstall, [out] iesEnum * iesRet);
|
|
|
|
[local]
|
|
IMsiRecord *SetLastUsedSource([in, string] const ichar *szProductCode, [in, string] const ichar *szPath,
|
|
[in] boolean fAddToList, [in] boolean fPatch);
|
|
[call_as(SetLastUsedSource)]
|
|
HRESULT SetLastUsedSourceRemote([in, string] const ichar *szProductCode, [in, string] const ichar *szPath,
|
|
[in] boolean fAddToList, [in] boolean fPatch, [out] int *pcb, [out, size_is(,*pcb)] char **pchRecordOut);
|
|
|
|
[local]
|
|
boolean RecordShutdownReason();
|
|
[call_as(RecordShutdownReason)]
|
|
HRESULT RecordShutdownReasonRemote([out] boolean *pfReturn);
|
|
|
|
[local]
|
|
boolean Reboot();
|
|
[call_as(Reboot)]
|
|
HRESULT RebootRemote([out] boolean *pfReturn);
|
|
|
|
[local]
|
|
int DoInstall([in] ireEnum ireProductCode, [in, string] const ichar *szProduct, [in, string, unique] const ichar *szAction,
|
|
[in, string, unique] const ichar *szCommandLine, [in, string, unique] const ichar *szLogFile,
|
|
[in] int iLogMode, [in] boolean fFlushEachLine, [in] REF_IMsiMessage riMessage, [in] iioEnum iioOptions);
|
|
[call_as(DoInstall)]
|
|
HRESULT DoInstallRemote([in] ireEnum ireProductCode, [in, string] const ichar *szProduct, [in, string, unique] const ichar *szAction,
|
|
[in, string, unique] const ichar *szCommandLine, [in, string, unique] const ichar *szLogFile,
|
|
[in] int iLogMode, [in] boolean fFlushEachLine, [in] IMsiMessage *riMessage, [in] iioEnum iioOptions, [out] int *retVal);
|
|
|
|
[local]
|
|
IMsiRecord *RegisterUser([in, string] const ichar *szProductCode, [in, string, unique] const ichar *szUserName,
|
|
[in, string, unique] const ichar *szCompany, [in, string, unique] const ichar *szProductID);
|
|
[call_as(RegisterUser)]
|
|
HRESULT RegisterUserRemote([in, string] const ichar *szProductCode, [in, string, unique] const ichar *szUserName,
|
|
[in, string, unique] const ichar *szCompany, [in, string, unique] const ichar *szProductID,
|
|
[out] int *pcb, [out, size_is(,*pcb)] char **pchRecordOut);
|
|
|
|
[local]
|
|
IMsiRecord *RemoveRunOnceEntry([in, string] const ichar *szEntry);
|
|
[call_as(RemoveRunOnceEntry)]
|
|
HRESULT RemoveRunOnceEntryRemote([in, string] const ichar *szProductCode,
|
|
[out] int *pcb, [out, size_is(,*pcb)] char **pchRecordOut);
|
|
|
|
[local]
|
|
boolean CleanupTempPackages([in] REF_IMsiMessage riMessage);
|
|
[call_as(CleanupTempPackages)]
|
|
HRESULT CleanupTempPackagesRemote([in] IMsiMessage *riMessage, [out] boolean *pfReturn);
|
|
|
|
[local]
|
|
UINT SourceListClearByType([in, string] const ichar *szProductCode, [in, string, unique] const ichar *szUserName,
|
|
[in] isrcEnum isrcType);
|
|
[call_as(SourceListClearByType)]
|
|
HRESULT SourceListClearByTypeRemote([in, string] const ichar *szProductCode, [in, string, unique] const ichar *szUserName,
|
|
[in] isrcEnum isrcType, [out] unsigned int *retVal);
|
|
|
|
[local]
|
|
UINT SourceListAddSource([in, string] const ichar *szProductCode, [in, string, unique] const ichar *szUserName, [in] isrcEnum isrcType,
|
|
[in, string] const ichar *szSource);
|
|
[call_as(SourceListAddSource)]
|
|
HRESULT SourceListAddSourceRemote([in, string] const ichar *szProductCode, [in, string, unique] const ichar *szUserName, [in] isrcEnum isrcType,
|
|
[in, string] const ichar *szSource, [out] unsigned int *retVal);
|
|
|
|
[local]
|
|
UINT SourceListClearLastUsed([in, string] const ichar *szProductCode, [in, string, unique] const ichar *szUserName);
|
|
[call_as(SourceListClearLastUsed)]
|
|
HRESULT SourceListClearLastUsedRemote([in, string] const ichar *szProductCode, [in, string, unique] const ichar *szUserName, [out] unsigned int *retVal);
|
|
|
|
[local]
|
|
UINT RegisterCustomActionServer([in,out] icacCustomActionContext* picacContext, [in] const unsigned char *rgchCookie, [in] const int cbCookie,
|
|
[in, unique] IMsiCustomAction *piCustomAction, [out] unsigned long *dwProcessId, [out] IMsiRemoteAPI **piRemoteAPI, [out] DWORD *dwPrivileges);
|
|
[call_as(RegisterCustomActionServer)]
|
|
HRESULT RegisterCustomActionServerRemote([in, out] icacCustomActionContext* picacContext, [in, size_is(cbCookie)] const unsigned char *rgchCookie, [in] const int cbCookie, [in, unique] IMsiCustomAction *piCustomAction, [out] unsigned long *dwProcessId,
|
|
[out] IMsiRemoteAPI **piRemoteAPI, [out] DWORD* pdwPrivileges, [out] unsigned int *retVal);
|
|
|
|
[local]
|
|
UINT CreateCustomActionServer([in] const icacCustomActionContext icacContext, [in] const unsigned long dwProcessId, [in, unique] IMsiRemoteAPI *piRemoteAPI,
|
|
[in, size_is(cchEnvironment)] const WCHAR* pvEnvironment, [in] DWORD cchEnvironment, [in] DWORD dwPrivileges, [out] unsigned char *rgchCookie, [in, out] int *cbCookie, [out] IMsiCustomAction **piCustomAction, [out] unsigned long *dwServerProcessId);
|
|
[call_as(CreateCustomActionServer)]
|
|
HRESULT CreateCustomActionServerRemote([in] const icacCustomActionContext icacContext, [in] const unsigned long dwProcessId, [in, unique] IMsiRemoteAPI *piRemoteAPI,
|
|
[in, size_is(cchEnvironment)] const WCHAR* pvEnvironment, [in] DWORD cchEnvironment, [in] DWORD dwPrivileges, [out, size_is(*cbCookie)] unsigned char *rgchCookie, [in, out] int *cbCookie, [out] IMsiCustomAction **piCustomAction, [out] unsigned long *dwServerProcessId, [out] unsigned int *retVal);
|
|
}
|
|
|
|
|
|
cpp_quote("#endif // SERVER_H")
|
|
|
|
|