169 lines
3.8 KiB
C
169 lines
3.8 KiB
C
//*************************************************************
|
|
//
|
|
// appmgmt.h
|
|
//
|
|
// APIs for operations on MSI applications which are deployed
|
|
// and managed in the NT Directory.
|
|
//
|
|
// Copyright (c) Microsoft Corporation 1998-1999
|
|
// All rights reserved
|
|
//
|
|
//*************************************************************
|
|
|
|
#ifndef _APPMGMT_H_
|
|
#define _APPMGMT_H_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum _INSTALLSPECTYPE
|
|
{
|
|
APPNAME = 1,
|
|
FILEEXT,
|
|
PROGID,
|
|
COMCLASS
|
|
} INSTALLSPECTYPE;
|
|
|
|
typedef union _INSTALLSPEC
|
|
{
|
|
struct
|
|
{
|
|
WCHAR * Name;
|
|
GUID GPOId;
|
|
} AppName;
|
|
WCHAR * FileExt;
|
|
WCHAR * ProgId;
|
|
struct
|
|
{
|
|
GUID Clsid;
|
|
DWORD ClsCtx;
|
|
} COMClass;
|
|
} INSTALLSPEC;
|
|
|
|
typedef struct _INSTALLDATA
|
|
{
|
|
INSTALLSPECTYPE Type;
|
|
INSTALLSPEC Spec;
|
|
} INSTALLDATA, *PINSTALLDATA;
|
|
|
|
typedef enum
|
|
{
|
|
ABSENT,
|
|
ASSIGNED,
|
|
PUBLISHED
|
|
} APPSTATE;
|
|
|
|
#define LOCALSTATE_ASSIGNED 0x1 // app is assigned
|
|
#define LOCALSTATE_PUBLISHED 0x2 // app is published
|
|
#define LOCALSTATE_UNINSTALL_UNMANAGED 0x4 // uninstall any unmanaged version before assigning
|
|
#define LOCALSTATE_POLICYREMOVE_ORPHAN 0x8 // app is orphaned when policy removed
|
|
#define LOCALSTATE_POLICYREMOVE_UNINSTALL 0x10 // app is uninstalled when policy removed
|
|
#define LOCALSTATE_ORPHANED 0x20 // app is orphaned after being applied
|
|
#define LOCALSTATE_UNINSTALLED 0x40 // app is uninstalled after being applied
|
|
|
|
typedef struct _LOCALMANAGEDAPPLICATION
|
|
{
|
|
LPWSTR pszDeploymentName;
|
|
LPWSTR pszPolicyName;
|
|
LPWSTR pszProductId;
|
|
DWORD dwState;
|
|
} LOCALMANAGEDAPPLICATION, *PLOCALMANAGEDAPPLICATION;
|
|
|
|
#define MANAGED_APPS_USERAPPLICATIONS 0x1
|
|
#define MANAGED_APPS_FROMCATEGORY 0x2
|
|
#define MANAGED_APPS_INFOLEVEL_DEFAULT 0x10000
|
|
|
|
#define MANAGED_APPTYPE_WINDOWSINSTALLER 0x1
|
|
#define MANAGED_APPTYPE_SETUPEXE 0x2
|
|
#define MANAGED_APPTYPE_UNSUPPORTED 0x3
|
|
|
|
typedef struct _MANAGEDAPPLICATION
|
|
{
|
|
LPWSTR pszPackageName;
|
|
LPWSTR pszPublisher;
|
|
DWORD dwVersionHi;
|
|
DWORD dwVersionLo;
|
|
DWORD dwRevision;
|
|
GUID GpoId;
|
|
LPWSTR pszPolicyName;
|
|
GUID ProductId;
|
|
LANGID Language;
|
|
LPWSTR pszOwner;
|
|
LPWSTR pszCompany;
|
|
LPWSTR pszComments;
|
|
LPWSTR pszContact;
|
|
LPWSTR pszSupportUrl;
|
|
DWORD dwPathType;
|
|
BOOL bInstalled;
|
|
} MANAGEDAPPLICATION, *PMANAGEDAPPLICATION;
|
|
|
|
typedef struct _APPCATEGORYINFO
|
|
{
|
|
LCID Locale;
|
|
LPWSTR pszDescription;
|
|
GUID AppCategoryId;
|
|
} APPCATEGORYINFO;
|
|
|
|
typedef struct _APPCATEGORYINFOLIST
|
|
{
|
|
DWORD cCategory;
|
|
#ifdef MIDL_PASS
|
|
[size_is(cCategory)]
|
|
#endif
|
|
APPCATEGORYINFO * pCategoryInfo;
|
|
} APPCATEGORYINFOLIST;
|
|
|
|
#ifndef WINAPI
|
|
#define WINAPI
|
|
#endif
|
|
|
|
DWORD WINAPI
|
|
InstallApplication(
|
|
PINSTALLDATA pInstallInfo
|
|
);
|
|
|
|
DWORD WINAPI
|
|
UninstallApplication(
|
|
WCHAR * ProductCode
|
|
);
|
|
|
|
DWORD WINAPI
|
|
CommandLineFromMsiDescriptor(
|
|
WCHAR * Descriptor,
|
|
WCHAR * CommandLine,
|
|
DWORD * CommandLineLength
|
|
);
|
|
|
|
DWORD WINAPI
|
|
GetManagedApplications(
|
|
GUID * pCategory,
|
|
DWORD dwQueryFlags,
|
|
DWORD dwInfoLevel,
|
|
LPDWORD pdwApps,
|
|
PMANAGEDAPPLICATION* prgManagedApps
|
|
);
|
|
|
|
DWORD WINAPI
|
|
GetLocalManagedApplications(
|
|
BOOL bUserApps,
|
|
LPDWORD pdwApps,
|
|
PLOCALMANAGEDAPPLICATION* prgLocalApps
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|