ifndef _INC_WINAPIFAMILY
define _INC_WINAPIFAMILY

define WINAPI_FAMILY_PC_APP		2
define WINAPI_FAMILY_PHONE_APP		3
define WINAPI_FAMILY_SYSTEM		4
define WINAPI_FAMILY_SERVER		5
define WINAPI_FAMILY_GAMES		6
define WINAPI_FAMILY_DESKTOP_APP	100
define WINAPI_FAMILY_APP		WINAPI_FAMILY_PC_APP

ifndef WINAPI_FAMILY
define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP
endif
ifndef WINAPI_PARTITION_DESKTOP
define WINAPI_PARTITION_DESKTOP (WINAPI_FAMILY EQ WINAPI_FAMILY_DESKTOP_APP)
endif
ifndef WINAPI_PARTITION_APP
define WINAPI_PARTITION_APP (WINAPI_FAMILY EQ WINAPI_FAMILY_DESKTOP_APP OR WINAPI_FAMILY EQ WINAPI_FAMILY_PC_APP OR WINAPI_FAMILY EQ WINAPI_FAMILY_PHONE_APP)
endif

include winpackagefamily.inc

WINAPI_FAMILY_PARTITION macro Partitions
	exitm<(Partitions)>
	endm

ifndef _WINDEF_
 include windef.inc
endif

if (WINAPI_FAMILY NE WINAPI_FAMILY_DESKTOP_APP) AND (WINAPI_FAMILY NE WINAPI_FAMILY_PC_APP) AND (WINAPI_FAMILY NE WINAPI_FAMILY_PHONE_APP) AND (WINAPI_FAMILY NE WINAPI_FAMILY_SYSTEM) AND (WINAPI_FAMILY NE WINAPI_FAMILY_GAMES) AND (WINAPI_FAMILY NE WINAPI_FAMILY_SERVER)
.err<Unknown WINAPI_FAMILY value.>
endif


ifndef WINAPI_PARTITION_PC_APP
define WINAPI_PARTITION_PC_APP (WINAPI_FAMILY EQ WINAPI_FAMILY_DESKTOP_APP OR WINAPI_FAMILY EQ WINAPI_FAMILY_PC_APP)
endif

ifndef WINAPI_PARTITION_PHONE_APP
define WINAPI_PARTITION_PHONE_APP (WINAPI_FAMILY EQ WINAPI_FAMILY_PHONE_APP)
endif

ifndef WINAPI_PARTITION_GAMES
define WINAPI_PARTITION_GAMES (WINAPI_FAMILY EQ WINAPI_FAMILY_GAMES OR WINAPI_FAMILY EQ WINAPI_FAMILY_DESKTOP_APP)
endif

ifndef WINAPI_PARTITION_SYSTEM
define WINAPI_PARTITION_SYSTEM (WINAPI_FAMILY EQ WINAPI_FAMILY_SYSTEM OR WINAPI_FAMILY EQ WINAPI_FAMILY_GAMES OR WINAPI_FAMILY EQ WINAPI_FAMILY_SERVER)
endif

define WINAPI_PARTITION_PHONE WINAPI_PARTITION_PHONE_APP

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) AND NOT WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
define APP_DEPRECATED_HRESULT _WINAPI_DEPRECATED_DECLARATION
endif

endif
