windows-nt/Source/XPSP1/NT/public/sdk/inc/appmgmt.h
2020-09-26 16:20:57 +08:00

194 lines
4 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 dwStatus
);
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
);
void WINAPI
GetLocalManagedApplicationData(
WCHAR * ProductCode,
LPWSTR * DisplayName,
LPWSTR * SupportUrl
);
DWORD WINAPI
GetManagedApplicationCategories(
DWORD dwReserved,
APPCATEGORYINFOLIST* pAppCategory
);
#ifdef __cplusplus
}
#endif
#endif