Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

203 lines
5.3 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation 1998.
//
// app.idl
//
// Methods to the application management service.
//
//--------------------------------------------------------------------------
[
uuid(8c7daf44-b6dc-11d1-9a4c-0020af6e7c57),
version(1.0)
]
interface appmgmt
{
cpp_quote("#ifndef GUID_DEFINED")
cpp_quote("#define GUID_DEFINED")
typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
cpp_quote("#endif // !GUID_DEFINED")
const unsigned long APPNAME = 1;
const unsigned long FILEEXT = 2;
const unsigned long PROGID = 3;
const unsigned long COMCLASS = 4;
typedef [string] wchar_t * PWSTR;
typedef unsigned long DWORD;
typedef unsigned short LANGID;
typedef struct _APPKEY
{
unsigned long Type;
unsigned long ProcessorArchitecture;
[switch_is(Type), switch_type(unsigned long)] union
{
[case(APPNAME)]
struct
{
PWSTR Name;
GUID PolicyId;
} AppName;
[case(FILEEXT)]
PWSTR FileExt;
[case(PROGID)]
PWSTR ProgId;
[case(COMCLASS)]
struct
{
GUID Clsid;
unsigned long ClsCtx;
} COMClass;
} uType;
} APPKEY;
const unsigned long APPINFOFLAG_BASICUI = 0x0001;
const unsigned long APPINFOFLAG_FULLUI = 0x0002;
const unsigned long APPINFOFLAG_ALREADYMANAGED = 0x0004;
const unsigned long APPINFOFLAG_ORPHAN = 0x0008;
const unsigned long APPINFOFLAG_UNINSTALL = 0x0010;
typedef [context_handle] void * PINSTALLCONTEXT;
void PINSTALLCONTEXT_rundown( PINSTALLCONTEXT pInstallContext );
typedef struct
{
PWSTR pwszDeploymentId;
PWSTR pwszDeploymentName;
PWSTR pwszGPOName;
PWSTR pwszProductCode;
PWSTR pwszDescriptor;
PWSTR pwszSetupCommand;
DWORD Flags;
} APPLICATION_INFO;
typedef struct
{
DWORD Products;
[size_is(Products)] APPLICATION_INFO * ApplicationInfo;
} UNINSTALL_APPS;
error_status_t
InstallBegin(
[in] handle_t hRpc,
[in] APPKEY * pAppType,
[out] PINSTALLCONTEXT * ppInstallContext,
[out] APPLICATION_INFO * pInstallInfo,
[out] UNINSTALL_APPS * pUninstallApps
);
error_status_t
InstallManageApp(
[in] PINSTALLCONTEXT pInstallContext,
[in] PWSTR pwszDeploymentId,
[in] DWORD RollbackStatus,
[out] boolean * pbInstall
);
error_status_t
InstallUnmanageApp(
[in] PINSTALLCONTEXT pInstallContext,
[in] PWSTR pwszDeploymentId,
[in] boolean bUnadvertiseOnly
);
error_status_t
InstallEnd(
[in] boolean bStatus,
[in,out] PINSTALLCONTEXT * ppInstallContext
);
error_status_t
ARPRemoveApp(
[in] handle_t hRpc,
[in] PWSTR pwszProductCode,
[in] DWORD ARPStatus
);
typedef struct
{
PWSTR pszPackageName;
PWSTR pszPublisher;
DWORD dwVersionHi;
DWORD dwVersionLo;
DWORD dwRevision;
GUID GpoId;
PWSTR pszPolicyName;
GUID ProductId;
LANGID Language;
PWSTR pszOwner;
PWSTR pszCompany;
PWSTR pszComments;
PWSTR pszContact;
PWSTR pszSupportUrl;
unsigned long dwPathType;
int bInstalled;
} MANAGED_APP;
typedef struct
{
DWORD Applications;
[size_is(Applications)] MANAGED_APP* rgApps;
} MANAGED_APPLIST;
error_status_t
GetManagedApps(
[in] handle_t hRpc,
[in, unique] GUID* pCategory,
[in] DWORD dwQueryFlags,
[in] DWORD dwInfoLevel,
[out] MANAGED_APPLIST* pAppList
);
error_status_t
RsopReportInstallFailure(
[in] PINSTALLCONTEXT pInstallContext,
[in] PWSTR pwszDeploymentId,
[in] DWORD dwEventId
);
typedef unsigned long LCID;
typedef PWSTR PWSTR_NOFREE;
typedef struct _APPCATEGORY
{
LCID Locale;
PWSTR_NOFREE pszDescription;
GUID AppCategoryId;
} APPCATEGORY;
typedef struct _APPCATEGORYLIST
{
DWORD cCategory;
[size_is(cCategory)] APPCATEGORY * pCategoryInfo;
} APPCATEGORYLIST;
error_status_t
GetManagedAppCategories(
[in] handle_t hRpc,
[in,out] APPCATEGORYLIST* pCategoryList
);
}