Package constants

Specifies how packages are to be processed.

Constant/value Description
PACKAGE_APPLICATIONS_MAX_COUNT
100
The maximum number of apps in a package.
PACKAGE_APPLICATIONS_MIN_COUNT
0
The minimum number of apps in a package.
PACKAGE_FAMILY_MAX_RESOURCE_PACKAGES
512
The maximum number of resource packages a package can have.
PACKAGE_FAMILY_MIN_RESOURCE_PACKAGES
0
The minimum number of resource packages a package can have.
PACKAGE_FILTER_ALL_LOADED
0x00000000
Process all packages in the dependency graph.
This is equivalent to PACKAGE_FILTER_HEAD, PACKAGE_FILTER_DIRECT.
Note
PACKAGE_FILTER_ALL_LOADED may be altered or unavailable for releases after Windows 8.1. Instead, use PACKAGE_FILTER_HEAD, PACKAGE_FILTER_DIRECT.
PACKAGE_FILTER_BUNDLE
0x00000080
Process bundle packages in the package graph.
PACKAGE_FILTER_DIRECT
0x00000020
Process the directly dependent packages of the head (first) package in the dependency graph.
PACKAGE_FILTER_DYNAMIC
0x00100000
Process packages dynamically added to the package graph.
PACKAGE_FILTER_HEAD
0x00000010
Process the head (first) package in the dependency graph.
PACKAGE_FILTER_HOSTRUNTIME
0x00200000
Process host runtime dependency packages added to the package graph.
PACKAGE_FILTER_IS_IN_RELATED_SET
0x00040000
Process packages in a related set. For more info, see Related sets.
PACKAGE_FILTER_OPTIONAL
0x00020000
Process optional packages in the package graph.
PACKAGE_FILTER_RESOURCE
0x00000040
Process resource packages in the package graph.
PACKAGE_FILTER_STATIC
0x00080000
Process packages statically added to the package graph.
PACKAGE_GRAPH_MAX_SIZE
(1 + PACKAGE_MAX_DEPENDENCIES + PACKAGE_FAMILY_MAX_RESOURCE_PACKAGES)
The maximum size of a package graph.
PACKAGE_GRAPH_MIN_SIZE
1
The minimum size of a package graph.
PACKAGE_INFORMATION_BASIC
0x00000000
Retrieve basic information.
PACKAGE_INFORMATION_FULL
0x00000100
Retrieve full information.
PACKAGE_MAX_DEPENDENCIES
128
The maximum number of packages a package depends on.
PACKAGE_MIN_DEPENDENCIES
0
The minimum number of packages a package depends on.
PACKAGE_PROPERTY_BUNDLE
0x00000004
The package is a bundle package.
PACKAGE_PROPERTY_DEVELOPMENT_MODE
0x00010000
The package was registered with the DeploymentOptions enumeration.
PACKAGE_PROPERTY_DYNAMIC
0x00100000
The package is a dynamic dependency.
PACKAGE_PROPERTY_FRAMEWORK
0x00000001
The package is a framework.
PACKAGE_PROPERTY_HOSTRUNTIME
0x00200000
The package is a host runtime dependency.
PACKAGE_PROPERTY_IS_IN_RELATED_SET
0x00040000
The package is in a related set. For more info, see Related sets.
PACKAGE_PROPERTY_OPTIONAL
0x00000008
The package is an optional package.
PACKAGE_PROPERTY_RESOURCE
0x00000002
The package is a resource package.
PACKAGE_PROPERTY_STATIC
0x00080000
The package is a static dependency.

Static and dynamic entries

A packaged app is launched with entries in its package graph; and that's the static package graph. Conversely, an unpackaged app is launched with an empty package graph.

The Dynamic Dependency API adds entries dynamically to a package graph; and that's the dynamic package graph.

If the flags passed to GetCurrentPackageInfo or GetCurrentPackageInfo2 doesn't contain PACKAGE_FILTER_DYNAMIC, then the function looks only at the static package graph. That's the same behavior as explicitly including PACKAGE_FILTER_STATIC in flags. In other words, for those functions and for compatibility reasons, you need to opt in to receiving dynamic packages.

GetCurrentPackageInfo3, on the other hand, is opt-out. If you don't specify PACKAGE_FILTER_DYNAMIC or PACKAGE_FILTER_STATIC, then that's equivalent to specifying both; so you get dynamic entries. To opt out, specify PACKAGE_FILTER_STATIC but not PACKAGE_FILTER_DYNAMIC.

Requirements

Requirement Value
Minimum supported client Windows 8 [desktop apps only]
Minimum supported server Windows Server 2012 [desktop apps only]
Header AppModel.h

See also