1403 lines
44 KiB
C
1403 lines
44 KiB
C
|
|
|
|
//
|
|
// All APIs unique to Xbox that live in XAPILIB.LIB should be
|
|
// defined in this header file
|
|
//
|
|
|
|
#ifndef _XBOXP_
|
|
#define _XBOXP_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "xbox.h"
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#pragma warning(push)
|
|
#pragma warning(disable: 4201) // unnamed struct/union
|
|
|
|
#define XBOXAPI
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define GUEST_SELECTOR_XUID ((XUID) 0xE000000000000000)
|
|
|
|
XBOXAPI
|
|
FORCEINLINE
|
|
BOOL
|
|
WINAPI
|
|
IsOfflineXUID(
|
|
XUID xuid
|
|
)
|
|
{
|
|
return (xuid & 0xF000000000000000) == 0xE000000000000000;
|
|
}
|
|
|
|
XBOXAPI
|
|
FORCEINLINE
|
|
BOOL
|
|
WINAPI
|
|
IsOnlineXUID(
|
|
XUID xuid
|
|
)
|
|
{
|
|
return (xuid & 0xFFFF000000000000) == 0x0009000000000000;
|
|
}
|
|
|
|
XBOXAPI
|
|
FORCEINLINE
|
|
BOOL
|
|
WINAPI
|
|
IsGuestXUID(
|
|
XUID xuid
|
|
)
|
|
{
|
|
DWORD HighPart;
|
|
|
|
HighPart = (DWORD)(xuid >> 48);
|
|
|
|
return ((HighPart & 0x000F) == 0x9) && ((HighPart & 0x00C0) > 0);
|
|
}
|
|
|
|
|
|
#define MAX_DISPLAY_BLOCKS 50001
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetDisplayBlocks(
|
|
IN LPCSTR szPathName
|
|
);
|
|
|
|
XBOXAPI
|
|
HANDLE
|
|
WINAPI
|
|
XapipCreateThread(
|
|
IN LPSECURITY_ATTRIBUTES lpThreadAttributes OPTIONAL,
|
|
IN DWORD dwStackSize OPTIONAL,
|
|
IN LPTHREAD_START_ROUTINE lpStartAddress,
|
|
IN LPVOID lpParameter OPTIONAL,
|
|
IN DWORD dwCreationFlags OPTIONAL,
|
|
IN DWORD dwThreadProcessor,
|
|
OUT LPDWORD lpThreadId OPTIONAL
|
|
);
|
|
|
|
#define XSAVEGAME_NOCOPY 1
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XCreateSaveGame(
|
|
IN LPCSTR szRootPathName,
|
|
IN LPCWSTR wszSaveGameName,
|
|
IN DWORD dwCreationDisposition,
|
|
IN DWORD dwCreateFlags,
|
|
OUT LPSTR szPathBuffer,
|
|
IN UINT uSize
|
|
);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XDeleteSaveGame(
|
|
IN LPCSTR szRootPathName,
|
|
IN LPCWSTR wszSaveGameName
|
|
);
|
|
|
|
#define MAX_GAMENAME 128
|
|
|
|
typedef struct _XGAME_FIND_DATA {
|
|
WIN32_FIND_DATAA wfd;
|
|
CHAR szSaveGameDirectory[MAX_PATH];
|
|
WCHAR szSaveGameName[MAX_GAMENAME];
|
|
} XGAME_FIND_DATA, *PXGAME_FIND_DATA;
|
|
|
|
XBOXAPI
|
|
HANDLE
|
|
WINAPI
|
|
XFindFirstSaveGame(
|
|
IN LPCSTR szRootPathName,
|
|
OUT PXGAME_FIND_DATA pFindGameData
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XFindNextSaveGame(
|
|
IN HANDLE hFindGame,
|
|
OUT PXGAME_FIND_DATA pFindGameData
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XFindClose(
|
|
IN HANDLE hFind
|
|
);
|
|
|
|
#define MAX_NICKNAME 32
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XSetNicknameW(
|
|
IN LPCWSTR wszNickname,
|
|
IN BOOL fPreserveCase
|
|
);
|
|
#define XSetNickname XSetNicknameW
|
|
|
|
XBOXAPI
|
|
HANDLE
|
|
WINAPI
|
|
XFindFirstNicknameW(
|
|
IN BOOL fThisTitleOnly,
|
|
OUT LPWSTR wszNickname,
|
|
IN UINT uSize
|
|
);
|
|
#define XFindFirstNickname XFindFirstNicknameW
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XFindNextNicknameW(
|
|
IN HANDLE hFindNickname,
|
|
OUT LPWSTR wszNickname,
|
|
IN UINT uSize
|
|
);
|
|
#define XFindNextNickname XFindNextNicknameW
|
|
|
|
typedef ULONGLONG XOFFERING_ID;
|
|
|
|
#define MAX_CONTENT_DISPLAY_NAME 128
|
|
|
|
typedef struct _XCONTENT_FIND_DATA {
|
|
WIN32_FIND_DATAA wfd;
|
|
XOFFERING_ID qwOfferingId;
|
|
DWORD dwFlags;
|
|
CHAR szContentDirectory[MAX_PATH];
|
|
WCHAR szDisplayName[MAX_CONTENT_DISPLAY_NAME];
|
|
} XCONTENT_FIND_DATA, *PXCONTENT_FIND_DATA;
|
|
|
|
XBOXAPI
|
|
HANDLE
|
|
WINAPI
|
|
XFindFirstContent(
|
|
IN LPCSTR szRootPathName,
|
|
IN DWORD dwFlagFilter,
|
|
OUT PXCONTENT_FIND_DATA pFindContentData
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XFindNextContent(
|
|
IN HANDLE hFindContent,
|
|
OUT PXCONTENT_FIND_DATA pFindContentData
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XGetContentInstallLocation(
|
|
IN DWORD dwTitleID,
|
|
IN LPCSTR szSourceMetadataFileName,
|
|
OUT LPSTR szInstallDirectory
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XGetContentInstallLocationFromIDs(
|
|
IN DWORD dwTitleID,
|
|
IN XOFFERING_ID xOfferingID,
|
|
OUT LPSTR szInstallDirectory
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XInstallContentSignatures(
|
|
IN DWORD dwTitleID,
|
|
IN LPCSTR szSourceMetadataFileName,
|
|
IN LPCSTR szDestinationDirectory
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XCreateContentSimple(
|
|
IN DWORD dwTitleID,
|
|
IN XOFFERING_ID xOfferingID,
|
|
IN DWORD dwContentFlags,
|
|
IN LPCWSTR wszContentName,
|
|
IN LPCSTR szDestinationDirectory
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XRemoveContent(
|
|
IN LPCSTR szDirectoryName
|
|
);
|
|
|
|
XBOXAPI
|
|
HANDLE
|
|
WINAPI
|
|
XLoadContentSignaturesWithFileName(
|
|
IN DWORD dwTitleID,
|
|
IN LPCSTR szMetadataFileName
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XLocateSignatureByNameEx(
|
|
IN HANDLE hSignature,
|
|
IN LPCSTR szFileName,
|
|
IN DWORD dwFileOffset,
|
|
IN OUT LPDWORD pdwDataSize,
|
|
OUT LPBYTE* ppbSignatureData,
|
|
OUT LPDWORD pdwSignatureSize
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XLocateNextSignature(
|
|
IN HANDLE hSignature,
|
|
OUT LPSTR* pszFileName,
|
|
OUT LPDWORD pdwFileNameLength,
|
|
OUT LPDWORD pdwFileOffset,
|
|
OUT LPDWORD pdwDataSize,
|
|
OUT LPBYTE* ppbSignatureData,
|
|
OUT LPDWORD pdwSignatureSize
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XInstallContentSignaturesWithFileName(
|
|
IN DWORD dwTitleID,
|
|
IN LPCSTR szSourceMetadataFileName,
|
|
IN LPCSTR szDestinationName,
|
|
IN DWORD dwInstallFlags
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XInstallContentSignaturesEx(
|
|
IN DWORD dwTitleID,
|
|
IN LPCSTR szSourceMetadataFileName,
|
|
IN LPCSTR szInstallDirectory,
|
|
IN DWORD dwInstallFlags
|
|
);
|
|
|
|
#define XSIG_INSTALL_NO_CHECK_SIGNATURE 0x00000001
|
|
#define XSIG_INSTALL_MARK_AS_INSTALLED 0x00000002
|
|
|
|
#define XCALCSIG_LIVE_SIGNATURE_SIZE 100
|
|
|
|
typedef struct {
|
|
DWORD SignatureFlags;
|
|
BYTE LiveSignature[XCALCSIG_LIVE_SIGNATURE_SIZE];
|
|
} XCONTSIG_LIVE_SIGNATURE_INFO, *PXCONTSIG_LIVE_SIGNATURE_INFO;
|
|
|
|
XBOXAPI
|
|
HANDLE
|
|
WINAPI
|
|
XLoadContentSignaturesEx(
|
|
IN DWORD dwTitleID,
|
|
IN LPCSTR szDirectoryName
|
|
);
|
|
|
|
#define XLoadContentSignatures(lpDirectoryName) \
|
|
XLoadContentSignaturesEx(0, lpDirectoryName)
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XLocateLiveSignature(
|
|
IN HANDLE hSignature,
|
|
OUT PXCONTSIG_LIVE_SIGNATURE_INFO pxlsInfo,
|
|
OUT PBYTE pbLiveDigest
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XLocateSignatureByIndex(
|
|
IN HANDLE hSignature,
|
|
IN DWORD dwSignatureIndex,
|
|
OUT LPBYTE* ppbSignatureData,
|
|
OUT LPDWORD pdwSignatureSize
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XLocateSignatureByName(
|
|
IN HANDLE hSignature,
|
|
IN LPCSTR szFileName,
|
|
IN DWORD dwFileOffset,
|
|
IN DWORD dwDataSize,
|
|
OUT LPBYTE* ppbSignatureData,
|
|
OUT LPDWORD pdwSignatureSize
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XCalculateContentSignature(
|
|
IN LPBYTE pbData,
|
|
IN DWORD dwDataSize,
|
|
OUT LPBYTE pbSignature,
|
|
IN OUT LPDWORD pdwSignatureSize
|
|
);
|
|
|
|
XBOXAPI
|
|
VOID
|
|
WINAPI
|
|
XCloseContentSignatures(
|
|
IN HANDLE hSignature
|
|
);
|
|
|
|
XBOXAPI
|
|
VOID
|
|
WINAPI
|
|
XComputeContentSignatureKey(
|
|
IN ULONG dwTitleID,
|
|
OUT PUCHAR pbSignatureKey
|
|
);
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetLocale();
|
|
#define XC_VIDEO_STANDARD_PAL_M 4
|
|
|
|
//
|
|
// Index for reserved fields in XVIDEO_MODE
|
|
//
|
|
|
|
#define XVIDEO_MODE_INDEX_PIXEL_CLOCK 0
|
|
|
|
#define XC_AV_PACK_SDC 0 // Standard-definition component
|
|
#define XC_AV_PACK_SCART 1 // SCART (composite and RGB SDTV)
|
|
#define XC_AV_PACK_RFU 2 // RF SDTV
|
|
#define XC_AV_PACK_HDC 3 // High-definition component
|
|
#define XC_AV_PACK_RESERVED 4 // Reserved
|
|
#define XC_AV_PACK_CSV 5 // Composite/S-Video
|
|
#define XC_AV_PACK_PC 6 // PC (output RGB VGA, hsync/vsync/DDC)
|
|
#define XC_AV_PACK_NONE 7 // Indicates no AV pack plugged in
|
|
#define XC_AV_PACK_MAX 8
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetAVPack(
|
|
VOID
|
|
);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetVideoStandard(
|
|
VOID
|
|
);
|
|
#define XC_VIDEO_FLAGS_LETTERBOX 0x00000010
|
|
#define XC_VIDEO_FLAGS_PAL_60Hz 0x00000040
|
|
|
|
//
|
|
// Analog speaker configuration values are a enumeration while digital values
|
|
// are a bitmask. 0 is not a valid analog value, but 0 in the digital word
|
|
// indicates that no digital encoding or preencoded output is allowed on the
|
|
// digital channel. In that case, the digital channel will output the same
|
|
// data as the analog.
|
|
//
|
|
|
|
#define XC_AUDIO_FLAGS_SURROUND 0x00000001
|
|
#define XC_AUDIO_FLAGS_MONO 0x00000002
|
|
#define XC_AUDIO_FLAGS_ENABLE_DOLBYDIGITAL 0x00010000
|
|
#define XC_AUDIO_FLAGS_ENABLE_WMAPRO 0x00020000
|
|
|
|
#define XC_AUDIO_FLAGS_BASICMASK 0x0000FFFF
|
|
#define XC_AUDIO_FLAGS_ENCODEDMASK 0xFFFF0000
|
|
|
|
#define XC_AUDIO_FLAGS_BASIC(c) ((DWORD)(c) & XC_AUDIO_FLAGS_BASICMASK)
|
|
#define XC_AUDIO_FLAGS_ENCODED(c) ((DWORD)(c) & XC_AUDIO_FLAGS_ENCODEDMASK)
|
|
#define XC_AUDIO_FLAGS_COMBINED(b,e) (XC_AUDIO_FLAGS_BASIC(b) | XC_AUDIO_FLAGS_ENCODED(e))
|
|
|
|
#define XC_AUDIO_FLAGS_DEFAULT XC_AUDIO_FLAGS_COMBINED(XC_AUDIO_FLAGS_SURROUND, XC_AUDIO_FLAGS_ENABLE_DOLBYDIGITAL)
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetAudioFlags(
|
|
VOID
|
|
);
|
|
#define XC_CONSOLE_REGION_NA 0x00
|
|
#define XC_CONSOLE_REGION_ASIA 0x01
|
|
#define XC_CONSOLE_REGION_EUROPE 0x02
|
|
#define XC_CONSOLE_REGION_RESTOFWORLD 0x03
|
|
#define XC_CONSOLE_REGION_DEVKIT 0x7F
|
|
|
|
#define XC_GAME_REGION(region, subregion) \
|
|
((XC_CONSOLE_REGION_##region << 8) | (subregion))
|
|
|
|
#define XC_GAME_REGION_NA_ALL XC_GAME_REGION(NA, 0xFF)
|
|
#define XC_GAME_REGION_ASIA_ALL XC_GAME_REGION(ASIA, 0xFF)
|
|
#define XC_GAME_REGION_ASIA_JAPAN XC_GAME_REGION(ASIA, 0x01)
|
|
#define XC_GAME_REGION_ASIA_CHINA XC_GAME_REGION(ASIA, 0x02)
|
|
#define XC_GAME_REGION_ASIA_REST XC_GAME_REGION(ASIA, 0xFC)
|
|
#define XC_GAME_REGION_EUROPE_ALL XC_GAME_REGION(EUROPE, 0xFF)
|
|
#define XC_GAME_REGION_EUROPE_AUNZ XC_GAME_REGION(EUROPE, 0x01)
|
|
#define XC_GAME_REGION_EUROPE_REST XC_GAME_REGION(EUROPE, 0xFE)
|
|
#define XC_GAME_REGION_RESTOFWORLD_ALL XC_GAME_REGION(RESTOFWORLD, 0xFF)
|
|
#define XC_GAME_REGION_DEVKIT_ALL XC_GAME_REGION(DEVKIT, 0xFF)
|
|
#define XC_GAME_REGION_MANUFACTURING 0x8000
|
|
|
|
#define XC_GAME_REGION_REGION(region) \
|
|
(((region) & 0xFF00) >> 8)
|
|
|
|
//
|
|
// These flags are stored in the retail flags (XCONFIG_USER_RETAIL_FLAGS).
|
|
//
|
|
|
|
#define XC_MISC_FLAG_AUTOPOWERDOWN 0x00000001
|
|
#define XC_MISC_FLAG_DONT_USE_DST 0x00000002
|
|
#define XC_MISC_FLAG_CONNECTIONNOTICE 0x00000004
|
|
#define XC_MISC_FLAG_24HCLOCK 0x00000008
|
|
#define XC_MISC_FLAG_NO_NOTIFY_DISPLAY 0x00000010
|
|
#define XC_MISC_FLAG_NO_NOTIFY_SOUND 0x00000020
|
|
#define XC_MISC_FLAG_OOBE_HAS_RUN 0x00000040
|
|
|
|
#define XC_MISC_FLAG_ALL_MASK ((XC_MISC_FLAG_AUTOPOWERDOWN) | (XC_MISC_FLAG_DONT_USE_DST) | (XC_MISC_FLAG_CONNECTIONNOTICE) | \
|
|
(XC_MISC_FLAG_24HCLOCK) | (XC_MISC_FLAG_NO_NOTIFY_DISPLAY) | (XC_MISC_FLAG_NO_NOTIFY_SOUND) | \
|
|
(XC_MISC_FLAG_OOBE_HAS_RUN))
|
|
|
|
#define XINPUT_GAMEPAD_XE 0x0400
|
|
#define XINPUT_GAMEPAD_BINDING 0x0800
|
|
#define XINPUT_FLAG_SYSTEMAPP 0x80000000
|
|
#define XINPUT_MAX_RAW_BUFFER (32)
|
|
|
|
typedef struct _XINPUT_RAW
|
|
{
|
|
BYTE Buffer[XINPUT_MAX_RAW_BUFFER];
|
|
BYTE Length;
|
|
DWORD dwPacketNumber;
|
|
} XINPUT_RAW, *PXINPUT_RAW;
|
|
|
|
//
|
|
// The master vibration level is stored as a user profile setting. It may be
|
|
// one of the following. These are redundant definitions. The actual profile
|
|
// enum values may be found in xonline.h, but this header includes these
|
|
// definitions for the driver and other system components.
|
|
//
|
|
|
|
#define XINPUT_VIBRATION_LEVEL_NONE 0
|
|
#define XINPUT_VIBRATION_LEVEL_LOW 1
|
|
#define XINPUT_VIBRATION_LEVEL_MEDIUM 2
|
|
#define XINPUT_VIBRATION_LEVEL_HIGH 3
|
|
#define XINPUT_VIBRATION_LEVEL_MAX 4
|
|
|
|
//
|
|
// Battery level may only be one of the following
|
|
//
|
|
|
|
#define XINPUT_BATTERY_LEVEL_LITTLE 0
|
|
#define XINPUT_BATTERY_LEVEL_LOW 1
|
|
#define XINPUT_BATTERY_LEVEL_MEDIUM 2
|
|
#define XINPUT_BATTERY_LEVEL_HIGH 3
|
|
#define XINPUT_BATTERY_LEVEL_MAX 4
|
|
|
|
//
|
|
// Wireless signal strength may be reported as one of the following values
|
|
//
|
|
|
|
#define XINPUT_SIGNAL_STRENGTH_VERY_LOW 0
|
|
#define XINPUT_SIGNAL_STRENGTH_LOW 1
|
|
#define XINPUT_SIGNAL_STRENGTH_MEDIUM 2
|
|
#define XINPUT_SIGNAL_STRENGTH_GOOD 3
|
|
#define XINPUT_SIGNAL_STRENGTH_MAX 4
|
|
|
|
typedef struct _XINPUT_DEVICE_STATS {
|
|
ULONG ulBatteryLevel;
|
|
ULONG ulSignalStrength;
|
|
ULONG ulDeviceType;
|
|
ULONG ulDevicePort;
|
|
ULONG ulDeviceVersion;
|
|
} XINPUT_DEVICE_STATS, *PXINPUT_DEVICE_STATS;
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XInputSetStateEx(
|
|
IN DWORD dwUserIndex,
|
|
IN PXINPUT_VIBRATION pVibration,
|
|
IN BYTE bAmplitude OPTIONAL,
|
|
IN BYTE bFrequency OPTIONAL,
|
|
IN BYTE bOffset OPTIONAL
|
|
);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XInputRawState(
|
|
IN DWORD dwUserIndex,
|
|
IN DWORD dwFlags,
|
|
IN BOOL fSetState,
|
|
IN PXINPUT_RAW pRawState
|
|
);
|
|
|
|
typedef struct _XINPUT_POLLING_PARAMETERS
|
|
{
|
|
BYTE fAutoPoll:1;
|
|
BYTE fInterruptOut:1;
|
|
BYTE ReservedMBZ1:6;
|
|
BYTE bInputInterval;
|
|
BYTE bOutputInterval;
|
|
BYTE ReservedMBZ2;
|
|
} XINPUT_POLLING_PARAMETERS, *PXINPUT_POLLING_PARAMETERS;
|
|
|
|
typedef struct _XINPUT_DEVICE_DESCRIPTION
|
|
{
|
|
WORD wVendorID;
|
|
WORD wProductID;
|
|
WORD wVersion;
|
|
} XINPUT_DEVICE_DESCRIPTION, *PXINPUT_DEVICE_DESCRIPTION;
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XInputGetDeviceDescription(
|
|
IN HANDLE hDevice,
|
|
OUT PXINPUT_DEVICE_DESCRIPTION pDescription
|
|
);
|
|
|
|
#define XINPUT_LIGHTGUN_CALIBRATION_CENTER_X 0
|
|
#define XINPUT_LIGHTGUN_CALIBRATION_CENTER_Y 0
|
|
#define XINPUT_LIGHTGUN_CALIBRATION_UPPERLEFT_X -25000
|
|
#define XINPUT_LIGHTGUN_CALIBRATION_UPPERLEFT_Y 25000
|
|
|
|
typedef struct _XINPUT_LIGHTGUN_CALIBRATION_OFFSETS
|
|
{
|
|
WORD wCenterX;
|
|
WORD wCenterY;
|
|
WORD wUpperLeftX;
|
|
WORD wUpperLeftY;
|
|
} XINPUT_LIGHTGUN_CALIBRATION_OFFSETS, *PXINPUT_LIGHTGUN_CALIBRATION_OFFSETS;
|
|
|
|
//
|
|
// XVoice APIs
|
|
//
|
|
|
|
typedef PVOID XVOICE_HANDLE, *PXVOICE_HANDLE;
|
|
typedef struct XMEDIAPACKET *PXMEDIAPACKET;
|
|
|
|
#ifdef __XVOICE_H__
|
|
XBOXAPI
|
|
HRESULT
|
|
WINAPI
|
|
XVoiceCreate(
|
|
IN DWORD dwUserIndex,
|
|
IN DWORD dwMaxAttachedPackets,
|
|
OUT PXVOICE_HANDLE phHandle
|
|
);
|
|
|
|
XBOXAPI
|
|
HRESULT
|
|
WINAPI
|
|
XVoiceSubmitPacket(
|
|
IN XVOICE_HANDLE hObject,
|
|
IN BOOL fInput,
|
|
IN OUT PXMEDIAPACKET pPacket
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XVoiceClose(
|
|
IN XVOICE_HANDLE hObject
|
|
);
|
|
#endif // __XVOICE_H__
|
|
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XCleanDrive(
|
|
IN CHAR chDrive
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XapiRecovery(
|
|
IN BOOL QuickFormat
|
|
);
|
|
|
|
#define XINIT_LIMIT_DEVKIT_MEMORY 0x00000004
|
|
#define XINIT_NO_SETUP_HARD_DISK 0x00000008
|
|
#define XINIT_DONT_MODIFY_HARD_DISK 0x00000010
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XMountUtilityDriveInternal(
|
|
IN DWORD dwTitleId,
|
|
IN BOOL fFormatClean,
|
|
IN DWORD dwBytesPerCluster,
|
|
IN SIZE_T dwFileCacheSize
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XFormatUtilityDrive(
|
|
VOID
|
|
);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XMountAlternateTitleA(
|
|
IN LPCSTR szRootPath,
|
|
IN DWORD dwAltTitleId,
|
|
OUT PCHAR pchDrive
|
|
);
|
|
#define XMountAlternateTitle XMountAlternateTitleA
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XUnmountAlternateTitleA(
|
|
IN CHAR chDrive
|
|
);
|
|
#define XUnmountAlternateTitle XUnmountAlternateTitleA
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetDiskSectorSizeA(
|
|
IN LPCSTR szRootPathName
|
|
);
|
|
#define XGetDiskSectorSize XGetDiskSectorSizeA
|
|
|
|
#define XBOX_HD_SECTOR_SIZE 512
|
|
#define XBOX_DVD_SECTOR_SIZE 2048
|
|
#define XBOX_MU_SECTOR_SIZE 4096
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetDiskClusterSizeA(
|
|
IN LPCSTR szRootPathName
|
|
);
|
|
#define XGetDiskClusterSize XGetDiskClusterSizeA
|
|
|
|
|
|
#ifdef _XBOX_ //only define this if xbox.h was already included.
|
|
#include <pshpack1.h>
|
|
typedef struct _XDCS_DVD_CODE_INFORMATION
|
|
{
|
|
WORD bcdVersion;
|
|
DWORD dwCodeLength;
|
|
} XDCS_DVD_CODE_INFORMATION, *PXDCS_DVD_CODE_INFORMATION;
|
|
#include <poppack.h>
|
|
|
|
typedef struct _XDCS_ASYNC_DOWNLOAD_REQUEST
|
|
{
|
|
DWORD dwDeviceInstance;
|
|
PVOID pvBuffer;
|
|
ULONG ulOffset;
|
|
ULONG ulLength;
|
|
ULONG ulBytesRead;
|
|
ULONG ulStatus;
|
|
HANDLE hCompleteEvent;
|
|
} XDCS_ASYNC_DOWNLOAD_REQUEST, *PXDCS_ASYNC_DOWNLOAD_REQUEST;
|
|
|
|
DWORD
|
|
WINAPI
|
|
XDCSGetInformation(
|
|
IN DWORD dwPort,
|
|
OUT PDWORD pdwDeviceInstance,
|
|
OUT PXDCS_DVD_CODE_INFORMATION pDvdCodeInformation
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
XDCSDownloadCode(
|
|
DWORD dwDeviceInstance,
|
|
PVOID pvBuffer,
|
|
ULONG ulOffset,
|
|
ULONG ulLength,
|
|
PULONG pulBytesRead
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
XDCSDownloadCodeAsync(
|
|
IN OUT PXDCS_ASYNC_DOWNLOAD_REQUEST pXDCSDownloadRequest
|
|
);
|
|
#endif //_XBOX_
|
|
|
|
BOOL
|
|
WINAPI
|
|
XapiSetLocalTime(
|
|
IN CONST SYSTEMTIME* lpLocalTime
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
XapipQueryTimeZoneInformation(
|
|
OUT PTIME_ZONE_INFORMATION TimeZoneInformation,
|
|
OUT PBOOL pfUseDST
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
XapipSetTimeZoneInformation(
|
|
IN PTIME_ZONE_INFORMATION TimeZoneInformation
|
|
);
|
|
|
|
BOOL
|
|
WINAPI
|
|
XapipUseDaylightSavingTime();
|
|
|
|
#define MAX_LAUNCH_DATA_SIZE 1020
|
|
#define XLDEMO_RUNMODE_KIOSKMODE 0x01
|
|
#define XLDEMO_RUNMODE_USERSELECTED 0x02
|
|
#define MAX_LAUNCH_CMDLINE_SIZE 256
|
|
|
|
|
|
//
|
|
// Structures and enumerations for LaunchData.
|
|
//
|
|
|
|
#define XDASHLAUNCHDATA_RESERVED_SIZE (MAX_LAUNCH_DATA_SIZE - 12)
|
|
|
|
#define XDASHLAUNCHDATA_COMMAND_DEFAULT 0
|
|
#define XDASHLAUNCHDATA_COMMAND_SIGNUP 1
|
|
#define XDASHLAUNCHDATA_COMMAND_NETWORKTROUBLESHOOTER 2
|
|
#define XDASHLAUNCHDATA_COMMAND_ARCADE 3
|
|
#define XDASHLAUNCHDATA_COMMAND_MEMORY 4
|
|
#define XDASHLAUNCHDATA_COMMAND_MUSIC 6
|
|
#define XDASHLAUNCHDATA_COMMAND_DVD 7
|
|
#define XDASHLAUNCHDATA_COMMAND_MCXDOWNLOADER 8 // MCX depends on this value *never* changing
|
|
#define XDASHLAUNCHDATA_COMMAND_MEDIANETWORKTROUBLESHOOTER 9
|
|
#define XDASHLAUNCHDATA_COMMAND_ACCOUNTMANAGE_HOME 10
|
|
#define XDASHLAUNCHDATA_COMMAND_ACCOUNTMANAGE_PRIVACY 11
|
|
#define XDASHLAUNCHDATA_COMMAND_ACCOUNTMANAGE_ACCEPTTOU 12
|
|
#define XDASHLAUNCHDATA_COMMAND_ACCOUNTMANAGE_BILLING 13
|
|
#define XDASHLAUNCHDATA_COMMAND_GAMES_DEMOS 14
|
|
#define XDASHLAUNCHDATA_COMMAND_GAMES_TRAILERS 15
|
|
#define XDASHLAUNCHDATA_COMMAND_RETURNFROMENTRYPOINT_MUSIC 16
|
|
#define XDASHLAUNCHDATA_COMMAND_MARKETPLACE_TILES 17
|
|
#define XDASHLAUNCHDATA_COMMAND_SETTINGS 18
|
|
#define XDASHLAUNCHDATA_COMMAND_RETURNFROMENTRYPOINT_GAMES 19
|
|
#define XDASHLAUNCHDATA_COMMAND_FAMILYSETTINGS 20
|
|
#define XDASHLAUNCHDATA_COMMAND_RETURNFROMENTRYPOINT_SYSTEM 21
|
|
#define XDASHLAUNCHDATA_COMMAND_OOBE_WELCOME 22
|
|
#define XDASHLAUNCHDATA_COMMAND_GAMES_ARCADE 23
|
|
|
|
typedef struct _XDASHLAUNCHDATA
|
|
{
|
|
DWORD dwVersion;
|
|
DWORD dwCommand;
|
|
DWORD dwUserIndex;
|
|
BYTE Reserved[XDASHLAUNCHDATA_RESERVED_SIZE];
|
|
} XDASHLAUNCHDATA;
|
|
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XSetLaunchData(
|
|
IN PVOID pLaunchData,
|
|
IN DWORD dwLaunchDataSize
|
|
);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetLaunchDataSize(
|
|
OUT LPDWORD pdwLaunchDataSize
|
|
);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetLaunchData(
|
|
OUT PVOID pBuffer,
|
|
IN DWORD dwBufferSize
|
|
);
|
|
|
|
DECLSPEC_NORETURN
|
|
XBOXAPI
|
|
VOID
|
|
WINAPI
|
|
XLaunchNewImage(
|
|
IN LPCSTR szImagePath,
|
|
IN DWORD dwFlags
|
|
);
|
|
|
|
// XLaunchNewImage keyword constants.
|
|
// Titles depend on these strings staying the same.
|
|
#define XLAUNCH_KEYWORD_DETECT_MEDIA "XLNI_DET_MEDIA"
|
|
|
|
#define XLAUNCH_FLAG_FROM_MEMORY 0x00000001
|
|
#define XLAUNCH_FLAG_DETECT_MEDIA 0x00000002
|
|
#define XLAUNCH_FLAG_NO_ABSOLUTE_PATHS 0x00000004
|
|
#define XLAUNCH_FLAG_NO_PACKAGES 0x00000008
|
|
#define XLAUNCH_FLAG_UNLOAD_HUD 0x00000010
|
|
#define XLAUNCH_FLAG_BOUND_PATH 0x00000020
|
|
#define XLAUNCH_FLAG_SYSTEM_VERSION 0x00000040
|
|
#define XLAUNCH_FLAG_ASSUME_DVD 0x00000080
|
|
#define XLAUNCH_FLAG_DASH_ARCADE 0x00000100
|
|
#define XLAUNCH_FLAG_HYBRID_FORCE_DVD 0x00000200
|
|
#define XLAUNCH_FLAG_HYBRID_FORCE_GAME 0x00000400
|
|
#define XLAUNCH_FLAG_HYBRID_NO_NOTIFY 0x00000800
|
|
|
|
#define XTRAY_STATE_CLOSED 0
|
|
#define XTRAY_STATE_CLOSING 1
|
|
#define XTRAY_STATE_OPEN 2
|
|
#define XTRAY_STATE_OPENING 3
|
|
#define XTRAY_STATE_READING 4
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XGetTrayState(
|
|
VOID
|
|
);
|
|
|
|
XBOXAPI
|
|
HRESULT
|
|
WINAPI
|
|
XLaunchMedia(
|
|
VOID
|
|
);
|
|
|
|
XBOXAPI
|
|
VOID
|
|
WINAPI
|
|
XLaunchNewImageEx(
|
|
IN LPCSTR szImagePath,
|
|
IN LPCSTR szDDrivePath,
|
|
IN LPCSTR szCmdLine,
|
|
IN DWORD dwFlags
|
|
);
|
|
|
|
typedef struct _XSWAPDISC_RESULTS
|
|
{
|
|
DWORD dwNewDiscNumber;
|
|
} XSWAPDISC_RESULTS, *PXSWAPDISC_RESULTS;
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XSwapDiscAndLaunchNewImage(
|
|
IN LPCWSTR wszDiscName,
|
|
IN DWORD dwDiscNumber,
|
|
IN LPCSTR szImagePath,
|
|
IN DWORD dwFlags,
|
|
OUT PXSWAPDISC_RESULTS pResults OPTIONAL,
|
|
IN OUT PXOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
//
|
|
// Register or deregister a notification routine
|
|
// which will be called when a thread is created or deleted.
|
|
//
|
|
// NOTE: The XTHREAD_NOTIFICATION structure must remain
|
|
// valid until the thread notification routine is deregistered.
|
|
// For example, you can use a global variable for this.
|
|
// But you should NOT use a local variable inside a function.
|
|
//
|
|
DWORD
|
|
WINAPI
|
|
XGetFilePhysicalSortKey(
|
|
IN HANDLE hFile
|
|
);
|
|
|
|
VOID
|
|
WINAPI
|
|
XSetProcessHeap(
|
|
IN HANDLE hHeap
|
|
);
|
|
|
|
#define XCALCSIG_SIGNATURE_SIZE 20
|
|
typedef union {
|
|
BYTE Signature[XCALCSIG_SIGNATURE_SIZE];
|
|
BYTE LiveSignature[XCALCSIG_LIVE_SIGNATURE_SIZE];
|
|
} XCALCSIG_SIGNATURE, *PXCALCSIG_SIGNATURE;
|
|
|
|
#define XCALCSIG_FLAG_SAVE_GAME (0x00000000)
|
|
#define XCALCSIG_FLAG_NON_ROAMABLE (0x00000001)
|
|
#define XCALCSIG_FLAG_CONTENT (0x00000002)
|
|
#define XCALCSIG_FLAG_DIGEST (0x00000004)
|
|
#define XCALCSIG_FLAG_ONLINE (0x00000008)
|
|
|
|
XBOXAPI
|
|
HANDLE
|
|
WINAPI
|
|
XCalculateSignatureBegin(
|
|
IN DWORD dwFlags
|
|
);
|
|
|
|
XBOXAPI
|
|
HANDLE
|
|
WINAPI
|
|
XCalculateSignatureBeginEx(
|
|
IN DWORD dwFlags,
|
|
IN DWORD dwAltTitleId
|
|
);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XCalculateSignatureUpdate(
|
|
IN HANDLE hCalcSig,
|
|
IN CONST BYTE* pbData,
|
|
IN ULONG cbData
|
|
);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XCalculateSignatureEnd(
|
|
IN HANDLE hCalcSig,
|
|
OUT PXCALCSIG_SIGNATURE pSignature
|
|
);
|
|
|
|
XBOXAPI
|
|
ULONG
|
|
WINAPI
|
|
XAutoPowerDownTimeRemaining(
|
|
VOID
|
|
);
|
|
|
|
typedef VOID (*FLASH_PROGRESS_ROUTINE)(ULONG BytesWritten);
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XapiFlashKernelImage(
|
|
IN PVOID ImageBuffer,
|
|
IN SIZE_T ImageSize,
|
|
IN BOOL IgnoreVersionChecking,
|
|
IN BOOL ForceStockImage,
|
|
IN FLASH_PROGRESS_ROUTINE ProgressRoutine OPTIONAL
|
|
);
|
|
|
|
XBOXAPI
|
|
BOOL
|
|
WINAPI
|
|
XapiReplaceRootDirectoryFile(
|
|
IN HANDLE hVolume,
|
|
IN LPCSTR szReplacedFileName,
|
|
IN LPCSTR szReplacementFileName,
|
|
IN BOOL fCleanupMode
|
|
);
|
|
// XOVERLAPPED::InternalLow is a Win32 error code. If the operation is pending
|
|
// the value is ERROR_IO_PENDING, else it is the result of the operation.
|
|
#define XCONTENTTYPE_NONE 0x00000000
|
|
#define XCONTENTTYPE_PROFILE 0x00010000
|
|
#define XCONTENTTYPE_GAMERPICTURE 0x00020000
|
|
#define XCONTENTTYPE_THEMATICSKIN 0x00030000
|
|
#define XCONTENTTYPE_CACHE 0x00040000
|
|
#define XCONTENTTYPE_STORAGEDOWNLOAD 0x00050000
|
|
#define XCONTENTTYPE_XBOXSAVEDGAME 0x00060000
|
|
#define XCONTENTTYPE_XBOXDOWNLOAD 0x00070000
|
|
#define XCONTENTTYPE_GAMEDEMO 0x00080000
|
|
#define XCONTENTTYPE_VIDEO 0x00090000
|
|
#define XCONTENTTYPE_GAMETITLE 0x000A0000
|
|
#define XCONTENTTYPE_INSTALLER 0x000B0000
|
|
#define XCONTENTTYPE_GAMETRAILER 0x000C0000
|
|
#define XCONTENTTYPE_ARCADE 0x000D0000
|
|
|
|
#define XCONTENTTYPE_PRIVATEMASK 0xFFFF0000
|
|
#define XCONTENTTYPE_PUBLICMASK 0x0000FFFF
|
|
#define XCONTENTTYPE_VALID (XCONTENTTYPE_PRIVATEMASK | XCONTENTTYPE_PUBLICMASK)
|
|
#define XCONTENTTYPE_ANY XCONTENTTYPE_VALID
|
|
#define _XCONTENTFLAG_CREATIONMASK_ 0x0000000F
|
|
#define XCONTENTFLAG_DISALLOWSOURCEDEVICESELECTION 0x00000400
|
|
|
|
#define XCONTENTFLAG_EXECUTE 0x04000000
|
|
|
|
// Private enumeration scoping
|
|
#define XCONTENTFLAG_OWNER 0x10000000
|
|
#define XCONTENTFLAG_TITLE 0x20000000
|
|
#define XCONTENTFLAG_TYPE 0x40000000
|
|
|
|
#define XCONTENTFLAG_ENUM_SCOPING_MASK (XCONTENTFLAG_ENUM_EXCLUDECOMMON | \
|
|
XCONTENTFLAG_OWNER | \
|
|
XCONTENTFLAG_TITLE | \
|
|
XCONTENTFLAG_TYPE)
|
|
|
|
|
|
#define XCONTENTFLAGS_VALID (XCONTENTFLAG_NONE | \
|
|
XCONTENTFLAG_CREATENEW | \
|
|
XCONTENTFLAG_CREATEALWAYS | \
|
|
XCONTENTFLAG_OPENEXISTING | \
|
|
XCONTENTFLAG_OPENALWAYS | \
|
|
XCONTENTFLAG_TRUNCATEEXISTING | \
|
|
XCONTENTFLAG_NOPROFILE_TRANSFER | \
|
|
XCONTENTFLAG_STRONG_SIGNED | \
|
|
XCONTENTFLAG_NODEVICE_TRANSFER | \
|
|
XCONTENTFLAG_MANAGESTORAGE | \
|
|
XCONTENTFLAG_FORCE_SHOW_UI | \
|
|
XCONTENTFLAG_DISALLOWSOURCEDEVICESELECTION | \
|
|
XCONTENTFLAG_ENUM_EXCLUDECOMMON | \
|
|
XCONTENTFLAG_EXECUTE | \
|
|
XCONTENTFLAG_OWNER | \
|
|
XCONTENTFLAG_TITLE | \
|
|
XCONTENTFLAG_TYPE)
|
|
|
|
|
|
#ifdef __cplusplus
|
|
typedef struct _XCONTENT_DATA_INTERNAL : public XCONTENT_DATA {
|
|
#else // __cplusplus
|
|
typedef struct _XCONTENT_DATA_INTERNAL {
|
|
XCONTENT_DATA;
|
|
#endif // !__cplusplus
|
|
XUID xuid;
|
|
DWORD dwTitleId;
|
|
} XCONTENT_DATA_INTERNAL, *PXCONTENT_DATA_INTERNAL;
|
|
|
|
#define XCONTENTDEVICETYPE_NONE ((XCONTENTDEVICETYPE)0)
|
|
#define XCONTENTDEVICETYPE_SYSTEMMU ((XCONTENTDEVICETYPE)3)
|
|
#define XCONTENTDEVICETYPE_USBMASS ((XCONTENTDEVICETYPE)16)
|
|
|
|
#define XCONTENTDEVICETYPE_MASK 0xF
|
|
|
|
//
|
|
// This flag is OR'd into a device type if the device is unformatted
|
|
//
|
|
|
|
#define XCONTENTDEVICEFLAG_UNFORMATTED ((XCONTENTDEVICETYPE)0x80000000)
|
|
|
|
//
|
|
// This flag can be supplied to XContentCreateDeviceEnumerator to enumerate
|
|
// USB mass storage devices
|
|
//
|
|
|
|
#define XCONTENTDEVICEFLAG_USBMASS (0x40000000)
|
|
|
|
typedef struct _XCREATECONTENTPARAM
|
|
{
|
|
DWORD dwUserIndex;
|
|
CHAR szRootName[64];
|
|
union
|
|
{
|
|
XCONTENT_DATA cd;
|
|
XCONTENT_DATA_INTERNAL cdi;
|
|
};
|
|
DWORD dwContentFlags;
|
|
PDWORD pdwDisposition;
|
|
PDWORD pdwLicenseMask;
|
|
DWORD dwFileCacheSize;
|
|
ULARGE_INTEGER uliContentSize;
|
|
PXOVERLAPPED pOverlapped;
|
|
DWORD cbContentData;
|
|
} XCREATECONTENTPARAM, *PXCREATECONTENTPARAM;
|
|
|
|
|
|
typedef PVOID HXAMAPP;
|
|
|
|
#define XENUMHEADERFLAG_NONE 0x00000000
|
|
#define XENUMHEADERFLAG_FOREGROUND_PRI 0x00000001
|
|
|
|
typedef struct _XENUMERATORHEADER
|
|
{
|
|
HXAMAPP hxamapp;
|
|
DWORD dwMsgIDEnum;
|
|
DWORD dwMsgIDCloseEnum;
|
|
DWORD dwUserIndex;
|
|
DWORD cItemsRequested;
|
|
DWORD dwEnumFlags;
|
|
} XENUMERATORHEADER, *PXENUMERATORHEADER;
|
|
|
|
DWORD
|
|
WINAPI
|
|
XContentCreateDeviceEnumerator(
|
|
IN DWORD dwContentTypes,
|
|
IN DWORD dwFlags,
|
|
IN DWORD cItem,
|
|
OUT PDWORD pcbBuffer OPTIONAL,
|
|
OUT PHANDLE phEnum
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
XContentFormatDevice(
|
|
IN XCONTENTDEVICEID DeviceID,
|
|
IN OUT PXOVERLAPPED pOverlapped OPTIONAL
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
XContentRenameDevice(
|
|
IN XCONTENTDEVICEID DeviceID,
|
|
IN LPCWSTR pwszName,
|
|
IN DWORD cchName
|
|
);
|
|
|
|
|
|
typedef struct _XENUMERATEPARAM
|
|
{
|
|
DWORD dwUserIndex;
|
|
DWORD dwFlags;
|
|
PVOID pvPrivateEnumStructure;
|
|
PVOID pvBuffer;
|
|
DWORD cbBuffer;
|
|
DWORD cItemsRequested;
|
|
PDWORD pcItemsReturned;
|
|
PXOVERLAPPED pxoverlapped;
|
|
} XENUMERATEPARAM;
|
|
|
|
// Enumeration flags
|
|
#define ENUMERATEFLAG_NONE 0x00000000
|
|
#define ENUMERATEFLAG_BACK 0x00000001
|
|
#define ENUMERATEFLAG_FOREGROUND 0x00000002
|
|
#define ENUMERATEFLAG_MATCHINGINSTANCE 0x00000004
|
|
#define ENUMERATEFLAG_INCLUDEPARTIALDOWNLOADS 0x00000008
|
|
#define ENUMERATEFLAG_INCLUDECORRUPTCONTENT 0x00000010
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Private Game Instrumentation structures and functions
|
|
//-----------------------------------------------------------------------------
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwUserIndex;
|
|
XUID xuid;
|
|
DWORD dwContextId;
|
|
DWORD dwContextValue;
|
|
} XGI_USERSETCONTEXT_MSG, *PXGI_USERSETCONTEXT_MSG;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwUserIndex;
|
|
XUID xuid;
|
|
DWORD dwPropertyId;
|
|
DWORD cbValue;
|
|
CONST VOID* pvValue;
|
|
} XGI_USERSETPROPERTY_MSG;
|
|
|
|
// General enumererator structure for XGI title and achievement enumerations
|
|
typedef struct _XENUMERATOR_XGI
|
|
{
|
|
DWORD dwTitleId;
|
|
XUID xuid;
|
|
DWORD dwUserIndex;
|
|
DWORD dwDetailFlags;
|
|
DWORD dwCurrentOffset;
|
|
BOOL fServer;
|
|
} XENUMERATOR_XGI, *PXENUMERATOR_XGI;
|
|
|
|
typedef struct _XGI_CREATEENUM_MSG
|
|
{
|
|
DWORD dwTitleId; // A title in your family or 0 for the current title
|
|
DWORD dwUserIndex; // User index of locally signed-in user whose "things" are enumerated
|
|
XUID xuid; // XUID of remote user whose "things" are enumerated
|
|
DWORD dwDetailFlags; // Get the descriptions, etc. (used for achievements)
|
|
DWORD dwStartingIndex; // Number to start at
|
|
PXENUMERATOR_XGI pxenum;
|
|
} XGI_CREATEENUM_MSG, *PXGI_CREATEENUM_MSG;
|
|
|
|
// Message passed to system app to write an achievement
|
|
typedef struct
|
|
{
|
|
DWORD dwNumAchievements; // Number of structs in pAchievements
|
|
CONST XUSER_ACHIEVEMENT* pAchievements; // Achievement/user tuple to set
|
|
} XGI_WRITEACHIEVEMENT_MSG;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Internal functions
|
|
//-----------------------------------------------------------------------------
|
|
|
|
DWORD XVerifySameFamily(DWORD dwTitleId);
|
|
|
|
|
|
//
|
|
// Internal only privileges
|
|
//
|
|
|
|
#define XPRIVILEGE_ADD_FRIEND 255 // on|off
|
|
#define XPRIVILEGE_MULTIPLAYER_ENABLED_BY_TIER 253 // on|off
|
|
#define XPRIVILEGE_VIDEO_MESSAGING_SEND 250 // on|off
|
|
#define XPRIVILEGE_XBOX1_LIVE_ACCESS 242 // on|off
|
|
|
|
#define X_PROPERTY_MODIFIER_MASK 0x0F000000
|
|
#define X_PROPERTY_MATCHTYPE_MASK 0x00F00000
|
|
#define X_PROPERTY_RESERVED_MASK 0x000F0000
|
|
// These must match the X_ATTRIBUTE_TYPE_MASK value defines
|
|
#define X_PROPERTY_MODIFIER_PARAM 0x02000000
|
|
#define X_PROPERTY_MODIFIER_BUILTIN 0x03000000
|
|
#define X_PROPERTY_MODIFIER_CONSTANT 0x05000000
|
|
|
|
// These must match the X_ATTRIBUTE_DATATYPE_MASK value defines
|
|
#define X_PROPERTY_MATCHTYPE_INTEGER 0x00000000
|
|
#define X_PROPERTY_MATCHTYPE_STRING 0x00100000
|
|
#define X_PROPERTY_MATCHTYPE_BLOB 0x00200000
|
|
#define X_PROPERTY_MATCHTYPE_NULL 0x00F00000
|
|
|
|
// Picture keys are in the format of XXXXXXXXXYYYYYYYYZZZZZZZZ
|
|
// where
|
|
// XXXXXXXX is the title id associated with the picture (in hex)
|
|
// YYYYYYYY is the normal picture image id (in hex)
|
|
// ZZZZZZZZ is the small picture image id (in hex)
|
|
//
|
|
|
|
#define XUSER_PICTURE_KEY_LEN ((sizeof(DWORD) * 2) * 3)
|
|
// Add room for a terminating null
|
|
#define XUSER_PICTURE_KEY_CHARS (XUSER_PICTURE_KEY_LEN + 1)
|
|
|
|
// Stats APIs
|
|
//-----------------------------------------------------------------------------
|
|
// Private stats structures and functions
|
|
//-----------------------------------------------------------------------------
|
|
|
|
typedef struct _XGI_VIEWRESET_MSG
|
|
{
|
|
DWORD dwUserIndex;
|
|
DWORD dwViewId;
|
|
} XGI_VIEWRESET_MSG, *PXGI_VIEWRESET_MSG;
|
|
|
|
typedef struct _XGI_STATSREAD_MSG
|
|
{
|
|
DWORD dwTitleId;
|
|
DWORD dwNumXuids;
|
|
CONST XUID* pXuids;
|
|
DWORD dwNumStatsSpecs;
|
|
CONST XUSER_STATS_SPEC* pSpecs;
|
|
DWORD cbResults;
|
|
PXUSER_STATS_READ_RESULTS pResults;
|
|
} XGI_STATSREAD_MSG, *PXGI_STATSREAD_MSG;
|
|
|
|
typedef struct _XGI_STATSENUM_MSG
|
|
{
|
|
DWORD dwTitleId;
|
|
DWORD dwRankStart;
|
|
DWORD dwNumRows;
|
|
DWORD dwNumStatsSpecs;
|
|
CONST XUSER_STATS_SPEC* pSpecs;
|
|
DWORD cbBuffer;
|
|
PHANDLE ph; // Handle to created enumerator
|
|
} XGI_STATSENUM_MSG, *PXGI_STATSENUM_MSG;
|
|
|
|
|
|
typedef enum _XGI_STATS_ENUMERATOR_TYPE
|
|
{
|
|
XGI_STATS_ENUM_BY_XUID,
|
|
XGI_STATS_ENUM_BY_RANK,
|
|
XGI_STATS_ENUM_BY_RANK_PER_SPEC,
|
|
XGI_STATS_ENUM_BY_RATING
|
|
} XGI_STATS_ENUMERATOR_TYPE;
|
|
|
|
// Data held by each stats enumerator.
|
|
typedef struct _XENUMERATOR_STATS
|
|
{
|
|
DWORD dwTitleId;
|
|
XGI_STATS_ENUMERATOR_TYPE enumType;
|
|
ULONGLONG qwPivot;
|
|
PDWORD pStaringRanks;
|
|
DWORD dwNumStatsSpecs;
|
|
PXUSER_STATS_SPEC pSpecs;
|
|
} XENUMERATOR_STATS, *PXENUMERATOR_STATS;
|
|
|
|
typedef struct _XGI_CREATESTATSENUM_MSG
|
|
{
|
|
DWORD dwTitleId;
|
|
PXENUMERATOR_STATS pStatsEnum;
|
|
} XGI_CREATESTATSENUM_MSG, *PXGI_CREATESTATSENUM_MSG;
|
|
|
|
// Signin UI API
|
|
#define XSSUI_FLAGS_ADDUSER 0x00010000
|
|
#define XSSUI_FLAGS_COMPLETESIGNIN 0x00020000
|
|
#define XSSUI_FLAGS_SHOWONLYPARENTALLYCONTROLLED 0x00040000
|
|
#define XSSUI_FLAGS_ENABLE_GUEST 0x00080000
|
|
#define XSSUI_FLAGS_DISALLOWRELOAD 0x00100000
|
|
#define XSSUI_FLAGS_VALID (XSSUI_FLAGS_SHOWONLYONLINEENABLED | \
|
|
XSSUI_FLAGS_LOCALSIGNINONLY | \
|
|
XSSUI_FLAGS_ADDUSER | \
|
|
XSSUI_FLAGS_COMPLETESIGNIN | \
|
|
XSSUI_FLAGS_SHOWONLYPARENTALLYCONTROLLED | \
|
|
XSSUI_FLAGS_ENABLE_GUEST | \
|
|
XSSUI_FLAGS_DISALLOWRELOAD)
|
|
|
|
|
|
XBOXAPI
|
|
DWORD
|
|
WINAPI
|
|
XShowSigninUIp(
|
|
IN DWORD dwUserIndex,
|
|
IN DWORD cPanes,
|
|
IN DWORD dwFlags
|
|
);
|
|
|
|
|
|
typedef enum _XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINTS {
|
|
XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINT_ADDPOINTS = XSHOWMARKETPLACEUI_ENTRYPOINT_MAX,
|
|
XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINT_PREPAIDCODE,
|
|
XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINT_FNC,
|
|
XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINT_GAMERTAGPURCHASE,
|
|
XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINT_SIGNUP_CREDITCARD,
|
|
XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINT_SIGNUP_PARENTCREDITCARD,
|
|
XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINT_FILTERED_CONTENTLIST,
|
|
XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINT_MAX
|
|
} XSHOWMARKETPLACEUI_PRIVATE_ENTRYPOINTS;
|
|
|
|
#define XMB_ICONMASK 0x00000003
|
|
#define XMB_WAITANIMATION 0x00001000
|
|
#define XMB_LIVEPASSCODEMODE 0x00030000
|
|
#define XMB_MODEMASK 0x00030000
|
|
|
|
#define MAXACTIONTEXTLENGTH 30
|
|
#define MAXACTIONS 3
|
|
|
|
XBOXAPI
|
|
VOID
|
|
WINAPI
|
|
XCustomGetActionSetting(
|
|
IN DWORD dwActionIndex,
|
|
OUT DWORD* pdwFlags,
|
|
OUT LPWSTR szActionText,
|
|
IN DWORD cchMaxText
|
|
);
|
|
|
|
XBOXAPI
|
|
VOID
|
|
WINAPI
|
|
XCustomBroadcastActionEvent(
|
|
IN DWORD dwUserIndex,
|
|
IN DWORD dwActionIndex,
|
|
IN XUID xuid
|
|
);
|
|
|
|
#ifndef HXUIBRUSH
|
|
typedef struct _XUIBRUSH* HXUIBRUSH;
|
|
#endif
|
|
|
|
HRESULT
|
|
WINAPI
|
|
XCustomGetBannerImage(
|
|
OUT HXUIBRUSH* phBrush
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#pragma warning(pop)
|
|
|
|
#endif // _XBOXP_
|
|
|