Headers diff for user32.dll between 6.1.7601.19061-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 dde.h (6.1.7601.19061-Windows_7.0)   dde.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 19 skipping to change at line 19
#define _DDEHEADER_INCLUDED_ #define _DDEHEADER_INCLUDED_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#ifndef _WINDEF_ #ifndef _WINDEF_
#include <windef.h> #include <windef.h>
#endif #endif
#include <winapifamily.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// begin_r_dde // begin_r_dde
/* DDE window messages */ /* DDE window messages */
#define WM_DDE_FIRST 0x03E0 #define WM_DDE_FIRST 0x03E0
#define WM_DDE_INITIATE (WM_DDE_FIRST) #define WM_DDE_INITIATE (WM_DDE_FIRST)
#define WM_DDE_TERMINATE (WM_DDE_FIRST+1) #define WM_DDE_TERMINATE (WM_DDE_FIRST+1)
#define WM_DDE_ADVISE (WM_DDE_FIRST+2) #define WM_DDE_ADVISE (WM_DDE_FIRST+2)
#define WM_DDE_UNADVISE (WM_DDE_FIRST+3) #define WM_DDE_UNADVISE (WM_DDE_FIRST+3)
#define WM_DDE_ACK (WM_DDE_FIRST+4) #define WM_DDE_ACK (WM_DDE_FIRST+4)
skipping to change at line 187 skipping to change at line 192
HWND hWndServer); HWND hWndServer);
/* /*
* DDE message packing APIs * DDE message packing APIs
*/ */
LPARAM APIENTRY PackDDElParam(UINT msg, UINT_PTR uiLo, UINT_PTR uiHi); LPARAM APIENTRY PackDDElParam(UINT msg, UINT_PTR uiLo, UINT_PTR uiHi);
BOOL APIENTRY UnpackDDElParam(UINT msg, LPARAM lParam, PUINT_PTR puiLo, PUINT_ PTR puiHi); BOOL APIENTRY UnpackDDElParam(UINT msg, LPARAM lParam, PUINT_PTR puiLo, PUINT_ PTR puiHi);
BOOL APIENTRY FreeDDElParam(UINT msg, LPARAM lParam); BOOL APIENTRY FreeDDElParam(UINT msg, LPARAM lParam);
LPARAM APIENTRY ReuseDDElParam(LPARAM lParam, UINT msgIn, UINT msgOut, UINT_PTR uiLo, UINT_PTR uiHi); LPARAM APIENTRY ReuseDDElParam(LPARAM lParam, UINT msgIn, UINT msgOut, UINT_PTR uiLo, UINT_PTR uiHi);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // _DDEHEADER_INCLUDED_ #endif // _DDEHEADER_INCLUDED_
 End of changes. 3 change blocks. 
0 lines changed or deleted 8 lines changed or added


 ddeml.h (6.1.7601.19061-Windows_7.0)   ddeml.h (6.3.9600.17415-Windows_8.1) 
#include <winapifamily.h>
/*++ BUILD Version: 0001 // Increment this if a change has global effects --*/ /*++ BUILD Version: 0001 // Increment this if a change has global effects --*/
/*****************************************************************************\ /*****************************************************************************\
* * * *
* ddeml.h - DDEML API header file * * ddeml.h - DDEML API header file *
* * * *
* Version 3.10 * * Version 3.10 *
* * * *
* Copyright (c) Microsoft Corporation. All rights reserved. * * Copyright (c) Microsoft Corporation. All rights reserved. *
* * * *
\*****************************************************************************/ \*****************************************************************************/
#ifndef _INC_DDEMLH #ifndef _INC_DDEMLH
#define _INC_DDEMLH #define _INC_DDEMLH
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/******** public types ********/ /******** public types ********/
DECLARE_HANDLE(HCONVLIST); DECLARE_HANDLE(HCONVLIST);
DECLARE_HANDLE(HCONV); DECLARE_HANDLE(HCONV);
DECLARE_HANDLE(HSZ); DECLARE_HANDLE(HSZ);
DECLARE_HANDLE(HDDEDATA); DECLARE_HANDLE(HDDEDATA);
#define EXPENTRY CALLBACK #define EXPENTRY CALLBACK
/* the following structure is for use with XTYP_WILDCONNECT processing. */ /* the following structure is for use with XTYP_WILDCONNECT processing. */
skipping to change at line 209 skipping to change at line 213
typedef HDDEDATA (CALLBACK *PFNCALLBACK)(UINT wType, UINT wFmt, HCONV hConv, typedef HDDEDATA (CALLBACK *PFNCALLBACK)(UINT wType, UINT wFmt, HCONV hConv,
HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2 ); HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2 );
#define CBR_BLOCK ((HDDEDATA)-1) #define CBR_BLOCK ((HDDEDATA)-1)
/* DLL registration functions */ /* DLL registration functions */
UINT UINT
WINAPI WINAPI
DdeInitializeA( DdeInitializeA(
__inout LPDWORD pidInst, _Inout_ LPDWORD pidInst,
__in PFNCALLBACK pfnCallback, _In_ PFNCALLBACK pfnCallback,
__in DWORD afCmd, _In_ DWORD afCmd,
__reserved DWORD ulRes); _Reserved_ DWORD ulRes);
UINT UINT
WINAPI WINAPI
DdeInitializeW( DdeInitializeW(
__inout LPDWORD pidInst, _Inout_ LPDWORD pidInst,
__in PFNCALLBACK pfnCallback, _In_ PFNCALLBACK pfnCallback,
__in DWORD afCmd, _In_ DWORD afCmd,
__reserved DWORD ulRes); _Reserved_ DWORD ulRes);
#ifdef UNICODE #ifdef UNICODE
#define DdeInitialize DdeInitializeW #define DdeInitialize DdeInitializeW
#else #else
#define DdeInitialize DdeInitializeA #define DdeInitialize DdeInitializeA
#endif // !UNICODE #endif // !UNICODE
/* /*
* Callback filter flags for use with standard apps. * Callback filter flags for use with standard apps.
*/ */
skipping to change at line 260 skipping to change at line 264
/* /*
* Application classification flags * Application classification flags
*/ */
#define APPCLASS_STANDARD 0x00000000L #define APPCLASS_STANDARD 0x00000000L
#define APPCLASS_MASK 0x0000000FL #define APPCLASS_MASK 0x0000000FL
BOOL BOOL
WINAPI WINAPI
DdeUninitialize( DdeUninitialize(
__in DWORD idInst); _In_ DWORD idInst);
/* /*
* conversation enumeration functions * conversation enumeration functions
*/ */
HCONVLIST HCONVLIST
WINAPI WINAPI
DdeConnectList( DdeConnectList(
__in DWORD idInst, _In_ DWORD idInst,
__in HSZ hszService, _In_ HSZ hszService,
__in HSZ hszTopic, _In_ HSZ hszTopic,
__in HCONVLIST hConvList, _In_ HCONVLIST hConvList,
__in_opt PCONVCONTEXT pCC); _In_opt_ PCONVCONTEXT pCC);
HCONV HCONV
WINAPI WINAPI
DdeQueryNextServer( DdeQueryNextServer(
__in HCONVLIST hConvList, _In_ HCONVLIST hConvList,
__in HCONV hConvPrev); _In_ HCONV hConvPrev);
BOOL BOOL
WINAPI WINAPI
DdeDisconnectList( DdeDisconnectList(
__in HCONVLIST hConvList); _In_ HCONVLIST hConvList);
/* /*
* conversation control functions * conversation control functions
*/ */
HCONV HCONV
WINAPI WINAPI
DdeConnect( DdeConnect(
__in DWORD idInst, _In_ DWORD idInst,
__in HSZ hszService, _In_ HSZ hszService,
__in HSZ hszTopic, _In_ HSZ hszTopic,
__in_opt PCONVCONTEXT pCC); _In_opt_ PCONVCONTEXT pCC);
BOOL BOOL
WINAPI WINAPI
DdeDisconnect( DdeDisconnect(
__in HCONV hConv); _In_ HCONV hConv);
HCONV HCONV
WINAPI WINAPI
DdeReconnect( DdeReconnect(
__in HCONV hConv); _In_ HCONV hConv);
UINT UINT
WINAPI WINAPI
DdeQueryConvInfo( DdeQueryConvInfo(
__in HCONV hConv, _In_ HCONV hConv,
__in DWORD idTransaction, _In_ DWORD idTransaction,
__inout PCONVINFO pConvInfo); _Inout_ PCONVINFO pConvInfo);
BOOL BOOL
WINAPI WINAPI
DdeSetUserHandle( DdeSetUserHandle(
__in HCONV hConv, _In_ HCONV hConv,
__in DWORD id, _In_ DWORD id,
__in DWORD_PTR hUser); _In_ DWORD_PTR hUser);
BOOL BOOL
WINAPI WINAPI
DdeAbandonTransaction( DdeAbandonTransaction(
__in DWORD idInst, _In_ DWORD idInst,
__in HCONV hConv, _In_ HCONV hConv,
__in DWORD idTransaction); _In_ DWORD idTransaction);
/* /*
* app server interface functions * app server interface functions
*/ */
BOOL BOOL
WINAPI WINAPI
DdePostAdvise( DdePostAdvise(
__in DWORD idInst, _In_ DWORD idInst,
__in HSZ hszTopic, _In_ HSZ hszTopic,
__in HSZ hszItem); _In_ HSZ hszItem);
BOOL BOOL
WINAPI WINAPI
DdeEnableCallback( DdeEnableCallback(
__in DWORD idInst, _In_ DWORD idInst,
__in HCONV hConv, _In_ HCONV hConv,
__in UINT wCmd); _In_ UINT wCmd);
BOOL BOOL
WINAPI WINAPI
DdeImpersonateClient( DdeImpersonateClient(
__in HCONV hConv); _In_ HCONV hConv);
#define EC_ENABLEALL 0 #define EC_ENABLEALL 0
#define EC_ENABLEONE ST_BLOCKNEXT #define EC_ENABLEONE ST_BLOCKNEXT
#define EC_DISABLE ST_BLOCKED #define EC_DISABLE ST_BLOCKED
#define EC_QUERYWAITING 2 #define EC_QUERYWAITING 2
HDDEDATA HDDEDATA
WINAPI WINAPI
DdeNameService( DdeNameService(
__in DWORD idInst, _In_ DWORD idInst,
__in_opt HSZ hsz1, _In_opt_ HSZ hsz1,
__in_opt HSZ hsz2, _In_opt_ HSZ hsz2,
__in UINT afCmd); _In_ UINT afCmd);
#define DNS_REGISTER 0x0001 #define DNS_REGISTER 0x0001
#define DNS_UNREGISTER 0x0002 #define DNS_UNREGISTER 0x0002
#define DNS_FILTERON 0x0004 #define DNS_FILTERON 0x0004
#define DNS_FILTEROFF 0x0008 #define DNS_FILTEROFF 0x0008
/* /*
* app client interface functions * app client interface functions
*/ */
HDDEDATA HDDEDATA
WINAPI WINAPI
DdeClientTransaction( DdeClientTransaction(
__in_opt LPBYTE pData, _In_opt_ LPBYTE pData,
__in DWORD cbData, _In_ DWORD cbData,
__in HCONV hConv, _In_ HCONV hConv,
__in_opt HSZ hszItem, _In_opt_ HSZ hszItem,
__in UINT wFmt, _In_ UINT wFmt,
__in UINT wType, _In_ UINT wType,
__in DWORD dwTimeout, _In_ DWORD dwTimeout,
__out_opt LPDWORD pdwResult); _Out_opt_ LPDWORD pdwResult);
/* /*
*data transfer functions *data transfer functions
*/ */
HDDEDATA HDDEDATA
WINAPI WINAPI
DdeCreateDataHandle( DdeCreateDataHandle(
__in DWORD idInst, _In_ DWORD idInst,
__in_bcount_opt(cb) LPBYTE pSrc, _In_reads_bytes_opt_(cb) LPBYTE pSrc,
__in DWORD cb, _In_ DWORD cb,
__in DWORD cbOff, _In_ DWORD cbOff,
__in_opt HSZ hszItem, _In_opt_ HSZ hszItem,
__in UINT wFmt, _In_ UINT wFmt,
__in UINT afCmd); _In_ UINT afCmd);
HDDEDATA HDDEDATA
WINAPI WINAPI
DdeAddData( DdeAddData(
__in HDDEDATA hData, _In_ HDDEDATA hData,
__in_bcount(cb) LPBYTE pSrc, _In_reads_bytes_(cb) LPBYTE pSrc,
__in DWORD cb, _In_ DWORD cb,
__in DWORD cbOff); _In_ DWORD cbOff);
DWORD DWORD
WINAPI WINAPI
DdeGetData( DdeGetData(
__in HDDEDATA hData, _In_ HDDEDATA hData,
__out_bcount_opt(cbMax) LPBYTE pDst, _Out_writes_bytes_opt_(cbMax) LPBYTE pDst,
__in DWORD cbMax, _In_ DWORD cbMax,
__in DWORD cbOff); _In_ DWORD cbOff);
LPBYTE LPBYTE
WINAPI WINAPI
DdeAccessData( DdeAccessData(
__in HDDEDATA hData, _In_ HDDEDATA hData,
__out_opt LPDWORD pcbDataSize); _Out_opt_ LPDWORD pcbDataSize);
BOOL BOOL
WINAPI WINAPI
DdeUnaccessData( DdeUnaccessData(
__in HDDEDATA hData); _In_ HDDEDATA hData);
BOOL BOOL
WINAPI WINAPI
DdeFreeDataHandle( DdeFreeDataHandle(
__in HDDEDATA hData); _In_ HDDEDATA hData);
#define HDATA_APPOWNED 0x0001 #define HDATA_APPOWNED 0x0001
UINT UINT
WINAPI WINAPI
DdeGetLastError( DdeGetLastError(
__in DWORD idInst); _In_ DWORD idInst);
#define DMLERR_NO_ERROR 0 /* must be 0 */ #define DMLERR_NO_ERROR 0 /* must be 0 */
#define DMLERR_FIRST 0x4000 #define DMLERR_FIRST 0x4000
#define DMLERR_ADVACKTIMEOUT 0x4000 #define DMLERR_ADVACKTIMEOUT 0x4000
#define DMLERR_BUSY 0x4001 #define DMLERR_BUSY 0x4001
#define DMLERR_DATAACKTIMEOUT 0x4002 #define DMLERR_DATAACKTIMEOUT 0x4002
#define DMLERR_DLL_NOT_INITIALIZED 0x4003 #define DMLERR_DLL_NOT_INITIALIZED 0x4003
#define DMLERR_DLL_USAGE 0x4004 #define DMLERR_DLL_USAGE 0x4004
skipping to change at line 463 skipping to change at line 467
#define DMLERR_SERVER_DIED 0x400e #define DMLERR_SERVER_DIED 0x400e
#define DMLERR_SYS_ERROR 0x400f #define DMLERR_SYS_ERROR 0x400f
#define DMLERR_UNADVACKTIMEOUT 0x4010 #define DMLERR_UNADVACKTIMEOUT 0x4010
#define DMLERR_UNFOUND_QUEUE_ID 0x4011 #define DMLERR_UNFOUND_QUEUE_ID 0x4011
#define DMLERR_LAST 0x4011 #define DMLERR_LAST 0x4011
HSZ HSZ
WINAPI WINAPI
DdeCreateStringHandleA( DdeCreateStringHandleA(
__in DWORD idInst, _In_ DWORD idInst,
__in LPCSTR psz, _In_ LPCSTR psz,
__in int iCodePage); _In_ int iCodePage);
HSZ HSZ
WINAPI WINAPI
DdeCreateStringHandleW( DdeCreateStringHandleW(
__in DWORD idInst, _In_ DWORD idInst,
__in LPCWSTR psz, _In_ LPCWSTR psz,
__in int iCodePage); _In_ int iCodePage);
#ifdef UNICODE #ifdef UNICODE
#define DdeCreateStringHandle DdeCreateStringHandleW #define DdeCreateStringHandle DdeCreateStringHandleW
#else #else
#define DdeCreateStringHandle DdeCreateStringHandleA #define DdeCreateStringHandle DdeCreateStringHandleA
#endif // !UNICODE #endif // !UNICODE
DWORD DWORD
WINAPI WINAPI
DdeQueryStringA( DdeQueryStringA(
__in DWORD idInst, _In_ DWORD idInst,
__in HSZ hsz, _In_ HSZ hsz,
__out_ecount_opt(cchMax) LPSTR psz, _Out_writes_opt_(cchMax) LPSTR psz,
__in DWORD cchMax, _In_ DWORD cchMax,
__in int iCodePage); _In_ int iCodePage);
DWORD DWORD
WINAPI WINAPI
DdeQueryStringW( DdeQueryStringW(
__in DWORD idInst, _In_ DWORD idInst,
__in HSZ hsz, _In_ HSZ hsz,
__out_ecount_opt(cchMax) LPWSTR psz, _Out_writes_opt_(cchMax) LPWSTR psz,
__in DWORD cchMax, _In_ DWORD cchMax,
__in int iCodePage); _In_ int iCodePage);
#ifdef UNICODE #ifdef UNICODE
#define DdeQueryString DdeQueryStringW #define DdeQueryString DdeQueryStringW
#else #else
#define DdeQueryString DdeQueryStringA #define DdeQueryString DdeQueryStringA
#endif // !UNICODE #endif // !UNICODE
BOOL BOOL
WINAPI WINAPI
DdeFreeStringHandle( DdeFreeStringHandle(
__in DWORD idInst, _In_ DWORD idInst,
__in HSZ hsz); _In_ HSZ hsz);
BOOL BOOL
WINAPI WINAPI
DdeKeepStringHandle( DdeKeepStringHandle(
__in DWORD idInst, _In_ DWORD idInst,
__in HSZ hsz); _In_ HSZ hsz);
int int
WINAPI WINAPI
DdeCmpStringHandles( DdeCmpStringHandles(
__in HSZ hsz1, _In_ HSZ hsz1,
__in HSZ hsz2); _In_ HSZ hsz2);
#ifndef NODDEMLSPY #ifndef NODDEMLSPY
/* /*
* DDEML public debugging header file info * DDEML public debugging header file info
*/ */
typedef struct tagDDEML_MSG_HOOK_DATA { // new for NT typedef struct tagDDEML_MSG_HOOK_DATA { // new for NT
UINT_PTR uiLo; // unpacked lo and hi parts of lParam UINT_PTR uiLo; // unpacked lo and hi parts of lParam
UINT_PTR uiHi; UINT_PTR uiHi;
DWORD cbData; // amount of data in message, if any. May be > than 32 bytes . DWORD cbData; // amount of data in message, if any. May be > than 32 bytes .
skipping to change at line 640 skipping to change at line 644
#define MF_SENDMSGS 0x02000000 #define MF_SENDMSGS 0x02000000
#define MF_POSTMSGS 0x04000000 #define MF_POSTMSGS 0x04000000
#define MF_CALLBACKS 0x08000000 #define MF_CALLBACKS 0x08000000
#define MF_ERRORS 0x10000000 #define MF_ERRORS 0x10000000
#define MF_LINKS 0x20000000 #define MF_LINKS 0x20000000
#define MF_CONV 0x40000000 #define MF_CONV 0x40000000
#define MF_MASK 0xFF000000 #define MF_MASK 0xFF000000
#endif /* NODDEMLSPY */ #endif /* NODDEMLSPY */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif /* _INC_DDEMLH */ #endif /* _INC_DDEMLH */
 End of changes. 34 change blocks. 
93 lines changed or deleted 100 lines changed or added


 ime.h (6.1.7601.19061-Windows_7.0)   ime.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 19 skipping to change at line 19
Abstract: Abstract:
Procedure declarations, constant definitions and macros for the IME Procedure declarations, constant definitions and macros for the IME
component. component.
--*/ --*/
#ifndef _IME_ #ifndef _IME_
#define _IME_ #define _IME_
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#ifndef _WINDEF_ #ifndef _WINDEF_
typedef unsigned int UINT; typedef unsigned int UINT;
#endif // _WINDEF_ #endif // _WINDEF_
#define IME_MAXPROCESS 32 #define IME_MAXPROCESS 32
skipping to change at line 231 skipping to change at line 236
UINT uDeterminePos; UINT uDeterminePos;
UINT uDetermineDelimPos; UINT uDetermineDelimPos;
UINT uYomiPos; UINT uYomiPos;
UINT uYomiDelimPos; UINT uYomiDelimPos;
} STRINGEXSTRUCT,NEAR *NPSTRINGEXSTRUCT,FAR *LPSTRINGEXSTRUCT; } STRINGEXSTRUCT,NEAR *NPSTRINGEXSTRUCT,FAR *LPSTRINGEXSTRUCT;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // _IME_ #endif // _IME_
 End of changes. 2 change blocks. 
0 lines changed or deleted 8 lines changed or added


 winuser.h (6.1.7601.19061-Windows_7.0)   winuser.h (6.3.9600.17415-Windows_8.1) 
#include <winapifamily.h>
/**************************************************************************** /****************************************************************************
* * * *
* winuser.h -- USER procedure declarations, constant definitions and macros * * winuser.h -- USER procedure declarations, constant definitions and macros *
* * * *
* Copyright (c) Microsoft Corporation. All rights reserved. * * Copyright (c) Microsoft Corporation. All rights reserved. *
* * * *
****************************************************************************/ ****************************************************************************/
#ifndef _WINUSER_ #ifndef _WINUSER_
#define _WINUSER_ #define _WINUSER_
#pragma once #pragma once
// //
// Define API decoration for direct importing of DLL references. // Define API decoration for direct importing of DLL references.
// //
#if !defined(WINUSERAPI)
#if !defined(_USER32_) #if !defined(_USER32_)
#define WINUSERAPI DECLSPEC_IMPORT #define WINUSERAPI DECLSPEC_IMPORT
#define WINABLEAPI DECLSPEC_IMPORT
#else #else
#define WINUSERAPI #define WINUSERAPI
#endif
#endif
#if !defined(WINABLEAPI)
#if !defined(_USER32_)
#define WINABLEAPI DECLSPEC_IMPORT
#else
#define WINABLEAPI #define WINABLEAPI
#endif #endif
#endif
#ifdef _MAC #ifdef _MAC
#include <macwin32.h> #include <macwin32.h>
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#ifndef WINVER #ifndef WINVER
#define WINVER 0x0500 /* version 5.0 */ #define WINVER 0x0500 /* version 5.0 */
#endif /* !WINVER */ #endif /* !WINVER */
#include <stdarg.h> #include <stdarg.h>
#ifndef NOAPISET
#include <libloaderapi.h> // LoadString%
#endif
#ifndef NOUSER #ifndef NOUSER
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef HANDLE HDWP; typedef HANDLE HDWP;
typedef VOID MENUTEMPLATEA; typedef VOID MENUTEMPLATEA;
typedef VOID MENUTEMPLATEW; typedef VOID MENUTEMPLATEW;
#ifdef UNICODE #ifdef UNICODE
typedef MENUTEMPLATEW MENUTEMPLATE; typedef MENUTEMPLATEW MENUTEMPLATE;
#else #else
typedef MENUTEMPLATEA MENUTEMPLATE; typedef MENUTEMPLATEA MENUTEMPLATE;
#endif // UNICODE #endif // UNICODE
typedef PVOID LPMENUTEMPLATEA; typedef PVOID LPMENUTEMPLATEA;
typedef PVOID LPMENUTEMPLATEW; typedef PVOID LPMENUTEMPLATEW;
#ifdef UNICODE #ifdef UNICODE
typedef LPMENUTEMPLATEW LPMENUTEMPLATE; typedef LPMENUTEMPLATEW LPMENUTEMPLATE;
#else #else
typedef LPMENUTEMPLATEA LPMENUTEMPLATE; typedef LPMENUTEMPLATEA LPMENUTEMPLATE;
#endif // UNICODE #endif // UNICODE
typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM); typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef STRICT #ifdef STRICT
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM); typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT_PTR, DWORD); typedef VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT_PTR, DWORD);
typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int); typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int);
typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM); typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM);
typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam); typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
typedef VOID (CALLBACK* SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT); typedef VOID (CALLBACK* SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT);
typedef BOOL (CALLBACK* PROPENUMPROCA)(HWND, LPCSTR, HANDLE); typedef BOOL (CALLBACK* PROPENUMPROCA)(HWND, LPCSTR, HANDLE);
typedef BOOL (CALLBACK* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE); typedef BOOL (CALLBACK* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE);
typedef BOOL (CALLBACK* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, ULONG_PTR); typedef BOOL (CALLBACK* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, ULONG_PTR);
typedef BOOL (CALLBACK* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, ULONG_PTR); typedef BOOL (CALLBACK* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, ULONG_PTR);
typedef int (CALLBACK* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code); typedef int (CALLBACK* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code);
typedef int (CALLBACK* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code); typedef int (CALLBACK* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
typedef BOOL (CALLBACK* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy); typedef BOOL (CALLBACK* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#else /* !STRICT */ #else /* !STRICT */
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef FARPROC DLGPROC; typedef FARPROC DLGPROC;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef FARPROC TIMERPROC; typedef FARPROC TIMERPROC;
typedef FARPROC GRAYSTRINGPROC; typedef FARPROC GRAYSTRINGPROC;
typedef FARPROC WNDENUMPROC; typedef FARPROC WNDENUMPROC;
typedef FARPROC HOOKPROC; typedef FARPROC HOOKPROC;
typedef FARPROC SENDASYNCPROC; typedef FARPROC SENDASYNCPROC;
typedef FARPROC EDITWORDBREAKPROCA; typedef FARPROC EDITWORDBREAKPROCA;
typedef FARPROC EDITWORDBREAKPROCW; typedef FARPROC EDITWORDBREAKPROCW;
typedef FARPROC PROPENUMPROCA; typedef FARPROC PROPENUMPROCA;
typedef FARPROC PROPENUMPROCW; typedef FARPROC PROPENUMPROCW;
typedef FARPROC PROPENUMPROCEXA; typedef FARPROC PROPENUMPROCEXA;
typedef FARPROC PROPENUMPROCEXW; typedef FARPROC PROPENUMPROCEXW;
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
typedef FARPROC DRAWSTATEPROC; typedef FARPROC DRAWSTATEPROC;
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !STRICT */ #endif /* !STRICT */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef UNICODE #ifdef UNICODE
typedef PROPENUMPROCW PROPENUMPROC; typedef PROPENUMPROCW PROPENUMPROC;
typedef PROPENUMPROCEXW PROPENUMPROCEX; typedef PROPENUMPROCEXW PROPENUMPROCEX;
typedef EDITWORDBREAKPROCW EDITWORDBREAKPROC; typedef EDITWORDBREAKPROCW EDITWORDBREAKPROC;
#else /* !UNICODE */ #else /* !UNICODE */
typedef PROPENUMPROCA PROPENUMPROC; typedef PROPENUMPROCA PROPENUMPROC;
typedef PROPENUMPROCEXA PROPENUMPROCEX; typedef PROPENUMPROCEXA PROPENUMPROCEX;
typedef EDITWORDBREAKPROCA EDITWORDBREAKPROC; typedef EDITWORDBREAKPROCA EDITWORDBREAKPROC;
#endif /* UNICODE */ #endif /* UNICODE */
skipping to change at line 147 skipping to change at line 195
#ifdef UNICODE #ifdef UNICODE
typedef WINSTAENUMPROCW WINSTAENUMPROC; typedef WINSTAENUMPROCW WINSTAENUMPROC;
typedef DESKTOPENUMPROCW DESKTOPENUMPROC; typedef DESKTOPENUMPROCW DESKTOPENUMPROC;
#else /* !UNICODE */ #else /* !UNICODE */
typedef WINSTAENUMPROCA WINSTAENUMPROC; typedef WINSTAENUMPROCA WINSTAENUMPROC;
typedef DESKTOPENUMPROCA DESKTOPENUMPROC; typedef DESKTOPENUMPROCA DESKTOPENUMPROC;
#endif /* UNICODE */ #endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define IS_INTRESOURCE(_r) ((((ULONG_PTR)(_r)) >> 16) == 0) #define IS_INTRESOURCE(_r) ((((ULONG_PTR)(_r)) >> 16) == 0)
#define MAKEINTRESOURCEA(i) ((LPSTR)((ULONG_PTR)((WORD)(i)))) #define MAKEINTRESOURCEA(i) ((LPSTR)((ULONG_PTR)((WORD)(i))))
#define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i)))) #define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i))))
#ifdef UNICODE #ifdef UNICODE
#define MAKEINTRESOURCE MAKEINTRESOURCEW #define MAKEINTRESOURCE MAKEINTRESOURCEW
#else #else
#define MAKEINTRESOURCE MAKEINTRESOURCEA #define MAKEINTRESOURCE MAKEINTRESOURCEA
#endif // !UNICODE #endif // !UNICODE
#ifndef NORESOURCE #ifndef NORESOURCE
skipping to change at line 208 skipping to change at line 259
#define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(16 /*inclusive*/) #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(16 /*inclusive*/)
#endif /* RC_INVOKED */ #endif /* RC_INVOKED */
#endif /* !NORESOURCE */ #endif /* !NORESOURCE */
#if defined(DEPRECATE_SUPPORTED) #if defined(DEPRECATE_SUPPORTED)
#pragma warning(push) #pragma warning(push)
#pragma warning(disable:4995) #pragma warning(disable:4995)
#endif #endif
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
wvsprintfA( wvsprintfA(
__out LPSTR, _Out_ LPSTR,
__in __format_string LPCSTR, _In_ _Printf_format_string_ LPCSTR,
__in va_list arglist); _In_ va_list arglist);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
wvsprintfW( wvsprintfW(
__out LPWSTR, _Out_ LPWSTR,
__in __format_string LPCWSTR, _In_ _Printf_format_string_ LPCWSTR,
__in va_list arglist); _In_ va_list arglist);
#ifdef UNICODE #ifdef UNICODE
#define wvsprintf wvsprintfW #define wvsprintf wvsprintfW
#else #else
#define wvsprintf wvsprintfA #define wvsprintf wvsprintfA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
int int
WINAPIV WINAPIV
wsprintfA( wsprintfA(
__out LPSTR, _Out_ LPSTR,
__in __format_string LPCSTR, _In_ _Printf_format_string_ LPCSTR,
...); ...);
WINUSERAPI WINUSERAPI
int int
WINAPIV WINAPIV
wsprintfW( wsprintfW(
__out LPWSTR, _Out_ LPWSTR,
__in __format_string LPCWSTR, _In_ _Printf_format_string_ LPCWSTR,
...); ...);
#ifdef UNICODE #ifdef UNICODE
#define wsprintf wsprintfW #define wsprintf wsprintfW
#else #else
#define wsprintf wsprintfA #define wsprintf wsprintfA
#endif // !UNICODE #endif // !UNICODE
#if defined(DEPRECATE_SUPPORTED) #if defined(DEPRECATE_SUPPORTED)
#pragma warning(pop) #pragma warning(pop)
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* SPI_SETDESKWALLPAPER defined constants * SPI_SETDESKWALLPAPER defined constants
*/ */
#define SETWALLPAPER_DEFAULT ((LPWSTR)-1) #define SETWALLPAPER_DEFAULT ((LPWSTR)-1)
#ifndef NOSCROLL #ifndef NOSCROLL
/* /*
* Scroll Bar Constants * Scroll Bar Constants
*/ */
skipping to change at line 691 skipping to change at line 748
#define HCBT_MINMAX 1 #define HCBT_MINMAX 1
#define HCBT_QS 2 #define HCBT_QS 2
#define HCBT_CREATEWND 3 #define HCBT_CREATEWND 3
#define HCBT_DESTROYWND 4 #define HCBT_DESTROYWND 4
#define HCBT_ACTIVATE 5 #define HCBT_ACTIVATE 5
#define HCBT_CLICKSKIPPED 6 #define HCBT_CLICKSKIPPED 6
#define HCBT_KEYSKIPPED 7 #define HCBT_KEYSKIPPED 7
#define HCBT_SYSCOMMAND 8 #define HCBT_SYSCOMMAND 8
#define HCBT_SETFOCUS 9 #define HCBT_SETFOCUS 9
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* HCBT_CREATEWND parameters pointed to by lParam * HCBT_CREATEWND parameters pointed to by lParam
*/ */
typedef struct tagCBT_CREATEWNDA typedef struct tagCBT_CREATEWNDA
{ {
struct tagCREATESTRUCTA *lpcs; struct tagCREATESTRUCTA *lpcs;
HWND hwndInsertAfter; HWND hwndInsertAfter;
} CBT_CREATEWNDA, *LPCBT_CREATEWNDA; } CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
/* /*
* HCBT_CREATEWND parameters pointed to by lParam * HCBT_CREATEWND parameters pointed to by lParam
skipping to change at line 724 skipping to change at line 784
/* /*
* HCBT_ACTIVATE structure pointed to by lParam * HCBT_ACTIVATE structure pointed to by lParam
*/ */
typedef struct tagCBTACTIVATESTRUCT typedef struct tagCBTACTIVATESTRUCT
{ {
BOOL fMouse; BOOL fMouse;
HWND hWndActive; HWND hWndActive;
} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT; } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE * WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE
*/ */
typedef struct tagWTSSESSION_NOTIFICATION typedef struct tagWTSSESSION_NOTIFICATION
{ {
DWORD cbSize; DWORD cbSize;
DWORD dwSessionId; DWORD dwSessionId;
} WTSSESSION_NOTIFICATION, *PWTSSESSION_NOTIFICATION; } WTSSESSION_NOTIFICATION, *PWTSSESSION_NOTIFICATION;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* codes passed in WPARAM for WM_WTSSESSION_CHANGE * codes passed in WPARAM for WM_WTSSESSION_CHANGE
*/ */
#define WTS_CONSOLE_CONNECT 0x1 #define WTS_CONSOLE_CONNECT 0x1
#define WTS_CONSOLE_DISCONNECT 0x2 #define WTS_CONSOLE_DISCONNECT 0x2
#define WTS_REMOTE_CONNECT 0x3 #define WTS_REMOTE_CONNECT 0x3
#define WTS_REMOTE_DISCONNECT 0x4 #define WTS_REMOTE_DISCONNECT 0x4
#define WTS_SESSION_LOGON 0x5 #define WTS_SESSION_LOGON 0x5
#define WTS_SESSION_LOGOFF 0x6 #define WTS_SESSION_LOGOFF 0x6
#define WTS_SESSION_LOCK 0x7 #define WTS_SESSION_LOCK 0x7
#define WTS_SESSION_UNLOCK 0x8 #define WTS_SESSION_UNLOCK 0x8
#define WTS_SESSION_REMOTE_CONTROL 0x9 #define WTS_SESSION_REMOTE_CONTROL 0x9
#define WTS_SESSION_CREATE 0xa
#define WTS_SESSION_TERMINATE 0xb
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
/* /*
* WH_MSGFILTER Filter Proc Codes * WH_MSGFILTER Filter Proc Codes
*/ */
#define MSGF_DIALOGBOX 0 #define MSGF_DIALOGBOX 0
#define MSGF_MESSAGEBOX 1 #define MSGF_MESSAGEBOX 1
#define MSGF_MENU 2 #define MSGF_MENU 2
#define MSGF_SCROLLBAR 5 #define MSGF_SCROLLBAR 5
skipping to change at line 788 skipping to change at line 860
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define HSHELL_ACCESSIBILITYSTATE 11 #define HSHELL_ACCESSIBILITYSTATE 11
#define HSHELL_APPCOMMAND 12 #define HSHELL_APPCOMMAND 12
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define HSHELL_WINDOWREPLACED 13 #define HSHELL_WINDOWREPLACED 13
#define HSHELL_WINDOWREPLACING 14 #define HSHELL_WINDOWREPLACING 14
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0602)
#define HSHELL_MONITORCHANGED 16
#endif /* _WIN32_WINNT >= 0x0602 */
#define HSHELL_HIGHBIT 0x8000 #define HSHELL_HIGHBIT 0x8000
#define HSHELL_FLASH (HSHELL_REDRAW|HSHELL_HIGHBIT) #define HSHELL_FLASH (HSHELL_REDRAW|HSHELL_HIGHBIT)
#define HSHELL_RUDEAPPACTIVATED (HSHELL_WINDOWACTIVATED|HSHELL_HIGHBIT) #define HSHELL_RUDEAPPACTIVATED (HSHELL_WINDOWACTIVATED|HSHELL_HIGHBIT)
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
/* cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND */ /* cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND */
#define APPCOMMAND_BROWSER_BACKWARD 1 #define APPCOMMAND_BROWSER_BACKWARD 1
#define APPCOMMAND_BROWSER_FORWARD 2 #define APPCOMMAND_BROWSER_FORWARD 2
#define APPCOMMAND_BROWSER_REFRESH 3 #define APPCOMMAND_BROWSER_REFRESH 3
#define APPCOMMAND_BROWSER_STOP 4 #define APPCOMMAND_BROWSER_STOP 4
skipping to change at line 865 skipping to change at line 941
#define FAPPCOMMAND_OEM 0x1000 #define FAPPCOMMAND_OEM 0x1000
#define FAPPCOMMAND_MASK 0xF000 #define FAPPCOMMAND_MASK 0xF000
#define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MAS K)) #define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MAS K))
#define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK) ) #define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK) )
#define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM #define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM
#define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam)) #define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam))
#define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam) #define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam)
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct typedef struct
{ {
HWND hwnd; HWND hwnd;
RECT rc; RECT rc;
} SHELLHOOKINFO, *LPSHELLHOOKINFO; } SHELLHOOKINFO, *LPSHELLHOOKINFO;
/* /*
* Message Structure used in Journaling * Message Structure used in Journaling
*/ */
typedef struct tagEVENTMSG { typedef struct tagEVENTMSG {
skipping to change at line 908 skipping to change at line 987
typedef struct tagCWPRETSTRUCT { typedef struct tagCWPRETSTRUCT {
LRESULT lResult; LRESULT lResult;
LPARAM lParam; LPARAM lParam;
WPARAM wParam; WPARAM wParam;
UINT message; UINT message;
HWND hwnd; HWND hwnd;
} CWPRETSTRUCT, *PCWPRETSTRUCT, NEAR *NPCWPRETSTRUCT, FAR *LPCWPRETSTRUCT; } CWPRETSTRUCT, *PCWPRETSTRUCT, NEAR *NPCWPRETSTRUCT, FAR *LPCWPRETSTRUCT;
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if (_WIN32_WINNT >= 0x0400) #if (_WIN32_WINNT >= 0x0400)
/* /*
* Low level hook flags * Low level hook flags
*/ */
#define LLKHF_EXTENDED (KF_EXTENDED >> 8) #define LLKHF_EXTENDED (KF_EXTENDED >> 8) /* 0x00000001 */
#define LLKHF_INJECTED 0x00000010 #define LLKHF_INJECTED 0x00000010
#define LLKHF_ALTDOWN (KF_ALTDOWN >> 8) #define LLKHF_ALTDOWN (KF_ALTDOWN >> 8) /* 0x00000020 */
#define LLKHF_UP (KF_UP >> 8) #define LLKHF_UP (KF_UP >> 8) /* 0x00000080 */
#define LLKHF_LOWER_IL_INJECTED 0x00000002
#define LLMHF_INJECTED 0x00000001 #define LLMHF_INJECTED 0x00000001
#define LLMHF_LOWER_IL_INJECTED 0x00000002
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Structure used by WH_KEYBOARD_LL * Structure used by WH_KEYBOARD_LL
*/ */
typedef struct tagKBDLLHOOKSTRUCT { typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode; DWORD vkCode;
DWORD scanCode; DWORD scanCode;
DWORD flags; DWORD flags;
DWORD time; DWORD time;
ULONG_PTR dwExtraInfo; ULONG_PTR dwExtraInfo;
skipping to change at line 943 skipping to change at line 1030
* Structure used by WH_MOUSE_LL * Structure used by WH_MOUSE_LL
*/ */
typedef struct tagMSLLHOOKSTRUCT { typedef struct tagMSLLHOOKSTRUCT {
POINT pt; POINT pt;
DWORD mouseData; DWORD mouseData;
DWORD flags; DWORD flags;
DWORD time; DWORD time;
ULONG_PTR dwExtraInfo; ULONG_PTR dwExtraInfo;
} MSLLHOOKSTRUCT, FAR *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT; } MSLLHOOKSTRUCT, FAR *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // (_WIN32_WINNT >= 0x0400) #endif // (_WIN32_WINNT >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Structure used by WH_DEBUG * Structure used by WH_DEBUG
*/ */
typedef struct tagDEBUGHOOKINFO typedef struct tagDEBUGHOOKINFO
{ {
DWORD idThread; DWORD idThread;
DWORD idThreadInstaller; DWORD idThreadInstaller;
LPARAM lParam; LPARAM lParam;
WPARAM wParam; WPARAM wParam;
int code; int code;
skipping to change at line 993 skipping to change at line 1086
/* /*
* Structure used by WH_HARDWARE * Structure used by WH_HARDWARE
*/ */
typedef struct tagHARDWAREHOOKSTRUCT { typedef struct tagHARDWAREHOOKSTRUCT {
HWND hwnd; HWND hwnd;
UINT message; UINT message;
WPARAM wParam; WPARAM wParam;
LPARAM lParam; LPARAM lParam;
} HARDWAREHOOKSTRUCT, FAR *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT; } HARDWAREHOOKSTRUCT, FAR *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT;
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOWH */ #endif /* !NOWH */
/* /*
* Keyboard Layout API * Keyboard Layout API
*/ */
#define HKL_PREV 0 #define HKL_PREV 0
#define HKL_NEXT 1 #define HKL_NEXT 1
#define KLF_ACTIVATE 0x00000001 #define KLF_ACTIVATE 0x00000001
#define KLF_SUBSTITUTE_OK 0x00000002 #define KLF_SUBSTITUTE_OK 0x00000002
skipping to change at line 1028 skipping to change at line 1125
#define INPUTLANGCHANGE_SYSCHARSET 0x0001 #define INPUTLANGCHANGE_SYSCHARSET 0x0001
#define INPUTLANGCHANGE_FORWARD 0x0002 #define INPUTLANGCHANGE_FORWARD 0x0002
#define INPUTLANGCHANGE_BACKWARD 0x0004 #define INPUTLANGCHANGE_BACKWARD 0x0004
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
/* /*
* Size of KeyboardLayoutName (number of characters), including nul terminator * Size of KeyboardLayoutName (number of characters), including nul terminator
*/ */
#define KL_NAMELENGTH 9 #define KL_NAMELENGTH 9
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HKL HKL
WINAPI WINAPI
LoadKeyboardLayoutA( LoadKeyboardLayoutA(
__in LPCSTR pwszKLID, _In_ LPCSTR pwszKLID,
__in UINT Flags); _In_ UINT Flags);
WINUSERAPI WINUSERAPI
HKL HKL
WINAPI WINAPI
LoadKeyboardLayoutW( LoadKeyboardLayoutW(
__in LPCWSTR pwszKLID, _In_ LPCWSTR pwszKLID,
__in UINT Flags); _In_ UINT Flags);
#ifdef UNICODE #ifdef UNICODE
#define LoadKeyboardLayout LoadKeyboardLayoutW #define LoadKeyboardLayout LoadKeyboardLayoutW
#else #else
#define LoadKeyboardLayout LoadKeyboardLayoutA #define LoadKeyboardLayout LoadKeyboardLayoutA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
HKL HKL
WINAPI WINAPI
ActivateKeyboardLayout( ActivateKeyboardLayout(
__in HKL hkl, _In_ HKL hkl,
__in UINT Flags); _In_ UINT Flags);
#else #else
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ActivateKeyboardLayout( ActivateKeyboardLayout(
__in HKL hkl, _In_ HKL hkl,
__in UINT Flags); _In_ UINT Flags);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
ToUnicodeEx( ToUnicodeEx(
__in UINT wVirtKey, _In_ UINT wVirtKey,
__in UINT wScanCode, _In_ UINT wScanCode,
__in_bcount(256) CONST BYTE *lpKeyState, _In_reads_bytes_(256) CONST BYTE *lpKeyState,
__out_ecount(cchBuff) LPWSTR pwszBuff, _Out_writes_(cchBuff) LPWSTR pwszBuff,
__in int cchBuff, _In_ int cchBuff,
__in UINT wFlags, _In_ UINT wFlags,
__in_opt HKL dwhkl); _In_opt_ HKL dwhkl);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnloadKeyboardLayout( UnloadKeyboardLayout(
__in HKL hkl); _In_ HKL hkl);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetKeyboardLayoutNameA( GetKeyboardLayoutNameA(
__out_ecount(KL_NAMELENGTH) LPSTR pwszKLID); _Out_writes_(KL_NAMELENGTH) LPSTR pwszKLID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetKeyboardLayoutNameW( GetKeyboardLayoutNameW(
__out_ecount(KL_NAMELENGTH) LPWSTR pwszKLID); _Out_writes_(KL_NAMELENGTH) LPWSTR pwszKLID);
#ifdef UNICODE #ifdef UNICODE
#define GetKeyboardLayoutName GetKeyboardLayoutNameW #define GetKeyboardLayoutName GetKeyboardLayoutNameW
#else #else
#define GetKeyboardLayoutName GetKeyboardLayoutNameA #define GetKeyboardLayoutName GetKeyboardLayoutNameA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetKeyboardLayoutList( GetKeyboardLayoutList(
__in int nBuff, _In_ int nBuff,
__out_ecount_part_opt(nBuff, return) HKL FAR *lpList); _Out_writes_to_opt_(nBuff, return) HKL FAR *lpList);
WINUSERAPI WINUSERAPI
HKL HKL
WINAPI WINAPI
GetKeyboardLayout( GetKeyboardLayout(
__in DWORD idThread); _In_ DWORD idThread);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMOUSEMOVEPOINT { typedef struct tagMOUSEMOVEPOINT {
int x; int x;
int y; int y;
DWORD time; DWORD time;
ULONG_PTR dwExtraInfo; ULONG_PTR dwExtraInfo;
} MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, FAR* LPMOUSEMOVEPOINT; } MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, FAR* LPMOUSEMOVEPOINT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Values for resolution parameter of GetMouseMovePointsEx * Values for resolution parameter of GetMouseMovePointsEx
*/ */
#define GMMP_USE_DISPLAY_POINTS 1 #define GMMP_USE_DISPLAY_POINTS 1
#define GMMP_USE_HIGH_RESOLUTION_POINTS 2 #define GMMP_USE_HIGH_RESOLUTION_POINTS 2
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetMouseMovePointsEx( GetMouseMovePointsEx(
__in UINT cbSize, _In_ UINT cbSize,
__in LPMOUSEMOVEPOINT lppt, _In_ LPMOUSEMOVEPOINT lppt,
__out_ecount(nBufPoints) LPMOUSEMOVEPOINT lpptBuf, _Out_writes_(nBufPoints) LPMOUSEMOVEPOINT lpptBuf,
__in int nBufPoints, _In_ int nBufPoints,
__in DWORD resolution); _In_ DWORD resolution);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#ifndef NODESKTOP #ifndef NODESKTOP
/* /*
* Desktop-specific access flags * Desktop-specific access flags
*/ */
#define DESKTOP_READOBJECTS 0x0001L #define DESKTOP_READOBJECTS 0x0001L
#define DESKTOP_CREATEWINDOW 0x0002L #define DESKTOP_CREATEWINDOW 0x0002L
#define DESKTOP_CREATEMENU 0x0004L #define DESKTOP_CREATEMENU 0x0004L
skipping to change at line 1163 skipping to change at line 1278
#define DESKTOP_SWITCHDESKTOP 0x0100L #define DESKTOP_SWITCHDESKTOP 0x0100L
/* /*
* Desktop-specific control flags * Desktop-specific control flags
*/ */
#define DF_ALLOWOTHERACCOUNTHOOK 0x0001L #define DF_ALLOWOTHERACCOUNTHOOK 0x0001L
#ifdef _WINGDI_ #ifdef _WINGDI_
#ifndef NOGDI #ifndef NOGDI
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HDESK HDESK
WINAPI WINAPI
CreateDesktopA( CreateDesktopA(
__in LPCSTR lpszDesktop, _In_ LPCSTR lpszDesktop,
__reserved LPCSTR lpszDevice, _Reserved_ LPCSTR lpszDevice,
__reserved DEVMODEA* pDevmode, _Reserved_ DEVMODEA* pDevmode,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess, _In_ ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa); _In_opt_ LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI WINUSERAPI
HDESK HDESK
WINAPI WINAPI
CreateDesktopW( CreateDesktopW(
__in LPCWSTR lpszDesktop, _In_ LPCWSTR lpszDesktop,
__reserved LPCWSTR lpszDevice, _Reserved_ LPCWSTR lpszDevice,
__reserved DEVMODEW* pDevmode, _Reserved_ DEVMODEW* pDevmode,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess, _In_ ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa); _In_opt_ LPSECURITY_ATTRIBUTES lpsa);
#ifdef UNICODE #ifdef UNICODE
#define CreateDesktop CreateDesktopW #define CreateDesktop CreateDesktopW
#else #else
#define CreateDesktop CreateDesktopA #define CreateDesktop CreateDesktopA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HDESK HDESK
WINAPI WINAPI
CreateDesktopExA( CreateDesktopExA(
__in LPCSTR lpszDesktop, _In_ LPCSTR lpszDesktop,
__reserved LPCSTR lpszDevice, _Reserved_ LPCSTR lpszDevice,
__reserved DEVMODEA* pDevmode, _Reserved_ DEVMODEA* pDevmode,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess, _In_ ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa, _In_opt_ LPSECURITY_ATTRIBUTES lpsa,
__in ULONG ulHeapSize, _In_ ULONG ulHeapSize,
__reserved PVOID pvoid); _Reserved_ PVOID pvoid);
WINUSERAPI WINUSERAPI
HDESK HDESK
WINAPI WINAPI
CreateDesktopExW( CreateDesktopExW(
__in LPCWSTR lpszDesktop, _In_ LPCWSTR lpszDesktop,
__reserved LPCWSTR lpszDevice, _Reserved_ LPCWSTR lpszDevice,
__reserved DEVMODEW* pDevmode, _Reserved_ DEVMODEW* pDevmode,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess, _In_ ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa, _In_opt_ LPSECURITY_ATTRIBUTES lpsa,
__in ULONG ulHeapSize, _In_ ULONG ulHeapSize,
__reserved PVOID pvoid); _Reserved_ PVOID pvoid);
#ifdef UNICODE #ifdef UNICODE
#define CreateDesktopEx CreateDesktopExW #define CreateDesktopEx CreateDesktopExW
#else #else
#define CreateDesktopEx CreateDesktopExA #define CreateDesktopEx CreateDesktopExA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* NOGDI */ #endif /* NOGDI */
#endif /* _WINGDI_ */ #endif /* _WINGDI_ */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HDESK HDESK
WINAPI WINAPI
OpenDesktopA( OpenDesktopA(
__in LPCSTR lpszDesktop, _In_ LPCSTR lpszDesktop,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in BOOL fInherit, _In_ BOOL fInherit,
__in ACCESS_MASK dwDesiredAccess); _In_ ACCESS_MASK dwDesiredAccess);
WINUSERAPI WINUSERAPI
HDESK HDESK
WINAPI WINAPI
OpenDesktopW( OpenDesktopW(
__in LPCWSTR lpszDesktop, _In_ LPCWSTR lpszDesktop,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in BOOL fInherit, _In_ BOOL fInherit,
__in ACCESS_MASK dwDesiredAccess); _In_ ACCESS_MASK dwDesiredAccess);
#ifdef UNICODE #ifdef UNICODE
#define OpenDesktop OpenDesktopW #define OpenDesktop OpenDesktopW
#else #else
#define OpenDesktop OpenDesktopA #define OpenDesktop OpenDesktopA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HDESK HDESK
WINAPI WINAPI
OpenInputDesktop( OpenInputDesktop(
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in BOOL fInherit, _In_ BOOL fInherit,
__in ACCESS_MASK dwDesiredAccess); _In_ ACCESS_MASK dwDesiredAccess);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDesktopsA( EnumDesktopsA(
__in_opt HWINSTA hwinsta, _In_opt_ HWINSTA hwinsta,
__in DESKTOPENUMPROCA lpEnumFunc, _In_ DESKTOPENUMPROCA lpEnumFunc,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDesktopsW( EnumDesktopsW(
__in_opt HWINSTA hwinsta, _In_opt_ HWINSTA hwinsta,
__in DESKTOPENUMPROCW lpEnumFunc, _In_ DESKTOPENUMPROCW lpEnumFunc,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define EnumDesktops EnumDesktopsW #define EnumDesktops EnumDesktopsW
#else #else
#define EnumDesktops EnumDesktopsA #define EnumDesktops EnumDesktopsA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDesktopWindows( EnumDesktopWindows(
__in_opt HDESK hDesktop, _In_opt_ HDESK hDesktop,
__in WNDENUMPROC lpfn, _In_ WNDENUMPROC lpfn,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SwitchDesktop( SwitchDesktop(
__in HDESK hDesktop); _In_ HDESK hDesktop);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetThreadDesktop( SetThreadDesktop(
__in HDESK hDesktop); _In_ HDESK hDesktop);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CloseDesktop( CloseDesktop(
__in HDESK hDesktop); _In_ HDESK hDesktop);
WINUSERAPI WINUSERAPI
HDESK HDESK
WINAPI WINAPI
GetThreadDesktop( GetThreadDesktop(
__in DWORD dwThreadId); _In_ DWORD dwThreadId);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NODESKTOP */ #endif /* !NODESKTOP */
#ifndef NOWINDOWSTATION #ifndef NOWINDOWSTATION
/* /*
* Windowstation-specific access flags * Windowstation-specific access flags
*/ */
#define WINSTA_ENUMDESKTOPS 0x0001L #define WINSTA_ENUMDESKTOPS 0x0001L
#define WINSTA_READATTRIBUTES 0x0002L #define WINSTA_READATTRIBUTES 0x0002L
#define WINSTA_ACCESSCLIPBOARD 0x0004L #define WINSTA_ACCESSCLIPBOARD 0x0004L
skipping to change at line 1334 skipping to change at line 1461
/* /*
* Windowstation creation flags. * Windowstation creation flags.
*/ */
#define CWF_CREATE_ONLY 0x00000001 #define CWF_CREATE_ONLY 0x00000001
/* /*
* Windowstation-specific attribute flags * Windowstation-specific attribute flags
*/ */
#define WSF_VISIBLE 0x0001L #define WSF_VISIBLE 0x0001L
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HWINSTA HWINSTA
WINAPI WINAPI
CreateWindowStationA( CreateWindowStationA(
__in_opt LPCSTR lpwinsta, _In_opt_ LPCSTR lpwinsta,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess, _In_ ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa); _In_opt_ LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI WINUSERAPI
HWINSTA HWINSTA
WINAPI WINAPI
CreateWindowStationW( CreateWindowStationW(
__in_opt LPCWSTR lpwinsta, _In_opt_ LPCWSTR lpwinsta,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in ACCESS_MASK dwDesiredAccess, _In_ ACCESS_MASK dwDesiredAccess,
__in_opt LPSECURITY_ATTRIBUTES lpsa); _In_opt_ LPSECURITY_ATTRIBUTES lpsa);
#ifdef UNICODE #ifdef UNICODE
#define CreateWindowStation CreateWindowStationW #define CreateWindowStation CreateWindowStationW
#else #else
#define CreateWindowStation CreateWindowStationA #define CreateWindowStation CreateWindowStationA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HWINSTA HWINSTA
WINAPI WINAPI
OpenWindowStationA( OpenWindowStationA(
__in LPCSTR lpszWinSta, _In_ LPCSTR lpszWinSta,
__in BOOL fInherit, _In_ BOOL fInherit,
__in ACCESS_MASK dwDesiredAccess); _In_ ACCESS_MASK dwDesiredAccess);
WINUSERAPI WINUSERAPI
HWINSTA HWINSTA
WINAPI WINAPI
OpenWindowStationW( OpenWindowStationW(
__in LPCWSTR lpszWinSta, _In_ LPCWSTR lpszWinSta,
__in BOOL fInherit, _In_ BOOL fInherit,
__in ACCESS_MASK dwDesiredAccess); _In_ ACCESS_MASK dwDesiredAccess);
#ifdef UNICODE #ifdef UNICODE
#define OpenWindowStation OpenWindowStationW #define OpenWindowStation OpenWindowStationW
#else #else
#define OpenWindowStation OpenWindowStationA #define OpenWindowStation OpenWindowStationA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumWindowStationsA( EnumWindowStationsA(
__in WINSTAENUMPROCA lpEnumFunc, _In_ WINSTAENUMPROCA lpEnumFunc,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumWindowStationsW( EnumWindowStationsW(
__in WINSTAENUMPROCW lpEnumFunc, _In_ WINSTAENUMPROCW lpEnumFunc,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define EnumWindowStations EnumWindowStationsW #define EnumWindowStations EnumWindowStationsW
#else #else
#define EnumWindowStations EnumWindowStationsA #define EnumWindowStations EnumWindowStationsA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CloseWindowStation( CloseWindowStation(
__in HWINSTA hWinSta); _In_ HWINSTA hWinSta);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetProcessWindowStation( SetProcessWindowStation(
__in HWINSTA hWinSta); _In_ HWINSTA hWinSta);
WINUSERAPI WINUSERAPI
HWINSTA HWINSTA
WINAPI WINAPI
GetProcessWindowStation( GetProcessWindowStation(
VOID); VOID);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOWINDOWSTATION */ #endif /* !NOWINDOWSTATION */
#ifndef NOSECURITY #ifndef NOSECURITY
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetUserObjectSecurity( SetUserObjectSecurity(
__in HANDLE hObj, _In_ HANDLE hObj,
__in PSECURITY_INFORMATION pSIRequested, _In_ PSECURITY_INFORMATION pSIRequested,
__in PSECURITY_DESCRIPTOR pSID); _In_ PSECURITY_DESCRIPTOR pSID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetUserObjectSecurity( GetUserObjectSecurity(
__in HANDLE hObj, _In_ HANDLE hObj,
__in PSECURITY_INFORMATION pSIRequested, _In_ PSECURITY_INFORMATION pSIRequested,
__out_bcount_opt(nLength) PSECURITY_DESCRIPTOR pSID, _Out_writes_bytes_opt_(nLength) PSECURITY_DESCRIPTOR pSID,
__in DWORD nLength, _In_ DWORD nLength,
__out LPDWORD lpnLengthNeeded); _Out_ LPDWORD lpnLengthNeeded);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define UOI_FLAGS 1 #define UOI_FLAGS 1
#define UOI_NAME 2 #define UOI_NAME 2
#define UOI_TYPE 3 #define UOI_TYPE 3
#define UOI_USER_SID 4 #define UOI_USER_SID 4
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
#define UOI_HEAPSIZE 5 #define UOI_HEAPSIZE 5
#define UOI_IO 6 #define UOI_IO 6
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagUSEROBJECTFLAGS { typedef struct tagUSEROBJECTFLAGS {
BOOL fInherit; BOOL fInherit;
BOOL fReserved; BOOL fReserved;
DWORD dwFlags; DWORD dwFlags;
} USEROBJECTFLAGS, *PUSEROBJECTFLAGS; } USEROBJECTFLAGS, *PUSEROBJECTFLAGS;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetUserObjectInformationA( GetUserObjectInformationA(
__in HANDLE hObj, _In_ HANDLE hObj,
__in int nIndex, _In_ int nIndex,
__out_bcount_opt(nLength) PVOID pvInfo, _Out_writes_bytes_opt_(nLength) PVOID pvInfo,
__in DWORD nLength, _In_ DWORD nLength,
__out_opt LPDWORD lpnLengthNeeded); _Out_opt_ LPDWORD lpnLengthNeeded);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetUserObjectInformationW( GetUserObjectInformationW(
__in HANDLE hObj, _In_ HANDLE hObj,
__in int nIndex, _In_ int nIndex,
__out_bcount_opt(nLength) PVOID pvInfo, _Out_writes_bytes_opt_(nLength) PVOID pvInfo,
__in DWORD nLength, _In_ DWORD nLength,
__out_opt LPDWORD lpnLengthNeeded); _Out_opt_ LPDWORD lpnLengthNeeded);
#ifdef UNICODE #ifdef UNICODE
#define GetUserObjectInformation GetUserObjectInformationW #define GetUserObjectInformation GetUserObjectInformationW
#else #else
#define GetUserObjectInformation GetUserObjectInformationA #define GetUserObjectInformation GetUserObjectInformationA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetUserObjectInformationA( SetUserObjectInformationA(
__in HANDLE hObj, _In_ HANDLE hObj,
__in int nIndex, _In_ int nIndex,
__in_bcount(nLength) PVOID pvInfo, _In_reads_bytes_(nLength) PVOID pvInfo,
__in DWORD nLength); _In_ DWORD nLength);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetUserObjectInformationW( SetUserObjectInformationW(
__in HANDLE hObj, _In_ HANDLE hObj,
__in int nIndex, _In_ int nIndex,
__in_bcount(nLength) PVOID pvInfo, _In_reads_bytes_(nLength) PVOID pvInfo,
__in DWORD nLength); _In_ DWORD nLength);
#ifdef UNICODE #ifdef UNICODE
#define SetUserObjectInformation SetUserObjectInformationW #define SetUserObjectInformation SetUserObjectInformationW
#else #else
#define SetUserObjectInformation SetUserObjectInformationA #define SetUserObjectInformation SetUserObjectInformationA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOSECURITY */ #endif /* !NOSECURITY */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
typedef struct tagWNDCLASSEXA { typedef struct tagWNDCLASSEXA {
UINT cbSize; UINT cbSize;
/* Win 3.x */ /* Win 3.x */
UINT style; UINT style;
WNDPROC lpfnWndProc; WNDPROC lpfnWndProc;
int cbClsExtra; int cbClsExtra;
int cbWndExtra; int cbWndExtra;
HINSTANCE hInstance; HINSTANCE hInstance;
HICON hIcon; HICON hIcon;
skipping to change at line 1582 skipping to change at line 1731
typedef WNDCLASSA WNDCLASS; typedef WNDCLASSA WNDCLASS;
typedef PWNDCLASSA PWNDCLASS; typedef PWNDCLASSA PWNDCLASS;
typedef NPWNDCLASSA NPWNDCLASS; typedef NPWNDCLASSA NPWNDCLASS;
typedef LPWNDCLASSA LPWNDCLASS; typedef LPWNDCLASSA LPWNDCLASS;
#endif // UNICODE #endif // UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsHungAppWindow( IsHungAppWindow(
__in HWND hwnd); _In_ HWND hwnd);
#if(WINVER >= 0x0501) #if(WINVER >= 0x0501)
WINUSERAPI WINUSERAPI
VOID VOID
WINAPI WINAPI
DisableProcessWindowsGhosting( DisableProcessWindowsGhosting(
VOID); VOID);
#endif /* WINVER >= 0x0501 */ #endif /* WINVER >= 0x0501 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NOMSG #ifndef NOMSG
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* /*
* Message structure * Message structure
*/ */
typedef struct tagMSG { typedef struct tagMSG {
HWND hwnd; HWND hwnd;
UINT message; UINT message;
WPARAM wParam; WPARAM wParam;
LPARAM lParam; LPARAM lParam;
DWORD time; DWORD time;
POINT pt; POINT pt;
#ifdef _MAC #ifdef _MAC
DWORD lPrivate; DWORD lPrivate;
#endif #endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG; } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#define POINTSTOPOINT(pt, pts) \ #define POINTSTOPOINT(pt, pts) \
{ (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); \ { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); \
(pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); } (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }
#define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y)))
#define MAKEWPARAM(l, h) ((WPARAM)(DWORD)MAKELONG(l, h)) #define MAKEWPARAM(l, h) ((WPARAM)(DWORD)MAKELONG(l, h))
#define MAKELPARAM(l, h) ((LPARAM)(DWORD)MAKELONG(l, h)) #define MAKELPARAM(l, h) ((LPARAM)(DWORD)MAKELONG(l, h))
#define MAKELRESULT(l, h) ((LRESULT)(DWORD)MAKELONG(l, h)) #define MAKELRESULT(l, h) ((LRESULT)(DWORD)MAKELONG(l, h))
#endif /* !NOMSG */ #endif /* !NOMSG */
skipping to change at line 1742 skipping to change at line 1900
#define WM_ACTIVATEAPP 0x001C #define WM_ACTIVATEAPP 0x001C
#define WM_FONTCHANGE 0x001D #define WM_FONTCHANGE 0x001D
#define WM_TIMECHANGE 0x001E #define WM_TIMECHANGE 0x001E
#define WM_CANCELMODE 0x001F #define WM_CANCELMODE 0x001F
#define WM_SETCURSOR 0x0020 #define WM_SETCURSOR 0x0020
#define WM_MOUSEACTIVATE 0x0021 #define WM_MOUSEACTIVATE 0x0021
#define WM_CHILDACTIVATE 0x0022 #define WM_CHILDACTIVATE 0x0022
#define WM_QUEUESYNC 0x0023 #define WM_QUEUESYNC 0x0023
#define WM_GETMINMAXINFO 0x0024 #define WM_GETMINMAXINFO 0x0024
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Struct pointed to by WM_GETMINMAXINFO lParam * Struct pointed to by WM_GETMINMAXINFO lParam
*/ */
typedef struct tagMINMAXINFO { typedef struct tagMINMAXINFO {
POINT ptReserved; POINT ptReserved;
POINT ptMaxSize; POINT ptMaxSize;
POINT ptMaxPosition; POINT ptMaxPosition;
POINT ptMinTrackSize; POINT ptMinTrackSize;
POINT ptMaxTrackSize; POINT ptMaxTrackSize;
} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO; } MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define WM_PAINTICON 0x0026 #define WM_PAINTICON 0x0026
#define WM_ICONERASEBKGND 0x0027 #define WM_ICONERASEBKGND 0x0027
#define WM_NEXTDLGCTL 0x0028 #define WM_NEXTDLGCTL 0x0028
#define WM_SPOOLERSTATUS 0x002A #define WM_SPOOLERSTATUS 0x002A
#define WM_DRAWITEM 0x002B #define WM_DRAWITEM 0x002B
#define WM_MEASUREITEM 0x002C #define WM_MEASUREITEM 0x002C
#define WM_DELETEITEM 0x002D #define WM_DELETEITEM 0x002D
#define WM_VKEYTOITEM 0x002E #define WM_VKEYTOITEM 0x002E
#define WM_CHARTOITEM 0x002F #define WM_CHARTOITEM 0x002F
#define WM_SETFONT 0x0030 #define WM_SETFONT 0x0030
skipping to change at line 1791 skipping to change at line 1956
*/ */
#define PWR_OK 1 #define PWR_OK 1
#define PWR_FAIL (-1) #define PWR_FAIL (-1)
#define PWR_SUSPENDREQUEST 1 #define PWR_SUSPENDREQUEST 1
#define PWR_SUSPENDRESUME 2 #define PWR_SUSPENDRESUME 2
#define PWR_CRITICALRESUME 3 #define PWR_CRITICALRESUME 3
#define WM_COPYDATA 0x004A #define WM_COPYDATA 0x004A
#define WM_CANCELJOURNAL 0x004B #define WM_CANCELJOURNAL 0x004B
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* lParam of WM_COPYDATA message points to... * lParam of WM_COPYDATA message points to...
*/ */
typedef struct tagCOPYDATASTRUCT { typedef struct tagCOPYDATASTRUCT {
ULONG_PTR dwData; ULONG_PTR dwData;
DWORD cbData; DWORD cbData;
__field_bcount(cbData) PVOID lpData; _Field_size_bytes_(cbData) PVOID lpData;
} COPYDATASTRUCT, *PCOPYDATASTRUCT; } COPYDATASTRUCT, *PCOPYDATASTRUCT;
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
typedef struct tagMDINEXTMENU typedef struct tagMDINEXTMENU
{ {
HMENU hmenuIn; HMENU hmenuIn;
HMENU hmenuNext; HMENU hmenuNext;
HWND hwndNext; HWND hwndNext;
} MDINEXTMENU, * PMDINEXTMENU, FAR * LPMDINEXTMENU; } MDINEXTMENU, * PMDINEXTMENU, FAR * LPMDINEXTMENU;
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define WM_NOTIFY 0x004E #define WM_NOTIFY 0x004E
#define WM_INPUTLANGCHANGEREQUEST 0x0050 #define WM_INPUTLANGCHANGEREQUEST 0x0050
#define WM_INPUTLANGCHANGE 0x0051 #define WM_INPUTLANGCHANGE 0x0051
#define WM_TCARD 0x0052 #define WM_TCARD 0x0052
#define WM_HELP 0x0053 #define WM_HELP 0x0053
#define WM_USERCHANGED 0x0054 #define WM_USERCHANGED 0x0054
#define WM_NOTIFYFORMAT 0x0055 #define WM_NOTIFYFORMAT 0x0055
#define NFR_ANSI 1 #define NFR_ANSI 1
skipping to change at line 2042 skipping to change at line 2213
#define PBT_APMBATTERYLOW 0x0009 #define PBT_APMBATTERYLOW 0x0009
#define PBT_APMPOWERSTATUSCHANGE 0x000A #define PBT_APMPOWERSTATUSCHANGE 0x000A
#define PBT_APMOEMEVENT 0x000B #define PBT_APMOEMEVENT 0x000B
#define PBT_APMRESUMEAUTOMATIC 0x0012 #define PBT_APMRESUMEAUTOMATIC 0x0012
#if (_WIN32_WINNT >= 0x0502) #if (_WIN32_WINNT >= 0x0502)
#ifndef PBT_POWERSETTINGCHANGE #ifndef PBT_POWERSETTINGCHANGE
#define PBT_POWERSETTINGCHANGE 0x8013 #define PBT_POWERSETTINGCHANGE 0x8013
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct { typedef struct {
GUID PowerSetting; GUID PowerSetting;
DWORD DataLength; DWORD DataLength;
UCHAR Data[1]; UCHAR Data[1];
} POWERBROADCAST_SETTING, *PPOWERBROADCAST_SETTING; } POWERBROADCAST_SETTING, *PPOWERBROADCAST_SETTING;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // PBT_POWERSETTINGCHANGE #endif // PBT_POWERSETTINGCHANGE
#endif // (_WIN32_WINNT >= 0x0502) #endif // (_WIN32_WINNT >= 0x0502)
#endif #endif
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define WM_DEVICECHANGE 0x0219 #define WM_DEVICECHANGE 0x0219
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
skipping to change at line 2076 skipping to change at line 2254
#define WM_MDICASCADE 0x0227 #define WM_MDICASCADE 0x0227
#define WM_MDIICONARRANGE 0x0228 #define WM_MDIICONARRANGE 0x0228
#define WM_MDIGETACTIVE 0x0229 #define WM_MDIGETACTIVE 0x0229
#define WM_MDISETMENU 0x0230 #define WM_MDISETMENU 0x0230
#define WM_ENTERSIZEMOVE 0x0231 #define WM_ENTERSIZEMOVE 0x0231
#define WM_EXITSIZEMOVE 0x0232 #define WM_EXITSIZEMOVE 0x0232
#define WM_DROPFILES 0x0233 #define WM_DROPFILES 0x0233
#define WM_MDIREFRESHMENU 0x0234 #define WM_MDIREFRESHMENU 0x0234
#if(WINVER >= 0x0602)
#define WM_POINTERDEVICECHANGE 0x238
#define WM_POINTERDEVICEINRANGE 0x239
#define WM_POINTERDEVICEOUTOFRANGE 0x23A
#endif /* WINVER >= 0x0602 */
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
#define WM_TOUCH 0x0240 #define WM_TOUCH 0x0240
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0602)
#define WM_NCPOINTERUPDATE 0x0241
#define WM_NCPOINTERDOWN 0x0242
#define WM_NCPOINTERUP 0x0243
#define WM_POINTERUPDATE 0x0245
#define WM_POINTERDOWN 0x0246
#define WM_POINTERUP 0x0247
#define WM_POINTERENTER 0x0249
#define WM_POINTERLEAVE 0x024A
#define WM_POINTERACTIVATE 0x024B
#define WM_POINTERCAPTURECHANGED 0x024C
#define WM_TOUCHHITTESTING 0x024D
#define WM_POINTERWHEEL 0x024E
#define WM_POINTERHWHEEL 0x024F
#define DM_POINTERHITTEST 0x0250
#endif /* WINVER >= 0x0602 */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define WM_IME_SETCONTEXT 0x0281 #define WM_IME_SETCONTEXT 0x0281
#define WM_IME_NOTIFY 0x0282 #define WM_IME_NOTIFY 0x0282
#define WM_IME_CONTROL 0x0283 #define WM_IME_CONTROL 0x0283
#define WM_IME_COMPOSITIONFULL 0x0284 #define WM_IME_COMPOSITIONFULL 0x0284
#define WM_IME_SELECT 0x0285 #define WM_IME_SELECT 0x0285
#define WM_IME_CHAR 0x0286 #define WM_IME_CHAR 0x0286
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define WM_IME_REQUEST 0x0288 #define WM_IME_REQUEST 0x0288
skipping to change at line 2112 skipping to change at line 2313
#define WM_NCMOUSELEAVE 0x02A2 #define WM_NCMOUSELEAVE 0x02A2
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define WM_WTSSESSION_CHANGE 0x02B1 #define WM_WTSSESSION_CHANGE 0x02B1
#define WM_TABLET_FIRST 0x02c0 #define WM_TABLET_FIRST 0x02c0
#define WM_TABLET_LAST 0x02df #define WM_TABLET_LAST 0x02df
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(WINVER >= 0x0601)
#define WM_DPICHANGED 0x02E0
#endif /* WINVER >= 0x0601 */
#define WM_CUT 0x0300 #define WM_CUT 0x0300
#define WM_COPY 0x0301 #define WM_COPY 0x0301
#define WM_PASTE 0x0302 #define WM_PASTE 0x0302
#define WM_CLEAR 0x0303 #define WM_CLEAR 0x0303
#define WM_UNDO 0x0304 #define WM_UNDO 0x0304
#define WM_RENDERFORMAT 0x0305 #define WM_RENDERFORMAT 0x0305
#define WM_RENDERALLFORMATS 0x0306 #define WM_RENDERALLFORMATS 0x0306
#define WM_DESTROYCLIPBOARD 0x0307 #define WM_DESTROYCLIPBOARD 0x0307
#define WM_DRAWCLIPBOARD 0x0308 #define WM_DRAWCLIPBOARD 0x0308
#define WM_PAINTCLIPBOARD 0x0309 #define WM_PAINTCLIPBOARD 0x0309
skipping to change at line 2250 skipping to change at line 2455
*/ */
#define SMTO_NORMAL 0x0000 #define SMTO_NORMAL 0x0000
#define SMTO_BLOCK 0x0001 #define SMTO_BLOCK 0x0001
#define SMTO_ABORTIFHUNG 0x0002 #define SMTO_ABORTIFHUNG 0x0002
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define SMTO_NOTIMEOUTIFNOTHUNG 0x0008 #define SMTO_NOTIMEOUTIFNOTHUNG 0x0008
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
#define SMTO_ERRORONEXIT 0x0020 #define SMTO_ERRORONEXIT 0x0020
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
#if(WINVER >= 0x0602)
#endif /* WINVER >= 0x0602 */
#endif /* !NONCMESSAGES */ #endif /* !NONCMESSAGES */
/* /*
* WM_MOUSEACTIVATE Return Codes * WM_MOUSEACTIVATE Return Codes
*/ */
#define MA_ACTIVATE 1 #define MA_ACTIVATE 1
#define MA_ACTIVATEANDEAT 2 #define MA_ACTIVATEANDEAT 2
#define MA_NOACTIVATE 3 #define MA_NOACTIVATE 3
#define MA_NOACTIVATEANDEAT 4 #define MA_NOACTIVATEANDEAT 4
/* /*
* WM_SETICON / WM_GETICON Type Codes * WM_SETICON / WM_GETICON Type Codes
*/ */
#define ICON_SMALL 0 #define ICON_SMALL 0
#define ICON_BIG 1 #define ICON_BIG 1
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define ICON_SMALL2 2 #define ICON_SMALL2 2
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
RegisterWindowMessageA( RegisterWindowMessageA(
__in LPCSTR lpString); _In_ LPCSTR lpString);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
RegisterWindowMessageW( RegisterWindowMessageW(
__in LPCWSTR lpString); _In_ LPCWSTR lpString);
#ifdef UNICODE #ifdef UNICODE
#define RegisterWindowMessage RegisterWindowMessageW #define RegisterWindowMessage RegisterWindowMessageW
#else #else
#define RegisterWindowMessage RegisterWindowMessageA #define RegisterWindowMessage RegisterWindowMessageA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* WM_SIZE message wParam values * WM_SIZE message wParam values
*/ */
#define SIZE_RESTORED 0 #define SIZE_RESTORED 0
#define SIZE_MINIMIZED 1 #define SIZE_MINIMIZED 1
#define SIZE_MAXIMIZED 2 #define SIZE_MAXIMIZED 2
#define SIZE_MAXSHOW 3 #define SIZE_MAXSHOW 3
#define SIZE_MAXHIDE 4 #define SIZE_MAXHIDE 4
/* /*
* Obsolete constant names * Obsolete constant names
*/ */
#define SIZENORMAL SIZE_RESTORED #define SIZENORMAL SIZE_RESTORED
#define SIZEICONIC SIZE_MINIMIZED #define SIZEICONIC SIZE_MINIMIZED
#define SIZEFULLSCREEN SIZE_MAXIMIZED #define SIZEFULLSCREEN SIZE_MAXIMIZED
#define SIZEZOOMSHOW SIZE_MAXSHOW #define SIZEZOOMSHOW SIZE_MAXSHOW
#define SIZEZOOMHIDE SIZE_MAXHIDE #define SIZEZOOMHIDE SIZE_MAXHIDE
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam * WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam
*/ */
typedef struct tagWINDOWPOS { typedef struct tagWINDOWPOS {
HWND hwnd; HWND hwnd;
HWND hwndInsertAfter; HWND hwndInsertAfter;
int x; int x;
int y; int y;
int cx; int cx;
int cy; int cy;
skipping to change at line 2325 skipping to change at line 2541
} WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS; } WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS;
/* /*
* WM_NCCALCSIZE parameter structure * WM_NCCALCSIZE parameter structure
*/ */
typedef struct tagNCCALCSIZE_PARAMS { typedef struct tagNCCALCSIZE_PARAMS {
RECT rgrc[3]; RECT rgrc[3];
PWINDOWPOS lppos; PWINDOWPOS lppos;
} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* WM_NCCALCSIZE "window valid rect" return values * WM_NCCALCSIZE "window valid rect" return values
*/ */
#define WVR_ALIGNTOP 0x0010 #define WVR_ALIGNTOP 0x0010
#define WVR_ALIGNLEFT 0x0020 #define WVR_ALIGNLEFT 0x0020
#define WVR_ALIGNBOTTOM 0x0040 #define WVR_ALIGNBOTTOM 0x0040
#define WVR_ALIGNRIGHT 0x0080 #define WVR_ALIGNRIGHT 0x0080
#define WVR_HREDRAW 0x0100 #define WVR_HREDRAW 0x0100
#define WVR_VREDRAW 0x0200 #define WVR_VREDRAW 0x0200
#define WVR_REDRAW (WVR_HREDRAW | \ #define WVR_REDRAW (WVR_HREDRAW | \
skipping to change at line 2370 skipping to change at line 2589
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define TME_NONCLIENT 0x00000010 #define TME_NONCLIENT 0x00000010
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#define TME_QUERY 0x40000000 #define TME_QUERY 0x40000000
#define TME_CANCEL 0x80000000 #define TME_CANCEL 0x80000000
#define HOVER_DEFAULT 0xFFFFFFFF #define HOVER_DEFAULT 0xFFFFFFFF
#endif /* _WIN32_WINNT >= 0x0400 */ #endif /* _WIN32_WINNT >= 0x0400 */
#if(_WIN32_WINNT >= 0x0400) #if(_WIN32_WINNT >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagTRACKMOUSEEVENT { typedef struct tagTRACKMOUSEEVENT {
DWORD cbSize; DWORD cbSize;
DWORD dwFlags; DWORD dwFlags;
HWND hwndTrack; HWND hwndTrack;
DWORD dwHoverTime; DWORD dwHoverTime;
} TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT; } TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
TrackMouseEvent( TrackMouseEvent(
__inout LPTRACKMOUSEEVENT lpEventTrack); _Inout_ LPTRACKMOUSEEVENT lpEventTrack);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* _WIN32_WINNT >= 0x0400 */ #endif /* _WIN32_WINNT >= 0x0400 */
#if(_WIN32_WINNT >= 0x0400) #if(_WIN32_WINNT >= 0x0400)
#endif /* !NOTRACKMOUSEEVENT */ #endif /* !NOTRACKMOUSEEVENT */
#endif /* _WIN32_WINNT >= 0x0400 */ #endif /* _WIN32_WINNT >= 0x0400 */
#endif /* !NOWINMESSAGES */ #endif /* !NOWINMESSAGES */
#ifndef NOWINSTYLES #ifndef NOWINSTYLES
skipping to change at line 2480 skipping to change at line 2707
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define WS_EX_LAYERED 0x00080000 #define WS_EX_LAYERED 0x00080000
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define WS_EX_NOINHERITLAYOUT 0x00100000L // Disable inheritence of mirroring by children #define WS_EX_NOINHERITLAYOUT 0x00100000L // Disable inheritence of mirroring by children
#endif /* WINVER >= 0x0500 */
#if(WINVER >= 0x0602)
#define WS_EX_NOREDIRECTIONBITMAP 0x00200000L
#endif /* WINVER >= 0x0602 */
#if(WINVER >= 0x0500)
#define WS_EX_LAYOUTRTL 0x00400000L // Right to left mirroring #define WS_EX_LAYOUTRTL 0x00400000L // Right to left mirroring
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define WS_EX_COMPOSITED 0x02000000L #define WS_EX_COMPOSITED 0x02000000L
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define WS_EX_NOACTIVATE 0x08000000L #define WS_EX_NOACTIVATE 0x08000000L
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
skipping to change at line 2563 skipping to change at line 2797
#define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT) #define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT)
#define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT) #define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
#define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT) #define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
#define BF_MIDDLE 0x0800 /* Fill in the middle */ #define BF_MIDDLE 0x0800 /* Fill in the middle */
#define BF_SOFT 0x1000 /* For softer buttons */ #define BF_SOFT 0x1000 /* For softer buttons */
#define BF_ADJUST 0x2000 /* Calculate the space left over */ #define BF_ADJUST 0x2000 /* Calculate the space left over */
#define BF_FLAT 0x4000 /* For flat rather than 3D borders */ #define BF_FLAT 0x4000 /* For flat rather than 3D borders */
#define BF_MONO 0x8000 /* For monochrome borders */ #define BF_MONO 0x8000 /* For monochrome borders */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawEdge( DrawEdge(
__in HDC hdc, _In_ HDC hdc,
__inout LPRECT qrc, _Inout_ LPRECT qrc,
__in UINT edge, _In_ UINT edge,
__in UINT grfFlags); _In_ UINT grfFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* flags for DrawFrameControl */ /* flags for DrawFrameControl */
#define DFC_CAPTION 1 #define DFC_CAPTION 1
#define DFC_MENU 2 #define DFC_MENU 2
#define DFC_SCROLL 3 #define DFC_SCROLL 3
#define DFC_BUTTON 4 #define DFC_BUTTON 4
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define DFC_POPUPMENU 5 #define DFC_POPUPMENU 5
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
skipping to change at line 2620 skipping to change at line 2860
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define DFCS_TRANSPARENT 0x0800 #define DFCS_TRANSPARENT 0x0800
#define DFCS_HOT 0x1000 #define DFCS_HOT 0x1000
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#define DFCS_ADJUSTRECT 0x2000 #define DFCS_ADJUSTRECT 0x2000
#define DFCS_FLAT 0x4000 #define DFCS_FLAT 0x4000
#define DFCS_MONO 0x8000 #define DFCS_MONO 0x8000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawFrameControl( DrawFrameControl(
__in HDC, _In_ HDC,
__inout LPRECT, _Inout_ LPRECT,
__in UINT, _In_ UINT,
__in UINT); _In_ UINT);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* flags for DrawCaption */ /* flags for DrawCaption */
#define DC_ACTIVE 0x0001 #define DC_ACTIVE 0x0001
#define DC_SMALLCAP 0x0002 #define DC_SMALLCAP 0x0002
#define DC_ICON 0x0004 #define DC_ICON 0x0004
#define DC_TEXT 0x0008 #define DC_TEXT 0x0008
#define DC_INBUTTON 0x0010 #define DC_INBUTTON 0x0010
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define DC_GRADIENT 0x0020 #define DC_GRADIENT 0x0020
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define DC_BUTTONS 0x1000 #define DC_BUTTONS 0x1000
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawCaption( DrawCaption(
__in HWND hwnd, _In_ HWND hwnd,
__in HDC hdc, _In_ HDC hdc,
__in CONST RECT * lprect, _In_ CONST RECT * lprect,
__in UINT flags); _In_ UINT flags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define IDANI_OPEN 1 #define IDANI_OPEN 1
#define IDANI_CAPTION 3 #define IDANI_CAPTION 3
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawAnimatedRects( DrawAnimatedRects(
__in_opt HWND hwnd, _In_opt_ HWND hwnd,
__in int idAni, _In_ int idAni,
__in CONST RECT *lprcFrom, _In_ CONST RECT *lprcFrom,
__in CONST RECT *lprcTo); _In_ CONST RECT *lprcTo);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#ifndef NOCLIPBOARD #ifndef NOCLIPBOARD
/* /*
* Predefined Clipboard Formats * Predefined Clipboard Formats
*/ */
#define CF_TEXT 1 #define CF_TEXT 1
#define CF_BITMAP 2 #define CF_BITMAP 2
skipping to change at line 2729 skipping to change at line 2987
/* /*
* Defines for the fVirt field of the Accelerator table structure. * Defines for the fVirt field of the Accelerator table structure.
*/ */
#define FVIRTKEY TRUE /* Assumed to be == TRUE */ #define FVIRTKEY TRUE /* Assumed to be == TRUE */
#define FNOINVERT 0x02 #define FNOINVERT 0x02
#define FSHIFT 0x04 #define FSHIFT 0x04
#define FCONTROL 0x08 #define FCONTROL 0x08
#define FALT 0x10 #define FALT 0x10
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagACCEL { typedef struct tagACCEL {
#ifndef _MAC #ifndef _MAC
BYTE fVirt; /* Also called the flags field */ BYTE fVirt; /* Also called the flags field */
WORD key; WORD key;
WORD cmd; WORD cmd;
#else #else
WORD fVirt; /* Also called the flags field */ WORD fVirt; /* Also called the flags field */
WORD key; WORD key;
DWORD cmd; DWORD cmd;
#endif #endif
skipping to change at line 2805 skipping to change at line 3066
#endif #endif
} WINDOWPLACEMENT; } WINDOWPLACEMENT;
typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT; typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT;
#define WPF_SETMINPOSITION 0x0001 #define WPF_SETMINPOSITION 0x0001
#define WPF_RESTORETOMAXIMIZED 0x0002 #define WPF_RESTORETOMAXIMIZED 0x0002
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define WPF_ASYNCWINDOWPLACEMENT 0x0004 #define WPF_ASYNCWINDOWPLACEMENT 0x0004
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagNMHDR typedef struct tagNMHDR
{ {
HWND hwndFrom; HWND hwndFrom;
UINT_PTR idFrom; UINT_PTR idFrom;
UINT code; // NM_ code UINT code; // NM_ code
} NMHDR; } NMHDR;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef NMHDR FAR * LPNMHDR; typedef NMHDR FAR * LPNMHDR;
typedef struct tagSTYLESTRUCT typedef struct tagSTYLESTRUCT
{ {
DWORD styleOld; DWORD styleOld;
DWORD styleNew; DWORD styleNew;
} STYLESTRUCT, * LPSTYLESTRUCT; } STYLESTRUCT, * LPSTYLESTRUCT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
/* /*
* Owner draw control types * Owner draw control types
*/ */
#define ODT_MENU 1 #define ODT_MENU 1
#define ODT_LISTBOX 2 #define ODT_LISTBOX 2
#define ODT_COMBOBOX 3 #define ODT_COMBOBOX 3
#define ODT_BUTTON 4 #define ODT_BUTTON 4
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
skipping to change at line 2860 skipping to change at line 3138
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define ODS_HOTLIGHT 0x0040 #define ODS_HOTLIGHT 0x0040
#define ODS_INACTIVE 0x0080 #define ODS_INACTIVE 0x0080
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define ODS_NOACCEL 0x0100 #define ODS_NOACCEL 0x0100
#define ODS_NOFOCUSRECT 0x0200 #define ODS_NOFOCUSRECT 0x0200
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* MEASUREITEMSTRUCT for ownerdraw * MEASUREITEMSTRUCT for ownerdraw
*/ */
typedef struct tagMEASUREITEMSTRUCT { typedef struct tagMEASUREITEMSTRUCT {
UINT CtlType; UINT CtlType;
UINT CtlID; UINT CtlID;
UINT itemID; UINT itemID;
UINT itemWidth; UINT itemWidth;
UINT itemHeight; UINT itemHeight;
ULONG_PTR itemData; ULONG_PTR itemData;
skipping to change at line 2912 skipping to change at line 3193
UINT CtlType; UINT CtlType;
UINT CtlID; UINT CtlID;
HWND hwndItem; HWND hwndItem;
UINT itemID1; UINT itemID1;
ULONG_PTR itemData1; ULONG_PTR itemData1;
UINT itemID2; UINT itemID2;
ULONG_PTR itemData2; ULONG_PTR itemData2;
DWORD dwLocaleId; DWORD dwLocaleId;
} COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT; } COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NOMSG #ifndef NOMSG
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Message Function Templates * Message Function Templates
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMessageA( GetMessageA(
__out LPMSG lpMsg, _Out_ LPMSG lpMsg,
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in UINT wMsgFilterMin, _In_ UINT wMsgFilterMin,
__in UINT wMsgFilterMax); _In_ UINT wMsgFilterMax);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMessageW( GetMessageW(
__out LPMSG lpMsg, _Out_ LPMSG lpMsg,
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in UINT wMsgFilterMin, _In_ UINT wMsgFilterMin,
__in UINT wMsgFilterMax); _In_ UINT wMsgFilterMax);
#ifdef UNICODE #ifdef UNICODE
#define GetMessage GetMessageW #define GetMessage GetMessageW
#else #else
#define GetMessage GetMessageA #define GetMessage GetMessageA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef GetMessage #undef GetMessage
__inline __inline
BOOL BOOL
skipping to change at line 2968 skipping to change at line 3255
wMsgFilterMin, wMsgFilterMin,
wMsgFilterMax wMsgFilterMax
); );
} }
#endif /* _M_CEE */ #endif /* _M_CEE */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
TranslateMessage( TranslateMessage(
__in CONST MSG *lpMsg); _In_ CONST MSG *lpMsg);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
DispatchMessageA( DispatchMessageA(
__in CONST MSG *lpMsg); _In_ CONST MSG *lpMsg);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
DispatchMessageW( DispatchMessageW(
__in CONST MSG *lpMsg); _In_ CONST MSG *lpMsg);
#ifdef UNICODE #ifdef UNICODE
#define DispatchMessage DispatchMessageW #define DispatchMessage DispatchMessageW
#else #else
#define DispatchMessage DispatchMessageA #define DispatchMessage DispatchMessageA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef DispatchMessage #undef DispatchMessage
__inline __inline
LRESULT LRESULT
skipping to change at line 3008 skipping to change at line 3295
#endif #endif
lpMsg lpMsg
); );
} }
#endif /* _M_CEE */ #endif /* _M_CEE */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetMessageQueue( SetMessageQueue(
__in int cMessagesMax); _In_ int cMessagesMax);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PeekMessageA( PeekMessageA(
__out LPMSG lpMsg, _Out_ LPMSG lpMsg,
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in UINT wMsgFilterMin, _In_ UINT wMsgFilterMin,
__in UINT wMsgFilterMax, _In_ UINT wMsgFilterMax,
__in UINT wRemoveMsg); _In_ UINT wRemoveMsg);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PeekMessageW( PeekMessageW(
__out LPMSG lpMsg, _Out_ LPMSG lpMsg,
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in UINT wMsgFilterMin, _In_ UINT wMsgFilterMin,
__in UINT wMsgFilterMax, _In_ UINT wMsgFilterMax,
__in UINT wRemoveMsg); _In_ UINT wRemoveMsg);
#ifdef UNICODE #ifdef UNICODE
#define PeekMessage PeekMessageW #define PeekMessage PeekMessageW
#else #else
#define PeekMessage PeekMessageA #define PeekMessage PeekMessageA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* PeekMessage() Options * PeekMessage() Options
*/ */
#define PM_NOREMOVE 0x0000 #define PM_NOREMOVE 0x0000
#define PM_REMOVE 0x0001 #define PM_REMOVE 0x0001
#define PM_NOYIELD 0x0002 #define PM_NOYIELD 0x0002
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define PM_QS_INPUT (QS_INPUT << 16) #define PM_QS_INPUT (QS_INPUT << 16)
#define PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) #define PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16)
#define PM_QS_PAINT (QS_PAINT << 16) #define PM_QS_PAINT (QS_PAINT << 16)
#define PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16) #define PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16)
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#endif /* !NOMSG */ #endif /* !NOMSG */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
RegisterHotKey( RegisterHotKey(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in int id, _In_ int id,
__in UINT fsModifiers, _In_ UINT fsModifiers,
__in UINT vk); _In_ UINT vk);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnregisterHotKey( UnregisterHotKey(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in int id); _In_ int id);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define MOD_ALT 0x0001 #define MOD_ALT 0x0001
#define MOD_CONTROL 0x0002 #define MOD_CONTROL 0x0002
#define MOD_SHIFT 0x0004 #define MOD_SHIFT 0x0004
#define MOD_WIN 0x0008 #define MOD_WIN 0x0008
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
#define MOD_NOREPEAT 0x4000 #define MOD_NOREPEAT 0x4000
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */ #define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */
skipping to change at line 3086 skipping to change at line 3382
#ifdef WIN_INTERNAL #ifdef WIN_INTERNAL
#ifndef LSTRING #ifndef LSTRING
#define NOLSTRING #define NOLSTRING
#endif /* LSTRING */ #endif /* LSTRING */
#ifndef LFILEIO #ifndef LFILEIO
#define NOLFILEIO #define NOLFILEIO
#endif /* LFILEIO */ #endif /* LFILEIO */
#endif /* WIN_INTERNAL */ #endif /* WIN_INTERNAL */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define ENDSESSION_LOGOFF 0x80000000
#define ENDSESSION_CRITICAL 0x40000000
#define ENDSESSION_CLOSEAPP 0x00000001
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#define EWX_LOGOFF 0 #if(_WIN32_WINNT >= 0x0400)
#define EWX_SHUTDOWN 0x00000001 #define ENDSESSION_CLOSEAPP 0x00000001
#define EWX_REBOOT 0x00000002 #endif /* _WIN32_WINNT >= 0x0400 */
#define EWX_FORCE 0x00000004 #if(_WIN32_WINNT >= 0x0400)
#define EWX_POWEROFF 0x00000008 #define ENDSESSION_CRITICAL 0x40000000
#endif /* _WIN32_WINNT >= 0x0400 */
#if(_WIN32_WINNT >= 0x0400)
#define ENDSESSION_LOGOFF 0x80000000
#endif /* _WIN32_WINNT >= 0x0400 */
#define EWX_LOGOFF 0x00000000
#define EWX_SHUTDOWN 0x00000001
#define EWX_REBOOT 0x00000002
#define EWX_FORCE 0x00000004
#define EWX_POWEROFF 0x00000008
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define EWX_FORCEIFHUNG 0x00000010 #define EWX_FORCEIFHUNG 0x00000010
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#define EWX_QUICKRESOLVE 0x00000020 #define EWX_QUICKRESOLVE 0x00000020
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
#define EWX_RESTARTAPPS 0x00000040 #define EWX_RESTARTAPPS 0x00000040
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
#define EWX_HYBRID_SHUTDOWN 0x00400000
#define EWX_BOOTOPTIONS 0x01000000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define ExitWindows(dwReserved, Code) ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF) #define ExitWindows(dwReserved, Code) ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF)
__drv_when((uFlags&(EWX_POWEROFF|EWX_SHUTDOWN|EWX_FORCE))!=0, _When_((uFlags&(EWX_POWEROFF|EWX_SHUTDOWN|EWX_FORCE))!=0,
__drv_preferredFunction("InitiateSystemShutdownEx", __drv_preferredFunction("InitiateSystemShutdownEx",
"Legacy API. Rearchitect to avoid Reboot")) "Legacy API. Rearchitect to avoid Reboot"))
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ExitWindowsEx( ExitWindowsEx(
__in UINT uFlags, _In_ UINT uFlags,
__in DWORD dwReason); _In_ DWORD dwReason);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SwapMouseButton( SwapMouseButton(
__in BOOL fSwap); _In_ BOOL fSwap);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetMessagePos( GetMessagePos(
VOID); VOID);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
GetMessageTime( GetMessageTime(
VOID); VOID);
WINUSERAPI WINUSERAPI
LPARAM LPARAM
WINAPI WINAPI
GetMessageExtraInfo( GetMessageExtraInfo(
VOID); VOID);
#if(_WIN32_WINNT >= 0x0602)
WINUSERAPI
DWORD
WINAPI
GetUnpredictedMessagePos(
VOID);
#endif /* _WIN32_WINNT >= 0x0602 */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsWow64Message( IsWow64Message(
VOID); VOID);
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
LPARAM LPARAM
WINAPI WINAPI
SetMessageExtraInfo( SetMessageExtraInfo(
__in LPARAM lParam); _In_ LPARAM lParam);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
SendMessageA( SendMessageA(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _Pre_maybenull_ _Post_valid_ WPARAM wParam,
__in LPARAM lParam); _Pre_maybenull_ _Post_valid_ LPARAM lParam);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
SendMessageW( SendMessageW(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _Pre_maybenull_ _Post_valid_ WPARAM wParam,
__in LPARAM lParam); _Pre_maybenull_ _Post_valid_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define SendMessage SendMessageW #define SendMessage SendMessageW
#else #else
#define SendMessage SendMessageA #define SendMessage SendMessageA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef SendMessage #undef SendMessage
__inline __inline
LRESULT LRESULT
skipping to change at line 3209 skipping to change at line 3522
wParam, wParam,
lParam lParam
); );
} }
#endif /* _M_CEE */ #endif /* _M_CEE */
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
SendMessageTimeoutA( SendMessageTimeoutA(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam, _In_ LPARAM lParam,
__in UINT fuFlags, _In_ UINT fuFlags,
__in UINT uTimeout, _In_ UINT uTimeout,
__out_opt PDWORD_PTR lpdwResult); _Out_opt_ PDWORD_PTR lpdwResult);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
SendMessageTimeoutW( SendMessageTimeoutW(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam, _In_ LPARAM lParam,
__in UINT fuFlags, _In_ UINT fuFlags,
__in UINT uTimeout, _In_ UINT uTimeout,
__out_opt PDWORD_PTR lpdwResult); _Out_opt_ PDWORD_PTR lpdwResult);
#ifdef UNICODE #ifdef UNICODE
#define SendMessageTimeout SendMessageTimeoutW #define SendMessageTimeout SendMessageTimeoutW
#else #else
#define SendMessageTimeout SendMessageTimeoutA #define SendMessageTimeout SendMessageTimeoutA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SendNotifyMessageA( SendNotifyMessageA(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SendNotifyMessageW( SendNotifyMessageW(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define SendNotifyMessage SendNotifyMessageW #define SendNotifyMessage SendNotifyMessageW
#else #else
#define SendNotifyMessage SendNotifyMessageA #define SendNotifyMessage SendNotifyMessageA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SendMessageCallbackA( SendMessageCallbackA(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam, _In_ LPARAM lParam,
__in SENDASYNCPROC lpResultCallBack, _In_ SENDASYNCPROC lpResultCallBack,
__in ULONG_PTR dwData); _In_ ULONG_PTR dwData);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SendMessageCallbackW( SendMessageCallbackW(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam, _In_ LPARAM lParam,
__in SENDASYNCPROC lpResultCallBack, _In_ SENDASYNCPROC lpResultCallBack,
__in ULONG_PTR dwData); _In_ ULONG_PTR dwData);
#ifdef UNICODE #ifdef UNICODE
#define SendMessageCallback SendMessageCallbackW #define SendMessageCallback SendMessageCallbackW
#else #else
#define SendMessageCallback SendMessageCallbackA #define SendMessageCallback SendMessageCallbackA
#endif // !UNICODE #endif // !UNICODE
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
typedef struct { typedef struct {
UINT cbSize; UINT cbSize;
HDESK hdesk; HDESK hdesk;
HWND hwnd; HWND hwnd;
LUID luid; LUID luid;
} BSMINFO, *PBSMINFO; } BSMINFO, *PBSMINFO;
WINUSERAPI WINUSERAPI
long long
WINAPI WINAPI
BroadcastSystemMessageExA( BroadcastSystemMessageExA(
__in DWORD flags, _In_ DWORD flags,
__inout_opt LPDWORD lpInfo, _Inout_opt_ LPDWORD lpInfo,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam, _In_ LPARAM lParam,
__out_opt PBSMINFO pbsmInfo); _Out_opt_ PBSMINFO pbsmInfo);
WINUSERAPI WINUSERAPI
long long
WINAPI WINAPI
BroadcastSystemMessageExW( BroadcastSystemMessageExW(
__in DWORD flags, _In_ DWORD flags,
__inout_opt LPDWORD lpInfo, _Inout_opt_ LPDWORD lpInfo,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam, _In_ LPARAM lParam,
__out_opt PBSMINFO pbsmInfo); _Out_opt_ PBSMINFO pbsmInfo);
#ifdef UNICODE #ifdef UNICODE
#define BroadcastSystemMessageEx BroadcastSystemMessageExW #define BroadcastSystemMessageEx BroadcastSystemMessageExW
#else #else
#define BroadcastSystemMessageEx BroadcastSystemMessageExA #define BroadcastSystemMessageEx BroadcastSystemMessageExA
#endif // !UNICODE #endif // !UNICODE
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if defined(_WIN32_WINNT) #if defined(_WIN32_WINNT)
WINUSERAPI WINUSERAPI
long long
WINAPI WINAPI
BroadcastSystemMessageA( BroadcastSystemMessageA(
__in DWORD flags, _In_ DWORD flags,
__inout_opt LPDWORD lpInfo, _Inout_opt_ LPDWORD lpInfo,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
long long
WINAPI WINAPI
BroadcastSystemMessageW( BroadcastSystemMessageW(
__in DWORD flags, _In_ DWORD flags,
__inout_opt LPDWORD lpInfo, _Inout_opt_ LPDWORD lpInfo,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define BroadcastSystemMessage BroadcastSystemMessageW #define BroadcastSystemMessage BroadcastSystemMessageW
#else #else
#define BroadcastSystemMessage BroadcastSystemMessageA #define BroadcastSystemMessage BroadcastSystemMessageA
#endif // !UNICODE #endif // !UNICODE
#elif defined(_WIN32_WINDOWS) #elif defined(_WIN32_WINDOWS)
// The Win95 version isn't A/W decorated // The Win95 version isn't A/W decorated
WINUSERAPI WINUSERAPI
long long
WINAPI WINAPI
BroadcastSystemMessage( BroadcastSystemMessage(
__in DWORD flags, _In_ DWORD flags,
__inout_opt LPDWORD lpInfo, _Inout_opt_ LPDWORD lpInfo,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
//Broadcast Special Message Recipient list //Broadcast Special Message Recipient list
#define BSM_ALLCOMPONENTS 0x00000000 #define BSM_ALLCOMPONENTS 0x00000000
#define BSM_VXDS 0x00000001 #define BSM_VXDS 0x00000001
#define BSM_NETDRIVER 0x00000002 #define BSM_NETDRIVER 0x00000002
#define BSM_INSTALLABLEDRIVERS 0x00000004 #define BSM_INSTALLABLEDRIVERS 0x00000004
#define BSM_APPLICATIONS 0x00000008 #define BSM_APPLICATIONS 0x00000008
#define BSM_ALLDESKTOPS 0x00000010 #define BSM_ALLDESKTOPS 0x00000010
//Broadcast Special Message Flags //Broadcast Special Message Flags
#define BSF_QUERY 0x00000001 #define BSF_QUERY 0x00000001
skipping to change at line 3386 skipping to change at line 3708
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define BSF_RETURNHDESK 0x00000200 #define BSF_RETURNHDESK 0x00000200
#define BSF_LUID 0x00000400 #define BSF_LUID 0x00000400
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#define BROADCAST_QUERY_DENY 0x424D5144 // Return this value to deny a query. #define BROADCAST_QUERY_DENY 0x424D5144 // Return this value to deny a query.
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
// RegisterDeviceNotification // RegisterDeviceNotification
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
typedef PVOID HDEVNOTIFY; typedef PVOID HDEVNOTIFY;
typedef HDEVNOTIFY *PHDEVNOTIFY; typedef HDEVNOTIFY *PHDEVNOTIFY;
#define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000 #define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000
#define DEVICE_NOTIFY_SERVICE_HANDLE 0x00000001 #define DEVICE_NOTIFY_SERVICE_HANDLE 0x00000001
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 0x00000004 #define DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 0x00000004
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
WINUSERAPI WINUSERAPI
HDEVNOTIFY HDEVNOTIFY
WINAPI WINAPI
RegisterDeviceNotificationA( RegisterDeviceNotificationA(
__in HANDLE hRecipient, _In_ HANDLE hRecipient,
__in LPVOID NotificationFilter, _In_ LPVOID NotificationFilter,
__in DWORD Flags); _In_ DWORD Flags);
WINUSERAPI WINUSERAPI
HDEVNOTIFY HDEVNOTIFY
WINAPI WINAPI
RegisterDeviceNotificationW( RegisterDeviceNotificationW(
__in HANDLE hRecipient, _In_ HANDLE hRecipient,
__in LPVOID NotificationFilter, _In_ LPVOID NotificationFilter,
__in DWORD Flags); _In_ DWORD Flags);
#ifdef UNICODE #ifdef UNICODE
#define RegisterDeviceNotification RegisterDeviceNotificationW #define RegisterDeviceNotification RegisterDeviceNotificationW
#else #else
#define RegisterDeviceNotification RegisterDeviceNotificationA #define RegisterDeviceNotification RegisterDeviceNotificationA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnregisterDeviceNotification( UnregisterDeviceNotification(
__in HDEVNOTIFY Handle _In_ HDEVNOTIFY Handle
); );
#if (_WIN32_WINNT >= 0x0502) #if (_WIN32_WINNT >= 0x0502)
#if !defined(_HPOWERNOTIFY_DEF_) #if !defined(_HPOWERNOTIFY_DEF_)
#define _HPOWERNOTIFY_DEF_ #define _HPOWERNOTIFY_DEF_
typedef PVOID HPOWERNOTIFY; typedef PVOID HPOWERNOTIFY;
typedef HPOWERNOTIFY *PHPOWERNOTIFY; typedef HPOWERNOTIFY *PHPOWERNOTIFY;
skipping to change at line 3449 skipping to change at line 3774
IN LPCGUID PowerSettingGuid, IN LPCGUID PowerSettingGuid,
IN DWORD Flags IN DWORD Flags
); );
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnregisterPowerSettingNotification( UnregisterPowerSettingNotification(
IN HPOWERNOTIFY Handle IN HPOWERNOTIFY Handle
); );
WINUSERAPI
HPOWERNOTIFY
WINAPI
RegisterSuspendResumeNotification (
IN HANDLE hRecipient,
IN DWORD Flags
);
WINUSERAPI
BOOL
WINAPI
UnregisterSuspendResumeNotification (
IN HPOWERNOTIFY Handle
);
#endif // (_WIN32_WINNT >= 0x0502) #endif // (_WIN32_WINNT >= 0x0502)
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PostMessageA( PostMessageA(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PostMessageW( PostMessageW(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define PostMessage PostMessageW #define PostMessage PostMessageW
#else #else
#define PostMessage PostMessageA #define PostMessage PostMessageA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PostThreadMessageA( PostThreadMessageA(
__in DWORD idThread, _In_ DWORD idThread,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PostThreadMessageW( PostThreadMessageW(
__in DWORD idThread, _In_ DWORD idThread,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define PostThreadMessage PostThreadMessageW #define PostThreadMessage PostThreadMessageW
#else #else
#define PostThreadMessage PostThreadMessageA #define PostThreadMessage PostThreadMessageA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define PostAppMessageA(idThread, wMsg, wParam, lParam)\ #define PostAppMessageA(idThread, wMsg, wParam, lParam)\
PostThreadMessageA((DWORD)idThread, wMsg, wParam, lParam) PostThreadMessageA((DWORD)idThread, wMsg, wParam, lParam)
#define PostAppMessageW(idThread, wMsg, wParam, lParam)\ #define PostAppMessageW(idThread, wMsg, wParam, lParam)\
PostThreadMessageW((DWORD)idThread, wMsg, wParam, lParam) PostThreadMessageW((DWORD)idThread, wMsg, wParam, lParam)
#ifdef UNICODE #ifdef UNICODE
#define PostAppMessage PostAppMessageW #define PostAppMessage PostAppMessageW
#else #else
#define PostAppMessage PostAppMessageA #define PostAppMessage PostAppMessageA
#endif // !UNICODE #endif // !UNICODE
/* /*
* Special HWND value for use with PostMessage() and SendMessage() * Special HWND value for use with PostMessage() and SendMessage()
*/ */
#define HWND_BROADCAST ((HWND)0xffff) #define HWND_BROADCAST ((HWND)0xffff)
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define HWND_MESSAGE ((HWND)-3) #define HWND_MESSAGE ((HWND)-3)
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AttachThreadInput( AttachThreadInput(
__in DWORD idAttach, _In_ DWORD idAttach,
__in DWORD idAttachTo, _In_ DWORD idAttachTo,
__in BOOL fAttach); _In_ BOOL fAttach);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ReplyMessage( ReplyMessage(
__in LRESULT lResult); _In_ LRESULT lResult);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
WaitMessage( WaitMessage(
VOID); VOID);
#if (_WIN32_WINNT >= 0x602)
#endif
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
WaitForInputIdle( WaitForInputIdle(
__in HANDLE hProcess, _In_ HANDLE hProcess,
__in DWORD dwMilliseconds); _In_ DWORD dwMilliseconds);
WINUSERAPI WINUSERAPI
#ifndef _MAC #ifndef _MAC
LRESULT LRESULT
WINAPI WINAPI
#else #else
LRESULT LRESULT
CALLBACK CALLBACK
#endif #endif
DefWindowProcA( DefWindowProcA(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
#ifndef _MAC #ifndef _MAC
LRESULT LRESULT
WINAPI WINAPI
#else #else
LRESULT LRESULT
CALLBACK CALLBACK
#endif #endif
DefWindowProcW( DefWindowProcW(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define DefWindowProc DefWindowProcW #define DefWindowProc DefWindowProcW
#else #else
#define DefWindowProc DefWindowProcA #define DefWindowProc DefWindowProcA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
VOID VOID
WINAPI WINAPI
PostQuitMessage( PostQuitMessage(
__in int nExitCode); _In_ int nExitCode);
#ifdef STRICT #ifdef STRICT
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
CallWindowProcA( CallWindowProcA(
__in WNDPROC lpPrevWndFunc, _In_ WNDPROC lpPrevWndFunc,
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
CallWindowProcW( CallWindowProcW(
__in WNDPROC lpPrevWndFunc, _In_ WNDPROC lpPrevWndFunc,
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define CallWindowProc CallWindowProcW #define CallWindowProc CallWindowProcW
#else #else
#define CallWindowProc CallWindowProcA #define CallWindowProc CallWindowProcA
#endif // !UNICODE #endif // !UNICODE
#else /* !STRICT */ #else /* !STRICT */
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
CallWindowProcA( CallWindowProcA(
__in FARPROC lpPrevWndFunc, _In_ FARPROC lpPrevWndFunc,
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
CallWindowProcW( CallWindowProcW(
__in FARPROC lpPrevWndFunc, _In_ FARPROC lpPrevWndFunc,
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define CallWindowProc CallWindowProcW #define CallWindowProc CallWindowProcW
#else #else
#define CallWindowProc CallWindowProcA #define CallWindowProc CallWindowProcA
#endif // !UNICODE #endif // !UNICODE
#endif /* !STRICT */ #endif /* !STRICT */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InSendMessage( InSendMessage(
VOID); VOID);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
InSendMessageEx( InSendMessageEx(
__reserved LPVOID lpReserved); _Reserved_ LPVOID lpReserved);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* InSendMessageEx return value * InSendMessageEx return value
*/ */
#define ISMEX_NOSEND 0x00000000 #define ISMEX_NOSEND 0x00000000
#define ISMEX_SEND 0x00000001 #define ISMEX_SEND 0x00000001
#define ISMEX_NOTIFY 0x00000002 #define ISMEX_NOTIFY 0x00000002
#define ISMEX_CALLBACK 0x00000004 #define ISMEX_CALLBACK 0x00000004
#define ISMEX_REPLIED 0x00000008 #define ISMEX_REPLIED 0x00000008
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetDoubleClickTime( GetDoubleClickTime(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetDoubleClickTime( SetDoubleClickTime(
__in UINT); _In_ UINT);
WINUSERAPI WINUSERAPI
ATOM ATOM
WINAPI WINAPI
RegisterClassA( RegisterClassA(
__in CONST WNDCLASSA *lpWndClass); _In_ CONST WNDCLASSA *lpWndClass);
WINUSERAPI WINUSERAPI
ATOM ATOM
WINAPI WINAPI
RegisterClassW( RegisterClassW(
__in CONST WNDCLASSW *lpWndClass); _In_ CONST WNDCLASSW *lpWndClass);
#ifdef UNICODE #ifdef UNICODE
#define RegisterClass RegisterClassW #define RegisterClass RegisterClassW
#else #else
#define RegisterClass RegisterClassA #define RegisterClass RegisterClassA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnregisterClassA( UnregisterClassA(
__in LPCSTR lpClassName, _In_ LPCSTR lpClassName,
__in_opt HINSTANCE hInstance); _In_opt_ HINSTANCE hInstance);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnregisterClassW( UnregisterClassW(
__in LPCWSTR lpClassName, _In_ LPCWSTR lpClassName,
__in_opt HINSTANCE hInstance); _In_opt_ HINSTANCE hInstance);
#ifdef UNICODE #ifdef UNICODE
#define UnregisterClass UnregisterClassW #define UnregisterClass UnregisterClassW
#else #else
#define UnregisterClass UnregisterClassA #define UnregisterClass UnregisterClassA
#endif // !UNICODE #endif // !UNICODE
_Success_(return)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetClassInfoA( GetClassInfoA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpClassName, _In_ LPCSTR lpClassName,
__out LPWNDCLASSA lpWndClass); _Out_ LPWNDCLASSA lpWndClass);
_Success_(return)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetClassInfoW( GetClassInfoW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpClassName, _In_ LPCWSTR lpClassName,
__out LPWNDCLASSW lpWndClass); _Out_ LPWNDCLASSW lpWndClass);
#ifdef UNICODE #ifdef UNICODE
#define GetClassInfo GetClassInfoW #define GetClassInfo GetClassInfoW
#else #else
#define GetClassInfo GetClassInfoA #define GetClassInfo GetClassInfoA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
ATOM ATOM
WINAPI WINAPI
RegisterClassExA( RegisterClassExA(
__in CONST WNDCLASSEXA *); _In_ CONST WNDCLASSEXA *);
WINUSERAPI WINUSERAPI
ATOM ATOM
WINAPI WINAPI
RegisterClassExW( RegisterClassExW(
__in CONST WNDCLASSEXW *); _In_ CONST WNDCLASSEXW *);
#ifdef UNICODE #ifdef UNICODE
#define RegisterClassEx RegisterClassExW #define RegisterClassEx RegisterClassExW
#else #else
#define RegisterClassEx RegisterClassExA #define RegisterClassEx RegisterClassExA
#endif // !UNICODE #endif // !UNICODE
_Success_(return)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetClassInfoExA( GetClassInfoExA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpszClass, _In_ LPCSTR lpszClass,
__out LPWNDCLASSEXA lpwcx); _Out_ LPWNDCLASSEXA lpwcx);
_Success_(return)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetClassInfoExW( GetClassInfoExW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpszClass, _In_ LPCWSTR lpszClass,
__out LPWNDCLASSEXW lpwcx); _Out_ LPWNDCLASSEXW lpwcx);
#ifdef UNICODE #ifdef UNICODE
#define GetClassInfoEx GetClassInfoExW #define GetClassInfoEx GetClassInfoExW
#else #else
#define GetClassInfoEx GetClassInfoExA #define GetClassInfoEx GetClassInfoExA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define CW_USEDEFAULT ((int)0x80000000) #define CW_USEDEFAULT ((int)0x80000000)
/* /*
* Special value for CreateWindow, et al. * Special value for CreateWindow, et al.
*/ */
#define HWND_DESKTOP ((HWND)0) #define HWND_DESKTOP ((HWND)0)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
typedef BOOLEAN (WINAPI * PREGISTERCLASSNAMEW)(LPCWSTR); typedef BOOLEAN (WINAPI * PREGISTERCLASSNAMEW)(LPCWSTR);
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
CreateWindowExA( CreateWindowExA(
__in DWORD dwExStyle, _In_ DWORD dwExStyle,
__in_opt LPCSTR lpClassName, _In_opt_ LPCSTR lpClassName,
__in_opt LPCSTR lpWindowName, _In_opt_ LPCSTR lpWindowName,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in int nWidth, _In_ int nWidth,
__in int nHeight, _In_ int nHeight,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt HMENU hMenu, _In_opt_ HMENU hMenu,
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in_opt LPVOID lpParam); _In_opt_ LPVOID lpParam);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
CreateWindowExW( CreateWindowExW(
__in DWORD dwExStyle, _In_ DWORD dwExStyle,
__in_opt LPCWSTR lpClassName, _In_opt_ LPCWSTR lpClassName,
__in_opt LPCWSTR lpWindowName, _In_opt_ LPCWSTR lpWindowName,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in int nWidth, _In_ int nWidth,
__in int nHeight, _In_ int nHeight,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt HMENU hMenu, _In_opt_ HMENU hMenu,
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in_opt LPVOID lpParam); _In_opt_ LPVOID lpParam);
#ifdef UNICODE #ifdef UNICODE
#define CreateWindowEx CreateWindowExW #define CreateWindowEx CreateWindowExW
#else #else
#define CreateWindowEx CreateWindowExA #define CreateWindowEx CreateWindowExA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\ #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\ CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
#define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\ #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\ CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
#ifdef UNICODE #ifdef UNICODE
#define CreateWindow CreateWindowW #define CreateWindow CreateWindowW
#else #else
#define CreateWindow CreateWindowA #define CreateWindow CreateWindowA
#endif // !UNICODE #endif // !UNICODE
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsWindow( IsWindow(
__in_opt HWND hWnd); _In_opt_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsMenu( IsMenu(
__in HMENU hMenu); _In_ HMENU hMenu);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsChild( IsChild(
__in HWND hWndParent, _In_ HWND hWndParent,
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DestroyWindow( DestroyWindow(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ShowWindow( ShowWindow(
__in HWND hWnd, _In_ HWND hWnd,
__in int nCmdShow); _In_ int nCmdShow);
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AnimateWindow( AnimateWindow(
__in HWND hWnd, _In_ HWND hWnd,
__in DWORD dwTime, _In_ DWORD dwTime,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#if defined(_WINGDI_) && !defined(NOGDI) #if defined(_WINGDI_) && !defined(NOGDI)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UpdateLayeredWindow( UpdateLayeredWindow(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HDC hdcDst, _In_opt_ HDC hdcDst,
__in_opt POINT* pptDst, _In_opt_ POINT* pptDst,
__in_opt SIZE* psize, _In_opt_ SIZE* psize,
__in_opt HDC hdcSrc, _In_opt_ HDC hdcSrc,
__in_opt POINT* pptSrc, _In_opt_ POINT* pptSrc,
__in COLORREF crKey, _In_ COLORREF crKey,
__in_opt BLENDFUNCTION* pblend, _In_opt_ BLENDFUNCTION* pblend,
__in DWORD dwFlags); _In_ DWORD dwFlags);
/* /*
* Layered Window Update information * Layered Window Update information
*/ */
typedef struct tagUPDATELAYEREDWINDOWINFO typedef struct tagUPDATELAYEREDWINDOWINFO
{ {
__in DWORD cbSize; DWORD cbSize;
__in_opt HDC hdcDst; HDC hdcDst;
__in_opt const POINT* pptDst; const POINT* pptDst;
__in_opt const SIZE* psize; const SIZE* psize;
__in_opt HDC hdcSrc; HDC hdcSrc;
__in_opt const POINT* pptSrc; const POINT* pptSrc;
__in_opt COLORREF crKey; COLORREF crKey;
__in_opt const BLENDFUNCTION* pblend; const BLENDFUNCTION* pblend;
__in DWORD dwFlags; DWORD dwFlags;
__in_opt const RECT* prcDirty; const RECT* prcDirty;
} UPDATELAYEREDWINDOWINFO, *PUPDATELAYEREDWINDOWINFO; } UPDATELAYEREDWINDOWINFO, *PUPDATELAYEREDWINDOWINFO;
#if (_WIN32_WINNT < 0x0502) #if (_WIN32_WINNT < 0x0502)
typedef typedef
#endif /* _WIN32_WINNT < 0x0502 */ #endif /* _WIN32_WINNT < 0x0502 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UpdateLayeredWindowIndirect( UpdateLayeredWindowIndirect(
__in HWND hWnd, _In_ HWND hWnd,
__in const UPDATELAYEREDWINDOWINFO* pULWInfo); _In_ const UPDATELAYEREDWINDOWINFO* pULWInfo);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif #endif
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetLayeredWindowAttributes( GetLayeredWindowAttributes(
__in HWND hwnd, _In_ HWND hwnd,
__out_opt COLORREF* pcrKey, _Out_opt_ COLORREF* pcrKey,
__out_opt BYTE* pbAlpha, _Out_opt_ BYTE* pbAlpha,
__out_opt DWORD* pdwFlags); _Out_opt_ DWORD* pdwFlags);
#define PW_CLIENTONLY 0x00000001 #define PW_CLIENTONLY 0x00000001
#if(_WIN32_WINNT >= 0x0603)
#define PW_RENDERFULLCONTENT 0x00000002
#endif /* _WIN32_WINNT >= 0x0603 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PrintWindow( PrintWindow(
__in HWND hwnd, _In_ HWND hwnd,
__in HDC hdcBlt, _In_ HDC hdcBlt,
__in UINT nFlags); _In_ UINT nFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetLayeredWindowAttributes( SetLayeredWindowAttributes(
__in HWND hwnd, _In_ HWND hwnd,
__in COLORREF crKey, _In_ COLORREF crKey,
__in BYTE bAlpha, _In_ BYTE bAlpha,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define LWA_COLORKEY 0x00000001 #define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002 #define LWA_ALPHA 0x00000002
#define ULW_COLORKEY 0x00000001 #define ULW_COLORKEY 0x00000001
#define ULW_ALPHA 0x00000002 #define ULW_ALPHA 0x00000002
#define ULW_OPAQUE 0x00000004 #define ULW_OPAQUE 0x00000004
#define ULW_EX_NORESIZE 0x00000008 #define ULW_EX_NORESIZE 0x00000008
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ShowWindowAsync( ShowWindowAsync(
__in HWND hWnd, _In_ HWND hWnd,
__in int nCmdShow); _In_ int nCmdShow);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
FlashWindow( FlashWindow(
__in HWND hWnd, _In_ HWND hWnd,
__in BOOL bInvert); _In_ BOOL bInvert);
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
typedef struct { typedef struct {
UINT cbSize; UINT cbSize;
HWND hwnd; HWND hwnd;
DWORD dwFlags; DWORD dwFlags;
UINT uCount; UINT uCount;
DWORD dwTimeout; DWORD dwTimeout;
} FLASHWINFO, *PFLASHWINFO; } FLASHWINFO, *PFLASHWINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
FlashWindowEx( FlashWindowEx(
__in PFLASHWINFO pfwi); _In_ PFLASHWINFO pfwi);
#define FLASHW_STOP 0 #define FLASHW_STOP 0
#define FLASHW_CAPTION 0x00000001 #define FLASHW_CAPTION 0x00000001
#define FLASHW_TRAY 0x00000002 #define FLASHW_TRAY 0x00000002
#define FLASHW_ALL (FLASHW_CAPTION | FLASHW_TRAY) #define FLASHW_ALL (FLASHW_CAPTION | FLASHW_TRAY)
#define FLASHW_TIMER 0x00000004 #define FLASHW_TIMER 0x00000004
#define FLASHW_TIMERNOFG 0x0000000C #define FLASHW_TIMERNOFG 0x0000000C
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ShowOwnedPopups( ShowOwnedPopups(
__in HWND hWnd, _In_ HWND hWnd,
__in BOOL fShow); _In_ BOOL fShow);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
OpenIcon( OpenIcon(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CloseWindow( CloseWindow(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
MoveWindow( MoveWindow(
__in HWND hWnd, _In_ HWND hWnd,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in int nWidth, _In_ int nWidth,
__in int nHeight, _In_ int nHeight,
__in BOOL bRepaint); _In_ BOOL bRepaint);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetWindowPos( SetWindowPos(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HWND hWndInsertAfter, _In_opt_ HWND hWndInsertAfter,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in int cx, _In_ int cx,
__in int cy, _In_ int cy,
__in UINT uFlags); _In_ UINT uFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetWindowPlacement( GetWindowPlacement(
__in HWND hWnd, _In_ HWND hWnd,
__inout WINDOWPLACEMENT *lpwndpl); _Inout_ WINDOWPLACEMENT *lpwndpl);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetWindowPlacement( SetWindowPlacement(
__in HWND hWnd, _In_ HWND hWnd,
__in CONST WINDOWPLACEMENT *lpwndpl); _In_ CONST WINDOWPLACEMENT *lpwndpl);
#if(_WIN32_WINNT >= 0x0601) #if(_WIN32_WINNT >= 0x0601)
#define WDA_NONE 0x00000000 #define WDA_NONE 0x00000000
#define WDA_MONITOR 0x00000001 #define WDA_MONITOR 0x00000001
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetWindowDisplayAffinity( GetWindowDisplayAffinity(
__in HWND hWnd, _In_ HWND hWnd,
__out DWORD* pdwAffinity); _Out_ DWORD* pdwAffinity);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetWindowDisplayAffinity( SetWindowDisplayAffinity(
__in HWND hWnd, _In_ HWND hWnd,
__in DWORD dwAffinity); _In_ DWORD dwAffinity);
#endif /* _WIN32_WINNT >= 0x0601 */ #endif /* _WIN32_WINNT >= 0x0601 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NODEFERWINDOWPOS #ifndef NODEFERWINDOWPOS
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HDWP HDWP
WINAPI WINAPI
BeginDeferWindowPos( BeginDeferWindowPos(
__in int nNumWindows); _In_ int nNumWindows);
WINUSERAPI WINUSERAPI
HDWP HDWP
WINAPI WINAPI
DeferWindowPos( DeferWindowPos(
__in HDWP hWinPosInfo, _In_ HDWP hWinPosInfo,
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HWND hWndInsertAfter, _In_opt_ HWND hWndInsertAfter,
__in int x, _In_ int x,
__in int y, _In_ int y,
__in int cx, _In_ int cx,
__in int cy, _In_ int cy,
__in UINT uFlags); _In_ UINT uFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EndDeferWindowPos( EndDeferWindowPos(
__in HDWP hWinPosInfo); _In_ HDWP hWinPosInfo);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NODEFERWINDOWPOS */ #endif /* !NODEFERWINDOWPOS */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsWindowVisible( IsWindowVisible(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsIconic( IsIconic(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AnyPopup( AnyPopup(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
BringWindowToTop( BringWindowToTop(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsZoomed( IsZoomed(
__in HWND hWnd); _In_ HWND hWnd);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* SetWindowPos Flags * SetWindowPos Flags
*/ */
#define SWP_NOSIZE 0x0001 #define SWP_NOSIZE 0x0001
#define SWP_NOMOVE 0x0002 #define SWP_NOMOVE 0x0002
#define SWP_NOZORDER 0x0004 #define SWP_NOZORDER 0x0004
#define SWP_NOREDRAW 0x0008 #define SWP_NOREDRAW 0x0008
#define SWP_NOACTIVATE 0x0010 #define SWP_NOACTIVATE 0x0010
#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */ #define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */
skipping to change at line 4167 skipping to change at line 4596
#ifndef NOCTLMGR #ifndef NOCTLMGR
/* /*
* WARNING: * WARNING:
* The following structures must NOT be DWORD padded because they are * The following structures must NOT be DWORD padded because they are
* followed by strings, etc that do not have to be DWORD aligned. * followed by strings, etc that do not have to be DWORD aligned.
*/ */
#include <pshpack2.h> #include <pshpack2.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* /*
* original NT 32 bit dialog template: * original NT 32 bit dialog template:
*/ */
typedef struct { typedef struct {
DWORD style; DWORD style;
DWORD dwExtendedStyle; DWORD dwExtendedStyle;
WORD cdit; WORD cdit;
short x; short x;
short y; short y;
short cx; short cx;
short cy; short cy;
} DLGTEMPLATE; } DLGTEMPLATE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef DLGTEMPLATE *LPDLGTEMPLATEA; typedef DLGTEMPLATE *LPDLGTEMPLATEA;
typedef DLGTEMPLATE *LPDLGTEMPLATEW; typedef DLGTEMPLATE *LPDLGTEMPLATEW;
#ifdef UNICODE #ifdef UNICODE
typedef LPDLGTEMPLATEW LPDLGTEMPLATE; typedef LPDLGTEMPLATEW LPDLGTEMPLATE;
#else #else
typedef LPDLGTEMPLATEA LPDLGTEMPLATE; typedef LPDLGTEMPLATEA LPDLGTEMPLATE;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA; typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA;
typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW; typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW;
#ifdef UNICODE #ifdef UNICODE
typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE; typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE;
#else #else
typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE; typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* 32 bit Dialog item template. * 32 bit Dialog item template.
*/ */
typedef struct { typedef struct {
DWORD style; DWORD style;
DWORD dwExtendedStyle; DWORD dwExtendedStyle;
short x; short x;
short y; short y;
short cx; short cx;
short cy; short cy;
skipping to change at line 4221 skipping to change at line 4673
typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE; typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE;
#endif // UNICODE #endif // UNICODE
typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA; typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW; typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
#ifdef UNICODE #ifdef UNICODE
typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE; typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE;
#else #else
typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE; typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <poppack.h> /* Resume normal packing */ #include <poppack.h> /* Resume normal packing */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
CreateDialogParamA( CreateDialogParamA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpTemplateName, _In_ LPCSTR lpTemplateName,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt DLGPROC lpDialogFunc, _In_opt_ DLGPROC lpDialogFunc,
__in LPARAM dwInitParam); _In_ LPARAM dwInitParam);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
CreateDialogParamW( CreateDialogParamW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpTemplateName, _In_ LPCWSTR lpTemplateName,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt DLGPROC lpDialogFunc, _In_opt_ DLGPROC lpDialogFunc,
__in LPARAM dwInitParam); _In_ LPARAM dwInitParam);
#ifdef UNICODE #ifdef UNICODE
#define CreateDialogParam CreateDialogParamW #define CreateDialogParam CreateDialogParamW
#else #else
#define CreateDialogParam CreateDialogParamA #define CreateDialogParam CreateDialogParamA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
CreateDialogIndirectParamA( CreateDialogIndirectParamA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCDLGTEMPLATEA lpTemplate, _In_ LPCDLGTEMPLATEA lpTemplate,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt DLGPROC lpDialogFunc, _In_opt_ DLGPROC lpDialogFunc,
__in LPARAM dwInitParam); _In_ LPARAM dwInitParam);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
CreateDialogIndirectParamW( CreateDialogIndirectParamW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCDLGTEMPLATEW lpTemplate, _In_ LPCDLGTEMPLATEW lpTemplate,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt DLGPROC lpDialogFunc, _In_opt_ DLGPROC lpDialogFunc,
__in LPARAM dwInitParam); _In_ LPARAM dwInitParam);
#ifdef UNICODE #ifdef UNICODE
#define CreateDialogIndirectParam CreateDialogIndirectParamW #define CreateDialogIndirectParam CreateDialogIndirectParamW
#else #else
#define CreateDialogIndirectParam CreateDialogIndirectParamA #define CreateDialogIndirectParam CreateDialogIndirectParamA
#endif // !UNICODE #endif // !UNICODE
#define CreateDialogA(hInstance, lpName, hWndParent, lpDialogFunc) \ #define CreateDialogA(hInstance, lpName, hWndParent, lpDialogFunc) \
CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L) CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L)
#define CreateDialogW(hInstance, lpName, hWndParent, lpDialogFunc) \ #define CreateDialogW(hInstance, lpName, hWndParent, lpDialogFunc) \
CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L) CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L)
skipping to change at line 4295 skipping to change at line 4753
#ifdef UNICODE #ifdef UNICODE
#define CreateDialogIndirect CreateDialogIndirectW #define CreateDialogIndirect CreateDialogIndirectW
#else #else
#define CreateDialogIndirect CreateDialogIndirectA #define CreateDialogIndirect CreateDialogIndirectA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
INT_PTR INT_PTR
WINAPI WINAPI
DialogBoxParamA( DialogBoxParamA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpTemplateName, _In_ LPCSTR lpTemplateName,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt DLGPROC lpDialogFunc, _In_opt_ DLGPROC lpDialogFunc,
__in LPARAM dwInitParam); _In_ LPARAM dwInitParam);
WINUSERAPI WINUSERAPI
INT_PTR INT_PTR
WINAPI WINAPI
DialogBoxParamW( DialogBoxParamW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpTemplateName, _In_ LPCWSTR lpTemplateName,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt DLGPROC lpDialogFunc, _In_opt_ DLGPROC lpDialogFunc,
__in LPARAM dwInitParam); _In_ LPARAM dwInitParam);
#ifdef UNICODE #ifdef UNICODE
#define DialogBoxParam DialogBoxParamW #define DialogBoxParam DialogBoxParamW
#else #else
#define DialogBoxParam DialogBoxParamA #define DialogBoxParam DialogBoxParamA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
INT_PTR INT_PTR
WINAPI WINAPI
DialogBoxIndirectParamA( DialogBoxIndirectParamA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCDLGTEMPLATEA hDialogTemplate, _In_ LPCDLGTEMPLATEA hDialogTemplate,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt DLGPROC lpDialogFunc, _In_opt_ DLGPROC lpDialogFunc,
__in LPARAM dwInitParam); _In_ LPARAM dwInitParam);
WINUSERAPI WINUSERAPI
INT_PTR INT_PTR
WINAPI WINAPI
DialogBoxIndirectParamW( DialogBoxIndirectParamW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCDLGTEMPLATEW hDialogTemplate, _In_ LPCDLGTEMPLATEW hDialogTemplate,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt DLGPROC lpDialogFunc, _In_opt_ DLGPROC lpDialogFunc,
__in LPARAM dwInitParam); _In_ LPARAM dwInitParam);
#ifdef UNICODE #ifdef UNICODE
#define DialogBoxIndirectParam DialogBoxIndirectParamW #define DialogBoxIndirectParam DialogBoxIndirectParamW
#else #else
#define DialogBoxIndirectParam DialogBoxIndirectParamA #define DialogBoxIndirectParam DialogBoxIndirectParamA
#endif // !UNICODE #endif // !UNICODE
#define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \ #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
#define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \ #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
skipping to change at line 4363 skipping to change at line 4821
#ifdef UNICODE #ifdef UNICODE
#define DialogBoxIndirect DialogBoxIndirectW #define DialogBoxIndirect DialogBoxIndirectW
#else #else
#define DialogBoxIndirect DialogBoxIndirectA #define DialogBoxIndirect DialogBoxIndirectA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EndDialog( EndDialog(
__in HWND hDlg, _In_ HWND hDlg,
__in INT_PTR nResult); _In_ INT_PTR nResult);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetDlgItem( GetDlgItem(
__in_opt HWND hDlg, _In_opt_ HWND hDlg,
__in int nIDDlgItem); _In_ int nIDDlgItem);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetDlgItemInt( SetDlgItemInt(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDDlgItem, _In_ int nIDDlgItem,
__in UINT uValue, _In_ UINT uValue,
__in BOOL bSigned); _In_ BOOL bSigned);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetDlgItemInt( GetDlgItemInt(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDDlgItem, _In_ int nIDDlgItem,
__out_opt BOOL *lpTranslated, _Out_opt_ BOOL *lpTranslated,
__in BOOL bSigned); _In_ BOOL bSigned);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetDlgItemTextA( SetDlgItemTextA(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDDlgItem, _In_ int nIDDlgItem,
__in LPCSTR lpString); _In_ LPCSTR lpString);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetDlgItemTextW( SetDlgItemTextW(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDDlgItem, _In_ int nIDDlgItem,
__in LPCWSTR lpString); _In_ LPCWSTR lpString);
#ifdef UNICODE #ifdef UNICODE
#define SetDlgItemText SetDlgItemTextW #define SetDlgItemText SetDlgItemTextW
#else #else
#define SetDlgItemText SetDlgItemTextA #define SetDlgItemText SetDlgItemTextA
#endif // !UNICODE #endif // !UNICODE
_Ret_range_(0, cchMax)
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetDlgItemTextA( GetDlgItemTextA(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDDlgItem, _In_ int nIDDlgItem,
__out_ecount(cchMax) LPSTR lpString, _Out_writes_(cchMax) LPSTR lpString,
__in int cchMax); _In_ int cchMax);
_Ret_range_(0, cchMax)
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetDlgItemTextW( GetDlgItemTextW(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDDlgItem, _In_ int nIDDlgItem,
__out_ecount(cchMax) LPWSTR lpString, _Out_writes_(cchMax) LPWSTR lpString,
__in int cchMax); _In_ int cchMax);
#ifdef UNICODE #ifdef UNICODE
#define GetDlgItemText GetDlgItemTextW #define GetDlgItemText GetDlgItemTextW
#else #else
#define GetDlgItemText GetDlgItemTextA #define GetDlgItemText GetDlgItemTextA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CheckDlgButton( CheckDlgButton(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDButton, _In_ int nIDButton,
__in UINT uCheck); _In_ UINT uCheck);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CheckRadioButton( CheckRadioButton(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDFirstButton, _In_ int nIDFirstButton,
__in int nIDLastButton, _In_ int nIDLastButton,
__in int nIDCheckButton); _In_ int nIDCheckButton);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
IsDlgButtonChecked( IsDlgButtonChecked(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDButton); _In_ int nIDButton);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
SendDlgItemMessageA( SendDlgItemMessageA(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDDlgItem, _In_ int nIDDlgItem,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
SendDlgItemMessageW( SendDlgItemMessageW(
__in HWND hDlg, _In_ HWND hDlg,
__in int nIDDlgItem, _In_ int nIDDlgItem,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define SendDlgItemMessage SendDlgItemMessageW #define SendDlgItemMessage SendDlgItemMessageW
#else #else
#define SendDlgItemMessage SendDlgItemMessageA #define SendDlgItemMessage SendDlgItemMessageA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetNextDlgGroupItem( GetNextDlgGroupItem(
__in HWND hDlg, _In_ HWND hDlg,
__in_opt HWND hCtl, _In_opt_ HWND hCtl,
__in BOOL bPrevious); _In_ BOOL bPrevious);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetNextDlgTabItem( GetNextDlgTabItem(
__in HWND hDlg, _In_ HWND hDlg,
__in_opt HWND hCtl, _In_opt_ HWND hCtl,
__in BOOL bPrevious); _In_ BOOL bPrevious);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetDlgCtrlID( GetDlgCtrlID(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
long long
WINAPI WINAPI
GetDialogBaseUnits(VOID); GetDialogBaseUnits(VOID);
WINUSERAPI WINUSERAPI
#ifndef _MAC #ifndef _MAC
LRESULT LRESULT
WINAPI WINAPI
#else #else
LRESULT LRESULT
CALLBACK CALLBACK
#endif #endif
DefDlgProcA( DefDlgProcA(
__in HWND hDlg, _In_ HWND hDlg,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
#ifndef _MAC #ifndef _MAC
LRESULT LRESULT
WINAPI WINAPI
#else #else
LRESULT LRESULT
CALLBACK CALLBACK
#endif #endif
DefDlgProcW( DefDlgProcW(
__in HWND hDlg, _In_ HWND hDlg,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define DefDlgProc DefDlgProcW #define DefDlgProc DefDlgProcW
#else #else
#define DefDlgProc DefDlgProcA #define DefDlgProc DefDlgProcA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Window extra byted needed for private dialog classes. * Window extra byted needed for private dialog classes.
*/ */
#ifndef _MAC #ifndef _MAC
#define DLGWINDOWEXTRA 30 #define DLGWINDOWEXTRA 30
#else #else
#define DLGWINDOWEXTRA 48 #define DLGWINDOWEXTRA 48
#endif #endif
#endif /* !NOCTLMGR */ #endif /* !NOCTLMGR */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef NOMSG #ifndef NOMSG
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CallMsgFilterA( CallMsgFilterA(
__in LPMSG lpMsg, _In_ LPMSG lpMsg,
__in int nCode); _In_ int nCode);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CallMsgFilterW( CallMsgFilterW(
__in LPMSG lpMsg, _In_ LPMSG lpMsg,
__in int nCode); _In_ int nCode);
#ifdef UNICODE #ifdef UNICODE
#define CallMsgFilter CallMsgFilterW #define CallMsgFilter CallMsgFilterW
#else #else
#define CallMsgFilter CallMsgFilterA #define CallMsgFilter CallMsgFilterA
#endif // !UNICODE #endif // !UNICODE
#endif /* !NOMSG */ #endif /* !NOMSG */
#ifndef NOCLIPBOARD #ifndef NOCLIPBOARD
/* /*
* Clipboard Manager Functions * Clipboard Manager Functions
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
OpenClipboard( OpenClipboard(
__in_opt HWND hWndNewOwner); _In_opt_ HWND hWndNewOwner);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CloseClipboard( CloseClipboard(
VOID); VOID);
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
WINUSERAPI WINUSERAPI
skipping to change at line 4611 skipping to change at line 5077
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetClipboardOwner( GetClipboardOwner(
VOID); VOID);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
SetClipboardViewer( SetClipboardViewer(
__in HWND hWndNewViewer); _In_ HWND hWndNewViewer);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetClipboardViewer( GetClipboardViewer(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ChangeClipboardChain( ChangeClipboardChain(
__in HWND hWndRemove, _In_ HWND hWndRemove,
__in HWND hWndNewNext); _In_ HWND hWndNewNext);
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
SetClipboardData( SetClipboardData(
__in UINT uFormat, _In_ UINT uFormat,
__in_opt HANDLE hMem); _In_opt_ HANDLE hMem);
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
GetClipboardData( GetClipboardData(
__in UINT uFormat); _In_ UINT uFormat);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
RegisterClipboardFormatA( RegisterClipboardFormatA(
__in LPCSTR lpszFormat); _In_ LPCSTR lpszFormat);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
RegisterClipboardFormatW( RegisterClipboardFormatW(
__in LPCWSTR lpszFormat); _In_ LPCWSTR lpszFormat);
#ifdef UNICODE #ifdef UNICODE
#define RegisterClipboardFormat RegisterClipboardFormatW #define RegisterClipboardFormat RegisterClipboardFormatW
#else #else
#define RegisterClipboardFormat RegisterClipboardFormatA #define RegisterClipboardFormat RegisterClipboardFormatA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
CountClipboardFormats( CountClipboardFormats(
VOID); VOID);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
EnumClipboardFormats( EnumClipboardFormats(
__in UINT format); _In_ UINT format);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetClipboardFormatNameA( GetClipboardFormatNameA(
__in UINT format, _In_ UINT format,
__out_ecount(cchMaxCount) LPSTR lpszFormatName, _Out_writes_(cchMaxCount) LPSTR lpszFormatName,
__in int cchMaxCount); _In_ int cchMaxCount);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetClipboardFormatNameW( GetClipboardFormatNameW(
__in UINT format, _In_ UINT format,
__out_ecount(cchMaxCount) LPWSTR lpszFormatName, _Out_writes_(cchMaxCount) LPWSTR lpszFormatName,
__in int cchMaxCount); _In_ int cchMaxCount);
#ifdef UNICODE #ifdef UNICODE
#define GetClipboardFormatName GetClipboardFormatNameW #define GetClipboardFormatName GetClipboardFormatNameW
#else #else
#define GetClipboardFormatName GetClipboardFormatNameA #define GetClipboardFormatName GetClipboardFormatNameA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EmptyClipboard( EmptyClipboard(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsClipboardFormatAvailable( IsClipboardFormatAvailable(
__in UINT format); _In_ UINT format);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetPriorityClipboardFormat( GetPriorityClipboardFormat(
__in_ecount(cFormats) UINT *paFormatPriorityList, _In_reads_(cFormats) UINT *paFormatPriorityList,
__in int cFormats); _In_ int cFormats);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetOpenClipboardWindow( GetOpenClipboardWindow(
VOID); VOID);
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AddClipboardFormatListener( AddClipboardFormatListener(
__in HWND hwnd); _In_ HWND hwnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
RemoveClipboardFormatListener( RemoveClipboardFormatListener(
__in HWND hwnd); _In_ HWND hwnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetUpdatedClipboardFormats( GetUpdatedClipboardFormats(
__out_ecount(cFormats) __notnull PUINT lpuiFormats, _Out_writes_(cFormats) PUINT lpuiFormats,
__in UINT cFormats, _In_ UINT cFormats,
__out __notnull PUINT pcFormatsOut); _Out_ PUINT pcFormatsOut);
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
#endif /* !NOCLIPBOARD */ #endif /* !NOCLIPBOARD */
/* /*
* Character Translation Routines * Character Translation Routines
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CharToOemA( CharToOemA(
skipping to change at line 4743 skipping to change at line 5210
#endif /* !NOCLIPBOARD */ #endif /* !NOCLIPBOARD */
/* /*
* Character Translation Routines * Character Translation Routines
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CharToOemA( CharToOemA(
__in_xcount(strlen(pSrc) + 1) LPCSTR pSrc, _In_ LPCSTR pSrc,
__out_xcount(strlen(pSrc) + 1) LPSTR pDst); _Out_writes_(_Inexpressible_(strlen(pSrc) + 1)) LPSTR pDst);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CharToOemW( CharToOemW(
__in_xcount(strlen(pSrc) + 1) LPCWSTR pSrc, _In_ LPCWSTR pSrc,
__out_xcount(strlen(pSrc) + 1) LPSTR pDst); _Out_writes_(_Inexpressible_(strlen(pSrc) + 1)) LPSTR pDst);
#ifdef UNICODE #ifdef UNICODE
#define CharToOem CharToOemW #define CharToOem CharToOemW
#else #else
#define CharToOem CharToOemA #define CharToOem CharToOemA
#endif // !UNICODE #endif // !UNICODE
__drv_preferredFunction("OemToCharBuff","Does not validate buffer size") __drv_preferredFunction("OemToCharBuff","Does not validate buffer size")
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
OemToCharA( OemToCharA(
__in_xcount(strlen(pSrc) + 1) LPCSTR pSrc, _In_ LPCSTR pSrc,
__out_xcount(strlen(pSrc) + 1) LPSTR pDst); _Out_writes_(_Inexpressible_(strlen(pSrc) + 1)) LPSTR pDst);
__drv_preferredFunction("OemToCharBuff","Does not validate buffer size") __drv_preferredFunction("OemToCharBuff","Does not validate buffer size")
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
OemToCharW( OemToCharW(
__in_xcount(strlen(pSrc) + 1) LPCSTR pSrc, _In_ LPCSTR pSrc,
__out_xcount(strlen(pSrc) + 1) LPWSTR pDst); _Out_writes_(_Inexpressible_(strlen(pSrc) + 1)) LPWSTR pDst);
#ifdef UNICODE #ifdef UNICODE
#define OemToChar OemToCharW #define OemToChar OemToCharW
#else #else
#define OemToChar OemToCharA #define OemToChar OemToCharA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CharToOemBuffA( CharToOemBuffA(
__in LPCSTR lpszSrc, _In_ LPCSTR lpszSrc,
__out_ecount(cchDstLength) LPSTR lpszDst, _Out_writes_(cchDstLength) LPSTR lpszDst,
__in DWORD cchDstLength); _In_ DWORD cchDstLength);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CharToOemBuffW( CharToOemBuffW(
__in LPCWSTR lpszSrc, _In_ LPCWSTR lpszSrc,
__out_ecount(cchDstLength) LPSTR lpszDst, _Out_writes_(cchDstLength) LPSTR lpszDst,
__in DWORD cchDstLength); _In_ DWORD cchDstLength);
#ifdef UNICODE #ifdef UNICODE
#define CharToOemBuff CharToOemBuffW #define CharToOemBuff CharToOemBuffW
#else #else
#define CharToOemBuff CharToOemBuffA #define CharToOemBuff CharToOemBuffA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
OemToCharBuffA( OemToCharBuffA(
__in LPCSTR lpszSrc, _In_ LPCSTR lpszSrc,
__out_ecount(cchDstLength) LPSTR lpszDst, _Out_writes_(cchDstLength) LPSTR lpszDst,
__in DWORD cchDstLength); _In_ DWORD cchDstLength);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
OemToCharBuffW( OemToCharBuffW(
__in LPCSTR lpszSrc, _In_ LPCSTR lpszSrc,
__out_ecount(cchDstLength) LPWSTR lpszDst, _Out_writes_(cchDstLength) LPWSTR lpszDst,
__in DWORD cchDstLength); _In_ DWORD cchDstLength);
#ifdef UNICODE #ifdef UNICODE
#define OemToCharBuff OemToCharBuffW #define OemToCharBuff OemToCharBuffW
#else #else
#define OemToCharBuff OemToCharBuffA #define OemToCharBuff OemToCharBuffA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
LPSTR LPSTR
WINAPI WINAPI
CharUpperA( CharUpperA(
__inout LPSTR lpsz); _Inout_ LPSTR lpsz);
WINUSERAPI WINUSERAPI
LPWSTR LPWSTR
WINAPI WINAPI
CharUpperW( CharUpperW(
__inout LPWSTR lpsz); _Inout_ LPWSTR lpsz);
#ifdef UNICODE #ifdef UNICODE
#define CharUpper CharUpperW #define CharUpper CharUpperW
#else #else
#define CharUpper CharUpperA #define CharUpper CharUpperA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
CharUpperBuffA( CharUpperBuffA(
__inout_ecount(cchLength) LPSTR lpsz, _Inout_updates_(cchLength) LPSTR lpsz,
__in DWORD cchLength); _In_ DWORD cchLength);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
CharUpperBuffW( CharUpperBuffW(
__inout_ecount(cchLength) LPWSTR lpsz, _Inout_updates_(cchLength) LPWSTR lpsz,
__in DWORD cchLength); _In_ DWORD cchLength);
#ifdef UNICODE #ifdef UNICODE
#define CharUpperBuff CharUpperBuffW #define CharUpperBuff CharUpperBuffW
#else #else
#define CharUpperBuff CharUpperBuffA #define CharUpperBuff CharUpperBuffA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
LPSTR LPSTR
WINAPI WINAPI
CharLowerA( CharLowerA(
__inout LPSTR lpsz); _Inout_ LPSTR lpsz);
WINUSERAPI WINUSERAPI
LPWSTR LPWSTR
WINAPI WINAPI
CharLowerW( CharLowerW(
__inout LPWSTR lpsz); _Inout_ LPWSTR lpsz);
#ifdef UNICODE #ifdef UNICODE
#define CharLower CharLowerW #define CharLower CharLowerW
#else #else
#define CharLower CharLowerA #define CharLower CharLowerA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
CharLowerBuffA( CharLowerBuffA(
__inout_ecount(cchLength) LPSTR lpsz, _Inout_updates_(cchLength) LPSTR lpsz,
__in DWORD cchLength); _In_ DWORD cchLength);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
CharLowerBuffW( CharLowerBuffW(
__inout_ecount(cchLength) LPWSTR lpsz, _Inout_updates_(cchLength) LPWSTR lpsz,
__in DWORD cchLength); _In_ DWORD cchLength);
#ifdef UNICODE #ifdef UNICODE
#define CharLowerBuff CharLowerBuffW #define CharLowerBuff CharLowerBuffW
#else #else
#define CharLowerBuff CharLowerBuffA #define CharLowerBuff CharLowerBuffA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
LPSTR LPSTR
WINAPI WINAPI
CharNextA( CharNextA(
__in LPCSTR lpsz); _In_ LPCSTR lpsz);
WINUSERAPI WINUSERAPI
LPWSTR LPWSTR
WINAPI WINAPI
CharNextW( CharNextW(
__in LPCWSTR lpsz); _In_ LPCWSTR lpsz);
#ifdef UNICODE #ifdef UNICODE
#define CharNext CharNextW #define CharNext CharNextW
#else #else
#define CharNext CharNextA #define CharNext CharNextA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
LPSTR LPSTR
WINAPI WINAPI
CharPrevA( CharPrevA(
__in LPCSTR lpszStart, _In_ LPCSTR lpszStart,
__in LPCSTR lpszCurrent); _In_ LPCSTR lpszCurrent);
WINUSERAPI WINUSERAPI
LPWSTR LPWSTR
WINAPI WINAPI
CharPrevW( CharPrevW(
__in LPCWSTR lpszStart, _In_ LPCWSTR lpszStart,
__in LPCWSTR lpszCurrent); _In_ LPCWSTR lpszCurrent);
#ifdef UNICODE #ifdef UNICODE
#define CharPrev CharPrevW #define CharPrev CharPrevW
#else #else
#define CharPrev CharPrevA #define CharPrev CharPrevA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
LPSTR LPSTR
WINAPI WINAPI
CharNextExA( CharNextExA(
__in WORD CodePage, _In_ WORD CodePage,
__in LPCSTR lpCurrentChar, _In_ LPCSTR lpCurrentChar,
__in DWORD dwFlags); _In_ DWORD dwFlags);
WINUSERAPI WINUSERAPI
LPSTR LPSTR
WINAPI WINAPI
CharPrevExA( CharPrevExA(
__in WORD CodePage, _In_ WORD CodePage,
__in LPCSTR lpStart, _In_ LPCSTR lpStart,
__in LPCSTR lpCurrentChar, _In_ LPCSTR lpCurrentChar,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Compatibility defines for character translation routines * Compatibility defines for character translation routines
*/ */
#define AnsiToOem CharToOemA #define AnsiToOem CharToOemA
#define OemToAnsi OemToCharA #define OemToAnsi OemToCharA
#define AnsiToOemBuff CharToOemBuffA #define AnsiToOemBuff CharToOemBuffA
#define OemToAnsiBuff OemToCharBuffA #define OemToAnsiBuff OemToCharBuffA
#define AnsiUpper CharUpperA #define AnsiUpper CharUpperA
#define AnsiUpperBuff CharUpperBuffA #define AnsiUpperBuff CharUpperBuffA
#define AnsiLower CharLowerA #define AnsiLower CharLowerA
#define AnsiLowerBuff CharLowerBuffA #define AnsiLowerBuff CharLowerBuffA
#define AnsiNext CharNextA #define AnsiNext CharNextA
#define AnsiPrev CharPrevA #define AnsiPrev CharPrevA
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef NOLANGUAGE #ifndef NOLANGUAGE
/* /*
* Language dependent Routines * Language dependent Routines
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsCharAlphaA( IsCharAlphaA(
__in CHAR ch); _In_ CHAR ch);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsCharAlphaW( IsCharAlphaW(
__in WCHAR ch); _In_ WCHAR ch);
#ifdef UNICODE #ifdef UNICODE
#define IsCharAlpha IsCharAlphaW #define IsCharAlpha IsCharAlphaW
#else #else
#define IsCharAlpha IsCharAlphaA #define IsCharAlpha IsCharAlphaA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsCharAlphaNumericA( IsCharAlphaNumericA(
__in CHAR ch); _In_ CHAR ch);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsCharAlphaNumericW( IsCharAlphaNumericW(
__in WCHAR ch); _In_ WCHAR ch);
#ifdef UNICODE #ifdef UNICODE
#define IsCharAlphaNumeric IsCharAlphaNumericW #define IsCharAlphaNumeric IsCharAlphaNumericW
#else #else
#define IsCharAlphaNumeric IsCharAlphaNumericA #define IsCharAlphaNumeric IsCharAlphaNumericA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsCharUpperA( IsCharUpperA(
__in CHAR ch); _In_ CHAR ch);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsCharUpperW( IsCharUpperW(
__in WCHAR ch); _In_ WCHAR ch);
#ifdef UNICODE #ifdef UNICODE
#define IsCharUpper IsCharUpperW #define IsCharUpper IsCharUpperW
#else #else
#define IsCharUpper IsCharUpperA #define IsCharUpper IsCharUpperA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsCharLowerA( IsCharLowerA(
__in CHAR ch); _In_ CHAR ch);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsCharLowerW( IsCharLowerW(
__in WCHAR ch); _In_ WCHAR ch);
#ifdef UNICODE #ifdef UNICODE
#define IsCharLower IsCharLowerW #define IsCharLower IsCharLowerW
#else #else
#define IsCharLower IsCharLowerA #define IsCharLower IsCharLowerA
#endif // !UNICODE #endif // !UNICODE
#endif /* !NOLANGUAGE */ #endif /* !NOLANGUAGE */
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
SetFocus( SetFocus(
__in_opt HWND hWnd); _In_opt_ HWND hWnd);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetActiveWindow( GetActiveWindow(
VOID); VOID);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
skipping to change at line 5051 skipping to change at line 5524
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetKBCodePage( GetKBCodePage(
VOID); VOID);
WINUSERAPI WINUSERAPI
SHORT SHORT
WINAPI WINAPI
GetKeyState( GetKeyState(
__in int nVirtKey); _In_ int nVirtKey);
WINUSERAPI WINUSERAPI
SHORT SHORT
WINAPI WINAPI
GetAsyncKeyState( GetAsyncKeyState(
__in int vKey); _In_ int vKey);
WINUSERAPI WINUSERAPI
_Check_return_
BOOL BOOL
WINAPI WINAPI
GetKeyboardState( GetKeyboardState(
__out_ecount(256) PBYTE lpKeyState); _Out_writes_(256) PBYTE lpKeyState);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetKeyboardState( SetKeyboardState(
__in_ecount(256) LPBYTE lpKeyState); _In_reads_(256) LPBYTE lpKeyState);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetKeyNameTextA( GetKeyNameTextA(
__in LONG lParam, _In_ LONG lParam,
__out_ecount(cchSize) LPSTR lpString, _Out_writes_(cchSize) LPSTR lpString,
__in int cchSize); _In_ int cchSize);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetKeyNameTextW( GetKeyNameTextW(
__in LONG lParam, _In_ LONG lParam,
__out_ecount(cchSize) LPWSTR lpString, _Out_writes_(cchSize) LPWSTR lpString,
__in int cchSize); _In_ int cchSize);
#ifdef UNICODE #ifdef UNICODE
#define GetKeyNameText GetKeyNameTextW #define GetKeyNameText GetKeyNameTextW
#else #else
#define GetKeyNameText GetKeyNameTextA #define GetKeyNameText GetKeyNameTextA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetKeyboardType( GetKeyboardType(
__in int nTypeFlag); _In_ int nTypeFlag);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
ToAscii( ToAscii(
__in UINT uVirtKey, _In_ UINT uVirtKey,
__in UINT uScanCode, _In_ UINT uScanCode,
__in_ecount_opt(256) CONST BYTE *lpKeyState, _In_reads_opt_(256) CONST BYTE *lpKeyState,
__out LPWORD lpChar, _Out_ LPWORD lpChar,
__in UINT uFlags); _In_ UINT uFlags);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
ToAsciiEx( ToAsciiEx(
__in UINT uVirtKey, _In_ UINT uVirtKey,
__in UINT uScanCode, _In_ UINT uScanCode,
__in_ecount_opt(256) CONST BYTE *lpKeyState, _In_reads_opt_(256) CONST BYTE *lpKeyState,
__out LPWORD lpChar, _Out_ LPWORD lpChar,
__in UINT uFlags, _In_ UINT uFlags,
__in_opt HKL dwhkl); _In_opt_ HKL dwhkl);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
ToUnicode( ToUnicode(
__in UINT wVirtKey, _In_ UINT wVirtKey,
__in UINT wScanCode, _In_ UINT wScanCode,
__in_bcount_opt(256) CONST BYTE *lpKeyState, _In_reads_bytes_opt_(256) CONST BYTE *lpKeyState,
__out_ecount(cchBuff) LPWSTR pwszBuff, _Out_writes_(cchBuff) LPWSTR pwszBuff,
__in int cchBuff, _In_ int cchBuff,
__in UINT wFlags); _In_ UINT wFlags);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
OemKeyScan( OemKeyScan(
__in WORD wOemChar); _In_ WORD wOemChar);
WINUSERAPI WINUSERAPI
SHORT SHORT
WINAPI WINAPI
VkKeyScanA( VkKeyScanA(
__in CHAR ch); _In_ CHAR ch);
WINUSERAPI WINUSERAPI
SHORT SHORT
WINAPI WINAPI
VkKeyScanW( VkKeyScanW(
__in WCHAR ch); _In_ WCHAR ch);
#ifdef UNICODE #ifdef UNICODE
#define VkKeyScan VkKeyScanW #define VkKeyScan VkKeyScanW
#else #else
#define VkKeyScan VkKeyScanA #define VkKeyScan VkKeyScanA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
SHORT SHORT
WINAPI WINAPI
VkKeyScanExA( VkKeyScanExA(
__in CHAR ch, _In_ CHAR ch,
__in HKL dwhkl); _In_ HKL dwhkl);
WINUSERAPI WINUSERAPI
SHORT SHORT
WINAPI WINAPI
VkKeyScanExW( VkKeyScanExW(
__in WCHAR ch, _In_ WCHAR ch,
__in HKL dwhkl); _In_ HKL dwhkl);
#ifdef UNICODE #ifdef UNICODE
#define VkKeyScanEx VkKeyScanExW #define VkKeyScanEx VkKeyScanExW
#else #else
#define VkKeyScanEx VkKeyScanExA #define VkKeyScanEx VkKeyScanExA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#define KEYEVENTF_EXTENDEDKEY 0x0001 #define KEYEVENTF_EXTENDEDKEY 0x0001
#define KEYEVENTF_KEYUP 0x0002 #define KEYEVENTF_KEYUP 0x0002
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define KEYEVENTF_UNICODE 0x0004 #define KEYEVENTF_UNICODE 0x0004
#define KEYEVENTF_SCANCODE 0x0008 #define KEYEVENTF_SCANCODE 0x0008
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
WINUSERAPI WINUSERAPI
VOID VOID
WINAPI WINAPI
keybd_event( keybd_event(
__in BYTE bVk, _In_ BYTE bVk,
__in BYTE bScan, _In_ BYTE bScan,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in ULONG_PTR dwExtraInfo); _In_ ULONG_PTR dwExtraInfo);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define MOUSEEVENTF_MOVE 0x0001 /* mouse move */ #define MOUSEEVENTF_MOVE 0x0001 /* mouse move */
#define MOUSEEVENTF_LEFTDOWN 0x0002 /* left button down */ #define MOUSEEVENTF_LEFTDOWN 0x0002 /* left button down */
#define MOUSEEVENTF_LEFTUP 0x0004 /* left button up */ #define MOUSEEVENTF_LEFTUP 0x0004 /* left button up */
#define MOUSEEVENTF_RIGHTDOWN 0x0008 /* right button down */ #define MOUSEEVENTF_RIGHTDOWN 0x0008 /* right button down */
#define MOUSEEVENTF_RIGHTUP 0x0010 /* right button up */ #define MOUSEEVENTF_RIGHTUP 0x0010 /* right button up */
#define MOUSEEVENTF_MIDDLEDOWN 0x0020 /* middle button down */ #define MOUSEEVENTF_MIDDLEDOWN 0x0020 /* middle button down */
#define MOUSEEVENTF_MIDDLEUP 0x0040 /* middle button up */ #define MOUSEEVENTF_MIDDLEUP 0x0040 /* middle button up */
#define MOUSEEVENTF_XDOWN 0x0080 /* x button down */ #define MOUSEEVENTF_XDOWN 0x0080 /* x button down */
#define MOUSEEVENTF_XUP 0x0100 /* x button down */ #define MOUSEEVENTF_XUP 0x0100 /* x button down */
#define MOUSEEVENTF_WHEEL 0x0800 /* wheel button rolled */ #define MOUSEEVENTF_WHEEL 0x0800 /* wheel button rolled */
#if (_WIN32_WINNT >= 0x0600) #if (_WIN32_WINNT >= 0x0600)
#define MOUSEEVENTF_HWHEEL 0x01000 /* hwheel button rolled */ #define MOUSEEVENTF_HWHEEL 0x01000 /* hwheel button rolled */
#endif #endif
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
#define MOUSEEVENTF_MOVE_NOCOALESCE 0x2000 /* do not coalesce mouse moves */ #define MOUSEEVENTF_MOVE_NOCOALESCE 0x2000 /* do not coalesce mouse moves * /
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
#define MOUSEEVENTF_VIRTUALDESK 0x4000 /* map to entire virtual desktop */ #define MOUSEEVENTF_VIRTUALDESK 0x4000 /* map to entire virtual desktop
#define MOUSEEVENTF_ABSOLUTE 0x8000 /* absolute move */ */
#define MOUSEEVENTF_ABSOLUTE 0x8000 /* absolute move */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
VOID VOID
WINAPI WINAPI
mouse_event( mouse_event(
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in DWORD dx, _In_ DWORD dx,
__in DWORD dy, _In_ DWORD dy,
__in DWORD dwData, _In_ DWORD dwData,
__in ULONG_PTR dwExtraInfo); _In_ ULONG_PTR dwExtraInfo);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if (_WIN32_WINNT > 0x0400) #if (_WIN32_WINNT > 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMOUSEINPUT { typedef struct tagMOUSEINPUT {
LONG dx; LONG dx;
LONG dy; LONG dy;
DWORD mouseData; DWORD mouseData;
DWORD dwFlags; DWORD dwFlags;
DWORD time; DWORD time;
ULONG_PTR dwExtraInfo; ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEINPUT, FAR* LPMOUSEINPUT; } MOUSEINPUT, *PMOUSEINPUT, FAR* LPMOUSEINPUT;
typedef struct tagKEYBDINPUT { typedef struct tagKEYBDINPUT {
skipping to change at line 5261 skipping to change at line 5747
MOUSEINPUT mi; MOUSEINPUT mi;
KEYBDINPUT ki; KEYBDINPUT ki;
HARDWAREINPUT hi; HARDWAREINPUT hi;
}; };
} INPUT, *PINPUT, FAR* LPINPUT; } INPUT, *PINPUT, FAR* LPINPUT;
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
SendInput( SendInput(
__in UINT cInputs, // number of input in the array _In_ UINT cInputs, // number of input in the array
__in_ecount(cInputs) LPINPUT pInputs, // array of inputs _In_reads_(cInputs) LPINPUT pInputs, // array of inputs
__in int cbSize); // sizeof(INPUT) _In_ int cbSize); // sizeof(INPUT)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // (_WIN32_WINNT > 0x0400) #endif // (_WIN32_WINNT > 0x0400)
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Touch Input defines and functions * Touch Input defines and functions
*/ */
/* /*
* Touch input handle * Touch input handle
*/ */
DECLARE_HANDLE(HTOUCHINPUT); DECLARE_HANDLE(HTOUCHINPUT);
typedef struct tagTOUCHINPUT { typedef struct tagTOUCHINPUT {
skipping to change at line 5292 skipping to change at line 5784
DWORD dwID; DWORD dwID;
DWORD dwFlags; DWORD dwFlags;
DWORD dwMask; DWORD dwMask;
DWORD dwTime; DWORD dwTime;
ULONG_PTR dwExtraInfo; ULONG_PTR dwExtraInfo;
DWORD cxContact; DWORD cxContact;
DWORD cyContact; DWORD cyContact;
} TOUCHINPUT, *PTOUCHINPUT; } TOUCHINPUT, *PTOUCHINPUT;
typedef TOUCHINPUT const * PCTOUCHINPUT; typedef TOUCHINPUT const * PCTOUCHINPUT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Conversion of touch input coordinates to pixels * Conversion of touch input coordinates to pixels
*/ */
#define TOUCH_COORD_TO_PIXEL(l) ((l) / 100) #define TOUCH_COORD_TO_PIXEL(l) ((l) / 100)
/* /*
* Touch input flag values (TOUCHINPUT.dwFlags) * Touch input flag values (TOUCHINPUT.dwFlags)
*/ */
#define TOUCHEVENTF_MOVE 0x0001 #define TOUCHEVENTF_MOVE 0x0001
#define TOUCHEVENTF_DOWN 0x0002 #define TOUCHEVENTF_DOWN 0x0002
skipping to change at line 5316 skipping to change at line 5811
#define TOUCHEVENTF_PEN 0x0040 #define TOUCHEVENTF_PEN 0x0040
#define TOUCHEVENTF_PALM 0x0080 #define TOUCHEVENTF_PALM 0x0080
/* /*
* Touch input mask values (TOUCHINPUT.dwMask) * Touch input mask values (TOUCHINPUT.dwMask)
*/ */
#define TOUCHINPUTMASKF_TIMEFROMSYSTEM 0x0001 // the dwTime field contains a s ystem generated value #define TOUCHINPUTMASKF_TIMEFROMSYSTEM 0x0001 // the dwTime field contains a s ystem generated value
#define TOUCHINPUTMASKF_EXTRAINFO 0x0002 // the dwExtraInfo field is vali d #define TOUCHINPUTMASKF_EXTRAINFO 0x0002 // the dwExtraInfo field is vali d
#define TOUCHINPUTMASKF_CONTACTAREA 0x0004 // the cxContact and cyContact f ields are valid #define TOUCHINPUTMASKF_CONTACTAREA 0x0004 // the cxContact and cyContact f ields are valid
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetTouchInputInfo( GetTouchInputInfo(
__in HTOUCHINPUT hTouchInput, // input event handle; from touc _In_ HTOUCHINPUT hTouchInput, // input event handle; from touc
h message lParam h message lParam
__in UINT cInputs, // number of elements in the arr _In_ UINT cInputs, // number of elements in the arr
ay ay
__out_ecount(cInputs) PTOUCHINPUT pInputs, // array of touch inputs _Out_writes_(cInputs) PTOUCHINPUT pInputs, // array of touch inputs
__in int cbSize); // sizeof(TOUCHINPUT) _In_ int cbSize); // sizeof(TOUCHINPUT)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CloseTouchInputHandle( CloseTouchInputHandle(
__in HTOUCHINPUT hTouchInput); // input event handle; from _In_ HTOUCHINPUT hTouchInput); // input event handle; from
touch message lParam touch message lParam
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* RegisterTouchWindow flag values * RegisterTouchWindow flag values
*/ */
#define TWF_FINETOUCH (0x00000001) #define TWF_FINETOUCH (0x00000001)
#define TWF_WANTPALM (0x00000002) #define TWF_WANTPALM (0x00000002)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
RegisterTouchWindow( RegisterTouchWindow(
__in HWND hwnd, _In_ HWND hwnd,
__in ULONG ulFlags); _In_ ULONG ulFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnregisterTouchWindow( UnregisterTouchWindow(
__in HWND hwnd); _In_ HWND hwnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsTouchWindow( IsTouchWindow(
__in HWND hwnd, _In_ HWND hwnd,
__out_opt PULONG pulFlags); _Out_opt_ PULONG pulFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0602)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
enum tagPOINTER_INPUT_TYPE {
PT_POINTER = 0x00000001, // Generic pointer
PT_TOUCH = 0x00000002, // Touch
PT_PEN = 0x00000003, // Pen
PT_MOUSE = 0x00000004, // Mouse
#if(WINVER >= 0x0603)
PT_TOUCHPAD = 0x00000005, // Touchpad
#endif /* WINVER >= 0x0603 */
};
typedef DWORD POINTER_INPUT_TYPE;
typedef UINT32 POINTER_FLAGS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define POINTER_FLAG_NONE 0x00000000 // Default
#define POINTER_FLAG_NEW 0x00000001 // New pointer
#define POINTER_FLAG_INRANGE 0x00000002 // Pointer has not departed
#define POINTER_FLAG_INCONTACT 0x00000004 // Pointer is in contact
#define POINTER_FLAG_FIRSTBUTTON 0x00000010 // Primary action
#define POINTER_FLAG_SECONDBUTTON 0x00000020 // Secondary action
#define POINTER_FLAG_THIRDBUTTON 0x00000040 // Third button
#define POINTER_FLAG_FOURTHBUTTON 0x00000080 // Fourth button
#define POINTER_FLAG_FIFTHBUTTON 0x00000100 // Fifth button
#define POINTER_FLAG_PRIMARY 0x00002000 // Pointer is primary
#define POINTER_FLAG_CONFIDENCE 0x00004000 // Pointer is considered unli
kely to be accidental
#define POINTER_FLAG_CANCELED 0x00008000 // Pointer is departing in an
abnormal manner
#define POINTER_FLAG_DOWN 0x00010000 // Pointer transitioned to do
wn state (made contact)
#define POINTER_FLAG_UPDATE 0x00020000 // Pointer update
#define POINTER_FLAG_UP 0x00040000 // Pointer transitioned from
down state (broke contact)
#define POINTER_FLAG_WHEEL 0x00080000 // Vertical wheel
#define POINTER_FLAG_HWHEEL 0x00100000 // Horizontal wheel
#define POINTER_FLAG_CAPTURECHANGED 0x00200000 // Lost capture
#define POINTER_FLAG_HASTRANSFORM 0x00400000 // Input has a transform asso
ciated with it
/*
* Pointer info key states defintions.
*/
#define POINTER_MOD_SHIFT (0x0004) // Shift key is held down.
#define POINTER_MOD_CTRL (0x0008) // Ctrl key is held down.
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef enum tagPOINTER_BUTTON_CHANGE_TYPE {
POINTER_CHANGE_NONE,
POINTER_CHANGE_FIRSTBUTTON_DOWN,
POINTER_CHANGE_FIRSTBUTTON_UP,
POINTER_CHANGE_SECONDBUTTON_DOWN,
POINTER_CHANGE_SECONDBUTTON_UP,
POINTER_CHANGE_THIRDBUTTON_DOWN,
POINTER_CHANGE_THIRDBUTTON_UP,
POINTER_CHANGE_FOURTHBUTTON_DOWN,
POINTER_CHANGE_FOURTHBUTTON_UP,
POINTER_CHANGE_FIFTHBUTTON_DOWN,
POINTER_CHANGE_FIFTHBUTTON_UP,
} POINTER_BUTTON_CHANGE_TYPE;
typedef struct tagPOINTER_INFO {
POINTER_INPUT_TYPE pointerType;
UINT32 pointerId;
UINT32 frameId;
POINTER_FLAGS pointerFlags;
HANDLE sourceDevice;
HWND hwndTarget;
POINT ptPixelLocation;
POINT ptHimetricLocation;
POINT ptPixelLocationRaw;
POINT ptHimetricLocationRaw;
DWORD dwTime;
UINT32 historyCount;
INT32 InputData;
DWORD dwKeyStates;
UINT64 PerformanceCount;
POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
} POINTER_INFO;
typedef UINT32 TOUCH_FLAGS;
#define TOUCH_FLAG_NONE 0x00000000 // Default
typedef UINT32 TOUCH_MASK;
#define TOUCH_MASK_NONE 0x00000000 // Default - none of the opti
onal fields are valid
#define TOUCH_MASK_CONTACTAREA 0x00000001 // The rcContact field is val
id
#define TOUCH_MASK_ORIENTATION 0x00000002 // The orientation field is v
alid
#define TOUCH_MASK_PRESSURE 0x00000004 // The pressure field is vali
d
typedef struct tagPOINTER_TOUCH_INFO {
POINTER_INFO pointerInfo;
TOUCH_FLAGS touchFlags;
TOUCH_MASK touchMask;
RECT rcContact;
RECT rcContactRaw;
UINT32 orientation;
UINT32 pressure;
} POINTER_TOUCH_INFO;
typedef UINT32 PEN_FLAGS;
#define PEN_FLAG_NONE 0x00000000 // Default
#define PEN_FLAG_BARREL 0x00000001 // The barrel button is press
ed
#define PEN_FLAG_INVERTED 0x00000002 // The pen is inverted
#define PEN_FLAG_ERASER 0x00000004 // The eraser button is press
ed
typedef UINT32 PEN_MASK;
#define PEN_MASK_NONE 0x00000000 // Default - none of the opti
onal fields are valid
#define PEN_MASK_PRESSURE 0x00000001 // The pressure field is vali
d
#define PEN_MASK_ROTATION 0x00000002 // The rotation field is vali
d
#define PEN_MASK_TILT_X 0x00000004 // The tiltX field is valid
#define PEN_MASK_TILT_Y 0x00000008 // The tiltY field is valid
typedef struct tagPOINTER_PEN_INFO {
POINTER_INFO pointerInfo;
PEN_FLAGS penFlags;
PEN_MASK penMask;
UINT32 pressure;
UINT32 rotation;
INT32 tiltX;
INT32 tiltY;
} POINTER_PEN_INFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/*
* Flags that appear in pointer input message parameters
*/
#define POINTER_MESSAGE_FLAG_NEW 0x00000001 // New pointer
#define POINTER_MESSAGE_FLAG_INRANGE 0x00000002 // Pointer has not de
parted
#define POINTER_MESSAGE_FLAG_INCONTACT 0x00000004 // Pointer is in cont
act
#define POINTER_MESSAGE_FLAG_FIRSTBUTTON 0x00000010 // Primary action
#define POINTER_MESSAGE_FLAG_SECONDBUTTON 0x00000020 // Secondary action
#define POINTER_MESSAGE_FLAG_THIRDBUTTON 0x00000040 // Third button
#define POINTER_MESSAGE_FLAG_FOURTHBUTTON 0x00000080 // Fourth button
#define POINTER_MESSAGE_FLAG_FIFTHBUTTON 0x00000100 // Fifth button
#define POINTER_MESSAGE_FLAG_PRIMARY 0x00002000 // Pointer is primary
#define POINTER_MESSAGE_FLAG_CONFIDENCE 0x00004000 // Pointer is conside
red unlikely to be accidental
#define POINTER_MESSAGE_FLAG_CANCELED 0x00008000 // Pointer is departi
ng in an abnormal manner
/*
* Macros to retrieve information from pointer input message parameters
*/
#define GET_POINTERID_WPARAM(wParam) (LOWORD(wParam))
#define IS_POINTER_FLAG_SET_WPARAM(wParam, flag) (((DWORD)HIWORD(wParam) & (f
lag)) == (flag))
#define IS_POINTER_NEW_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_NEW)
#define IS_POINTER_INRANGE_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_INRANGE)
#define IS_POINTER_INCONTACT_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_INCONTACT)
#define IS_POINTER_FIRSTBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_FIRSTBUTTON)
#define IS_POINTER_SECONDBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_SECONDBUTTON)
#define IS_POINTER_THIRDBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_THIRDBUTTON)
#define IS_POINTER_FOURTHBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_FOURTHBUTTON)
#define IS_POINTER_FIFTHBUTTON_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_FIFTHBUTTON)
#define IS_POINTER_PRIMARY_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_PRIMARY)
#define HAS_POINTER_CONFIDENCE_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_CONFIDENCE)
#define IS_POINTER_CANCELED_WPARAM(wParam) IS_POINTER_FLAG_SET_WPARAM(w
Param, POINTER_MESSAGE_FLAG_CANCELED)
/*
* WM_POINTERACTIVATE return codes
*/
#define PA_ACTIVATE MA_ACTIVATE
#define PA_NOACTIVATE MA_NOACTIVATE
#define MAX_TOUCH_COUNT 256
#define TOUCH_FEEDBACK_DEFAULT 0x1
#define TOUCH_FEEDBACK_INDIRECT 0x2
#define TOUCH_FEEDBACK_NONE 0x3
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI
BOOL
WINAPI
InitializeTouchInjection(
_In_ UINT32 maxCount,
_In_ DWORD dwMode);
WINUSERAPI
BOOL
WINAPI
InjectTouchInput(
_In_ UINT32 count,
_In_reads_(count) CONST POINTER_TOUCH_INFO *contacts);
WINUSERAPI
BOOL
WINAPI
GetPointerType(
_In_ UINT32 pointerId,
_Out_ POINTER_INPUT_TYPE *pointerType);
WINUSERAPI
BOOL
WINAPI
GetPointerCursorId(
_In_ UINT32 pointerId,
_Out_ UINT32 *cursorId);
WINUSERAPI
BOOL
WINAPI
GetPointerInfo(
_In_ UINT32 pointerId,
_Out_writes_(1) POINTER_INFO *pointerInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Out_writes_opt_(*entriesCount) POINTER_INFO *pointerInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFrameInfo(
_In_ UINT32 pointerId,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*pointerCount) POINTER_INFO *pointerInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFrameInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*entriesCount * *pointerCount) POINTER_INFO *pointerInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerTouchInfo(
_In_ UINT32 pointerId,
_Out_writes_(1) POINTER_TOUCH_INFO *touchInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerTouchInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Out_writes_opt_(*entriesCount) POINTER_TOUCH_INFO *touchInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchInfo(
_In_ UINT32 pointerId,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*pointerCount) POINTER_TOUCH_INFO *touchInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*entriesCount * *pointerCount) POINTER_TOUCH_INFO *touchInf
o);
WINUSERAPI
BOOL
WINAPI
GetPointerPenInfo(
_In_ UINT32 pointerId,
_Out_writes_(1) POINTER_PEN_INFO *penInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerPenInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Out_writes_opt_(*entriesCount) POINTER_PEN_INFO *penInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFramePenInfo(
_In_ UINT32 pointerId,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*pointerCount) POINTER_PEN_INFO *penInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFramePenInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*entriesCount * *pointerCount) POINTER_PEN_INFO *penInfo);
WINUSERAPI
BOOL
WINAPI
SkipPointerFrameMessages(
_In_ UINT32 pointerId);
WINUSERAPI
BOOL
WINAPI
RegisterPointerInputTarget(
_In_ HWND hwnd,
_In_ POINTER_INPUT_TYPE pointerType);
WINUSERAPI
BOOL
WINAPI
UnregisterPointerInputTarget(
_In_ HWND hwnd,
_In_ POINTER_INPUT_TYPE pointerType);
WINUSERAPI
BOOL
WINAPI
EnableMouseInPointer(
_In_ BOOL fEnable);
WINUSERAPI
BOOL
WINAPI
IsMouseInPointerEnabled(
VOID);
#define TOUCH_HIT_TESTING_DEFAULT 0x0
#define TOUCH_HIT_TESTING_CLIENT 0x1
#define TOUCH_HIT_TESTING_NONE 0x2
WINUSERAPI
BOOL
WINAPI
RegisterTouchHitTestingWindow(
_In_ HWND hwnd,
_In_ ULONG value);
typedef struct tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION
{
UINT16 score;
POINT adjustedPoint;
} TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, *PTOUCH_HIT_TESTING_PROXIMITY_EVALUATI
ON;
/*
* WM_TOUCHHITTESTING structure
*/
typedef struct tagTOUCH_HIT_TESTING_INPUT
{
UINT32 pointerId;
POINT point;
RECT boundingBox;
RECT nonOccludedBoundingBox;
UINT32 orientation;
} TOUCH_HIT_TESTING_INPUT, *PTOUCH_HIT_TESTING_INPUT;
#define TOUCH_HIT_TESTING_PROXIMITY_CLOSEST 0x0
#define TOUCH_HIT_TESTING_PROXIMITY_FARTHEST 0xFFF
WINUSERAPI
BOOL
WINAPI
EvaluateProximityToRect(
_In_ const RECT *controlBoundingBox,
_In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
_Out_ TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
WINUSERAPI
BOOL
WINAPI
EvaluateProximityToPolygon(
UINT32 numVertices,
_In_reads_(numVertices) const POINT *controlPolygon,
_In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
_Out_ TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
WINUSERAPI
LRESULT
WINAPI
PackTouchHitTestingProximityEvaluation(
_In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
_In_ const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
typedef enum tagFEEDBACK_TYPE {
FEEDBACK_TOUCH_CONTACTVISUALIZATION = 1,
FEEDBACK_PEN_BARRELVISUALIZATION = 2,
FEEDBACK_PEN_TAP = 3,
FEEDBACK_PEN_DOUBLETAP = 4,
FEEDBACK_PEN_PRESSANDHOLD = 5,
FEEDBACK_PEN_RIGHTTAP = 6,
FEEDBACK_TOUCH_TAP = 7,
FEEDBACK_TOUCH_DOUBLETAP = 8,
FEEDBACK_TOUCH_PRESSANDHOLD = 9,
FEEDBACK_TOUCH_RIGHTTAP = 10,
FEEDBACK_GESTURE_PRESSANDTAP = 11,
FEEDBACK_MAX = 0xFFFFFFFF
} FEEDBACK_TYPE;
#define GWFS_INCLUDE_ANCESTORS 0x00000001
WINUSERAPI
BOOL
WINAPI
GetWindowFeedbackSetting(
_In_ HWND hwnd,
_In_ FEEDBACK_TYPE feedback,
_In_ DWORD dwFlags,
_Inout_ UINT32* pSize,
_Out_writes_bytes_opt_(*pSize) VOID* config);
WINUSERAPI
BOOL
WINAPI
SetWindowFeedbackSetting(
_In_ HWND hwnd,
_In_ FEEDBACK_TYPE feedback,
_In_ DWORD dwFlags,
_In_ UINT32 size,
_In_reads_bytes_opt_(size) CONST VOID* configuration);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0602 */
#if(WINVER >= 0x0603)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagINPUT_TRANSFORM {
union {
struct {
float _11, _12, _13, _14;
float _21, _22, _23, _24;
float _31, _32, _33, _34;
float _41, _42, _43, _44;
};
float m[4][4];
};
} INPUT_TRANSFORM;
WINUSERAPI
BOOL
WINAPI
GetPointerInputTransform(
_In_ UINT32 pointerId,
_In_ UINT32 historyCount,
_Out_writes_(historyCount) INPUT_TRANSFORM *inputTransform);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0603 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
typedef struct tagLASTINPUTINFO { typedef struct tagLASTINPUTINFO {
UINT cbSize; UINT cbSize;
DWORD dwTime; DWORD dwTime;
} LASTINPUTINFO, * PLASTINPUTINFO; } LASTINPUTINFO, * PLASTINPUTINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetLastInputInfo( GetLastInputInfo(
__out PLASTINPUTINFO plii); _Out_ PLASTINPUTINFO plii);
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
MapVirtualKeyA( MapVirtualKeyA(
__in UINT uCode, _In_ UINT uCode,
__in UINT uMapType); _In_ UINT uMapType);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
MapVirtualKeyW( MapVirtualKeyW(
__in UINT uCode, _In_ UINT uCode,
__in UINT uMapType); _In_ UINT uMapType);
#ifdef UNICODE #ifdef UNICODE
#define MapVirtualKey MapVirtualKeyW #define MapVirtualKey MapVirtualKeyW
#else #else
#define MapVirtualKey MapVirtualKeyA #define MapVirtualKey MapVirtualKeyA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
MapVirtualKeyExA( MapVirtualKeyExA(
__in UINT uCode, _In_ UINT uCode,
__in UINT uMapType, _In_ UINT uMapType,
__in_opt HKL dwhkl); _In_opt_ HKL dwhkl);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
MapVirtualKeyExW( MapVirtualKeyExW(
__in UINT uCode, _In_ UINT uCode,
__in UINT uMapType, _In_ UINT uMapType,
__in_opt HKL dwhkl); _In_opt_ HKL dwhkl);
#ifdef UNICODE #ifdef UNICODE
#define MapVirtualKeyEx MapVirtualKeyExW #define MapVirtualKeyEx MapVirtualKeyExW
#else #else
#define MapVirtualKeyEx MapVirtualKeyExA #define MapVirtualKeyEx MapVirtualKeyExA
#endif // !UNICODE #endif // !UNICODE
#define MAPVK_VK_TO_VSC (0) #define MAPVK_VK_TO_VSC (0)
#define MAPVK_VSC_TO_VK (1) #define MAPVK_VSC_TO_VK (1)
#define MAPVK_VK_TO_CHAR (2) #define MAPVK_VK_TO_CHAR (2)
#define MAPVK_VSC_TO_VK_EX (3) #define MAPVK_VSC_TO_VK_EX (3)
skipping to change at line 5430 skipping to change at line 6412
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetInputState( GetInputState(
VOID); VOID);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetQueueStatus( GetQueueStatus(
__in UINT flags); _In_ UINT flags);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetCapture( GetCapture(
VOID); VOID);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
SetCapture( SetCapture(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ReleaseCapture( ReleaseCapture(
VOID); VOID);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
MsgWaitForMultipleObjects( MsgWaitForMultipleObjects(
__in DWORD nCount, _In_ DWORD nCount,
__in_ecount_opt(nCount) CONST HANDLE *pHandles, _In_reads_opt_(nCount) CONST HANDLE *pHandles,
__in BOOL fWaitAll, _In_ BOOL fWaitAll,
__in DWORD dwMilliseconds, _In_ DWORD dwMilliseconds,
__in DWORD dwWakeMask); _In_ DWORD dwWakeMask);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
MsgWaitForMultipleObjectsEx( MsgWaitForMultipleObjectsEx(
__in DWORD nCount, _In_ DWORD nCount,
__in_ecount_opt(nCount) CONST HANDLE *pHandles, _In_reads_opt_(nCount) CONST HANDLE *pHandles,
__in DWORD dwMilliseconds, _In_ DWORD dwMilliseconds,
__in DWORD dwWakeMask, _In_ DWORD dwWakeMask,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define MWMO_WAITALL 0x0001 #define MWMO_WAITALL 0x0001
#define MWMO_ALERTABLE 0x0002 #define MWMO_ALERTABLE 0x0002
#define MWMO_INPUTAVAILABLE 0x0004 #define MWMO_INPUTAVAILABLE 0x0004
/* /*
* Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects() * Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
*/ */
#define QS_KEY 0x0001 #define QS_KEY 0x0001
#define QS_MOUSEMOVE 0x0002 #define QS_MOUSEMOVE 0x0002
skipping to change at line 5486 skipping to change at line 6471
*/ */
#define QS_KEY 0x0001 #define QS_KEY 0x0001
#define QS_MOUSEMOVE 0x0002 #define QS_MOUSEMOVE 0x0002
#define QS_MOUSEBUTTON 0x0004 #define QS_MOUSEBUTTON 0x0004
#define QS_POSTMESSAGE 0x0008 #define QS_POSTMESSAGE 0x0008
#define QS_TIMER 0x0010 #define QS_TIMER 0x0010
#define QS_PAINT 0x0020 #define QS_PAINT 0x0020
#define QS_SENDMESSAGE 0x0040 #define QS_SENDMESSAGE 0x0040
#define QS_HOTKEY 0x0080 #define QS_HOTKEY 0x0080
#define QS_ALLPOSTMESSAGE 0x0100 #define QS_ALLPOSTMESSAGE 0x0100
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define QS_RAWINPUT 0x0400 #define QS_RAWINPUT 0x0400
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0602)
#define QS_TOUCH 0x0800
#define QS_POINTER 0x1000
#endif /* _WIN32_WINNT >= 0x0602 */
#define QS_MOUSE (QS_MOUSEMOVE | \ #define QS_MOUSE (QS_MOUSEMOVE | \
QS_MOUSEBUTTON) QS_MOUSEBUTTON)
#if (_WIN32_WINNT >= 0x602)
#define QS_INPUT (QS_MOUSE | \
QS_KEY | \
QS_RAWINPUT | \
QS_TOUCH | \
QS_POINTER)
#else
#if (_WIN32_WINNT >= 0x0501) #if (_WIN32_WINNT >= 0x0501)
#define QS_INPUT (QS_MOUSE | \ #define QS_INPUT (QS_MOUSE | \
QS_KEY | \ QS_KEY | \
QS_RAWINPUT) QS_RAWINPUT)
#else #else
#define QS_INPUT (QS_MOUSE | \ #define QS_INPUT (QS_MOUSE | \
QS_KEY) QS_KEY)
#endif // (_WIN32_WINNT >= 0x0501) #endif // (_WIN32_WINNT >= 0x0501)
#endif
#define QS_ALLEVENTS (QS_INPUT | \ #define QS_ALLEVENTS (QS_INPUT | \
QS_POSTMESSAGE | \ QS_POSTMESSAGE | \
QS_TIMER | \ QS_TIMER | \
QS_PAINT | \ QS_PAINT | \
QS_HOTKEY) QS_HOTKEY)
#define QS_ALLINPUT (QS_INPUT | \ #define QS_ALLINPUT (QS_INPUT | \
QS_POSTMESSAGE | \ QS_POSTMESSAGE | \
QS_TIMER | \ QS_TIMER | \
QS_PAINT | \ QS_PAINT | \
QS_HOTKEY | \ QS_HOTKEY | \
QS_SENDMESSAGE) QS_SENDMESSAGE)
#define USER_TIMER_MAXIMUM 0x7FFFFFFF #define USER_TIMER_MAXIMUM 0x7FFFFFFF
#define USER_TIMER_MINIMUM 0x0000000A #define USER_TIMER_MINIMUM 0x0000000A
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Windows Functions * Windows Functions
*/ */
WINUSERAPI WINUSERAPI
UINT_PTR UINT_PTR
WINAPI WINAPI
SetTimer( SetTimer(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in UINT_PTR nIDEvent, _In_ UINT_PTR nIDEvent,
__in UINT uElapse, _In_ UINT uElapse,
__in_opt TIMERPROC lpTimerFunc); _In_opt_ TIMERPROC lpTimerFunc);
#if(WINVER >= 0x0601)
#define TIMERV_DEFAULT_COALESCING (0)
#define TIMERV_NO_COALESCING (0xFFFFFFFF)
#define TIMERV_COALESCING_MIN (1)
#define TIMERV_COALESCING_MAX (0x7FFFFFF5)
WINUSERAPI
UINT_PTR
WINAPI
SetCoalescableTimer(
_In_opt_ HWND hWnd,
_In_ UINT_PTR nIDEvent,
_In_ UINT uElapse,
_In_opt_ TIMERPROC lpTimerFunc,
_In_ ULONG uToleranceDelay);
#endif /* WINVER >= 0x0601 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
KillTimer( KillTimer(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in UINT_PTR uIDEvent); _In_ UINT_PTR uIDEvent);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsWindowUnicode( IsWindowUnicode(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnableWindow( EnableWindow(
__in HWND hWnd, _In_ HWND hWnd,
__in BOOL bEnable); _In_ BOOL bEnable);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsWindowEnabled( IsWindowEnabled(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
HACCEL HACCEL
WINAPI WINAPI
LoadAcceleratorsA( LoadAcceleratorsA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpTableName); _In_ LPCSTR lpTableName);
WINUSERAPI WINUSERAPI
HACCEL HACCEL
WINAPI WINAPI
LoadAcceleratorsW( LoadAcceleratorsW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpTableName); _In_ LPCWSTR lpTableName);
#ifdef UNICODE #ifdef UNICODE
#define LoadAccelerators LoadAcceleratorsW #define LoadAccelerators LoadAcceleratorsW
#else #else
#define LoadAccelerators LoadAcceleratorsA #define LoadAccelerators LoadAcceleratorsA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HACCEL HACCEL
WINAPI WINAPI
CreateAcceleratorTableA( CreateAcceleratorTableA(
__in_ecount(cAccel) LPACCEL paccel, _In_reads_(cAccel) LPACCEL paccel,
__in int cAccel); _In_ int cAccel);
WINUSERAPI WINUSERAPI
HACCEL HACCEL
WINAPI WINAPI
CreateAcceleratorTableW( CreateAcceleratorTableW(
__in_ecount(cAccel) LPACCEL paccel, _In_reads_(cAccel) LPACCEL paccel,
__in int cAccel); _In_ int cAccel);
#ifdef UNICODE #ifdef UNICODE
#define CreateAcceleratorTable CreateAcceleratorTableW #define CreateAcceleratorTable CreateAcceleratorTableW
#else #else
#define CreateAcceleratorTable CreateAcceleratorTableA #define CreateAcceleratorTable CreateAcceleratorTableA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DestroyAcceleratorTable( DestroyAcceleratorTable(
__in HACCEL hAccel); _In_ HACCEL hAccel);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
CopyAcceleratorTableA( CopyAcceleratorTableA(
__in HACCEL hAccelSrc, _In_ HACCEL hAccelSrc,
__out_ecount_part_opt(cAccelEntries, return) LPACCEL lpAccelDst, _Out_writes_to_opt_(cAccelEntries, return) LPACCEL lpAccelDst,
__in int cAccelEntries); _In_ int cAccelEntries);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
CopyAcceleratorTableW( CopyAcceleratorTableW(
__in HACCEL hAccelSrc, _In_ HACCEL hAccelSrc,
__out_ecount_part_opt(cAccelEntries, return) LPACCEL lpAccelDst, _Out_writes_to_opt_(cAccelEntries, return) LPACCEL lpAccelDst,
__in int cAccelEntries); _In_ int cAccelEntries);
#ifdef UNICODE #ifdef UNICODE
#define CopyAcceleratorTable CopyAcceleratorTableW #define CopyAcceleratorTable CopyAcceleratorTableW
#else #else
#define CopyAcceleratorTable CopyAcceleratorTableA #define CopyAcceleratorTable CopyAcceleratorTableA
#endif // !UNICODE #endif // !UNICODE
#ifndef NOMSG #ifndef NOMSG
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
TranslateAcceleratorA( TranslateAcceleratorA(
__in HWND hWnd, _In_ HWND hWnd,
__in HACCEL hAccTable, _In_ HACCEL hAccTable,
__in LPMSG lpMsg); _In_ LPMSG lpMsg);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
TranslateAcceleratorW( TranslateAcceleratorW(
__in HWND hWnd, _In_ HWND hWnd,
__in HACCEL hAccTable, _In_ HACCEL hAccTable,
__in LPMSG lpMsg); _In_ LPMSG lpMsg);
#ifdef UNICODE #ifdef UNICODE
#define TranslateAccelerator TranslateAcceleratorW #define TranslateAccelerator TranslateAcceleratorW
#else #else
#define TranslateAccelerator TranslateAcceleratorA #define TranslateAccelerator TranslateAcceleratorA
#endif // !UNICODE #endif // !UNICODE
#endif /* !NOMSG */ #endif /* !NOMSG */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NOSYSMETRICS #ifndef NOSYSMETRICS
/* /*
* GetSystemMetrics() codes * GetSystemMetrics() codes
*/ */
#define SM_CXSCREEN 0 #define SM_CXSCREEN 0
#define SM_CYSCREEN 1 #define SM_CYSCREEN 1
#define SM_CXVSCROLL 2 #define SM_CXVSCROLL 2
#define SM_CYHSCROLL 3 #define SM_CYHSCROLL 3
skipping to change at line 5785 skipping to change at line 6812
#elif WINVER == 0x600 #elif WINVER == 0x600
#define SM_CMETRICS 93 #define SM_CMETRICS 93
#else #else
#define SM_CMETRICS 97 #define SM_CMETRICS 97
#endif #endif
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define SM_REMOTESESSION 0x1000 #define SM_REMOTESESSION 0x1000
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define SM_SHUTTINGDOWN 0x2000 #define SM_SHUTTINGDOWN 0x2000
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(WINVER >= 0x0501) #if(WINVER >= 0x0501)
#define SM_REMOTECONTROL 0x2001 #define SM_REMOTECONTROL 0x2001
#endif /* WINVER >= 0x0501 */ #endif /* WINVER >= 0x0501 */
#if(WINVER >= 0x0501) #if(WINVER >= 0x0501)
#define SM_CARETBLINKINGENABLED 0x2002 #define SM_CARETBLINKINGENABLED 0x2002
#endif /* WINVER >= 0x0501 */ #endif /* WINVER >= 0x0501 */
#if(WINVER >= 0x0602)
#define SM_CONVERTIBLESLATEMODE 0x2003
#define SM_SYSTEMDOCKED 0x2004
#endif /* WINVER >= 0x0602 */
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetSystemMetrics( GetSystemMetrics(
__in int nIndex); _In_ int nIndex);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOSYSMETRICS */ #endif /* !NOSYSMETRICS */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef NOMENUS #ifndef NOMENUS
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
LoadMenuA( LoadMenuA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpMenuName); _In_ LPCSTR lpMenuName);
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
LoadMenuW( LoadMenuW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpMenuName); _In_ LPCWSTR lpMenuName);
#ifdef UNICODE #ifdef UNICODE
#define LoadMenu LoadMenuW #define LoadMenu LoadMenuW
#else #else
#define LoadMenu LoadMenuA #define LoadMenu LoadMenuA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
LoadMenuIndirectA( LoadMenuIndirectA(
__in CONST MENUTEMPLATEA *lpMenuTemplate); _In_ CONST MENUTEMPLATEA *lpMenuTemplate);
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
LoadMenuIndirectW( LoadMenuIndirectW(
__in CONST MENUTEMPLATEW *lpMenuTemplate); _In_ CONST MENUTEMPLATEW *lpMenuTemplate);
#ifdef UNICODE #ifdef UNICODE
#define LoadMenuIndirect LoadMenuIndirectW #define LoadMenuIndirect LoadMenuIndirectW
#else #else
#define LoadMenuIndirect LoadMenuIndirectA #define LoadMenuIndirect LoadMenuIndirectA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
GetMenu( GetMenu(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetMenu( SetMenu(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HMENU hMenu); _In_opt_ HMENU hMenu);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ChangeMenuA( ChangeMenuA(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT cmd, _In_ UINT cmd,
__in_opt LPCSTR lpszNewItem, _In_opt_ LPCSTR lpszNewItem,
__in UINT cmdInsert, _In_ UINT cmdInsert,
__in UINT flags); _In_ UINT flags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ChangeMenuW( ChangeMenuW(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT cmd, _In_ UINT cmd,
__in_opt LPCWSTR lpszNewItem, _In_opt_ LPCWSTR lpszNewItem,
__in UINT cmdInsert, _In_ UINT cmdInsert,
__in UINT flags); _In_ UINT flags);
#ifdef UNICODE #ifdef UNICODE
#define ChangeMenu ChangeMenuW #define ChangeMenu ChangeMenuW
#else #else
#define ChangeMenu ChangeMenuA #define ChangeMenu ChangeMenuA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
HiliteMenuItem( HiliteMenuItem(
__in HWND hWnd, _In_ HWND hWnd,
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uIDHiliteItem, _In_ UINT uIDHiliteItem,
__in UINT uHilite); _In_ UINT uHilite);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetMenuStringA( GetMenuStringA(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uIDItem, _In_ UINT uIDItem,
__out_ecount_opt(cchMax) LPSTR lpString, _Out_writes_opt_(cchMax) LPSTR lpString,
__in int cchMax, _In_ int cchMax,
__in UINT flags); _In_ UINT flags);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetMenuStringW( GetMenuStringW(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uIDItem, _In_ UINT uIDItem,
__out_ecount_opt(cchMax) LPWSTR lpString, _Out_writes_opt_(cchMax) LPWSTR lpString,
__in int cchMax, _In_ int cchMax,
__in UINT flags); _In_ UINT flags);
#ifdef UNICODE #ifdef UNICODE
#define GetMenuString GetMenuStringW #define GetMenuString GetMenuStringW
#else #else
#define GetMenuString GetMenuStringA #define GetMenuString GetMenuStringA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetMenuState( GetMenuState(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uId, _In_ UINT uId,
__in UINT uFlags); _In_ UINT uFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawMenuBar( DrawMenuBar(
__in HWND hWnd); _In_ HWND hWnd);
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define PMB_ACTIVE 0x00000001 #define PMB_ACTIVE 0x00000001
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
GetSystemMenu( GetSystemMenu(
__in HWND hWnd, _In_ HWND hWnd,
__in BOOL bRevert); _In_ BOOL bRevert);
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
CreateMenu( CreateMenu(
VOID); VOID);
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
CreatePopupMenu( CreatePopupMenu(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DestroyMenu( DestroyMenu(
__in HMENU hMenu); _In_ HMENU hMenu);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
CheckMenuItem( CheckMenuItem(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uIDCheckItem, _In_ UINT uIDCheckItem,
__in UINT uCheck); _In_ UINT uCheck);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnableMenuItem( EnableMenuItem(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uIDEnableItem, _In_ UINT uIDEnableItem,
__in UINT uEnable); _In_ UINT uEnable);
WINUSERAPI WINUSERAPI
HMENU HMENU
WINAPI WINAPI
GetSubMenu( GetSubMenu(
__in HMENU hMenu, _In_ HMENU hMenu,
__in int nPos); _In_ int nPos);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetMenuItemID( GetMenuItemID(
__in HMENU hMenu, _In_ HMENU hMenu,
__in int nPos); _In_ int nPos);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetMenuItemCount( GetMenuItemCount(
__in_opt HMENU hMenu); _In_opt_ HMENU hMenu);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InsertMenuA( InsertMenuA(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uPosition, _In_ UINT uPosition,
__in UINT uFlags, _In_ UINT uFlags,
__in UINT_PTR uIDNewItem, _In_ UINT_PTR uIDNewItem,
__in_opt LPCSTR lpNewItem); _In_opt_ LPCSTR lpNewItem);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InsertMenuW( InsertMenuW(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uPosition, _In_ UINT uPosition,
__in UINT uFlags, _In_ UINT uFlags,
__in UINT_PTR uIDNewItem, _In_ UINT_PTR uIDNewItem,
__in_opt LPCWSTR lpNewItem); _In_opt_ LPCWSTR lpNewItem);
#ifdef UNICODE #ifdef UNICODE
#define InsertMenu InsertMenuW #define InsertMenu InsertMenuW
#else #else
#define InsertMenu InsertMenuA #define InsertMenu InsertMenuA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AppendMenuA( AppendMenuA(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uFlags, _In_ UINT uFlags,
__in UINT_PTR uIDNewItem, _In_ UINT_PTR uIDNewItem,
__in_opt LPCSTR lpNewItem); _In_opt_ LPCSTR lpNewItem);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AppendMenuW( AppendMenuW(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uFlags, _In_ UINT uFlags,
__in UINT_PTR uIDNewItem, _In_ UINT_PTR uIDNewItem,
__in_opt LPCWSTR lpNewItem); _In_opt_ LPCWSTR lpNewItem);
#ifdef UNICODE #ifdef UNICODE
#define AppendMenu AppendMenuW #define AppendMenu AppendMenuW
#else #else
#define AppendMenu AppendMenuA #define AppendMenu AppendMenuA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ModifyMenuA( ModifyMenuA(
__in HMENU hMnu, _In_ HMENU hMnu,
__in UINT uPosition, _In_ UINT uPosition,
__in UINT uFlags, _In_ UINT uFlags,
__in UINT_PTR uIDNewItem, _In_ UINT_PTR uIDNewItem,
__in_opt LPCSTR lpNewItem); _In_opt_ LPCSTR lpNewItem);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ModifyMenuW( ModifyMenuW(
__in HMENU hMnu, _In_ HMENU hMnu,
__in UINT uPosition, _In_ UINT uPosition,
__in UINT uFlags, _In_ UINT uFlags,
__in UINT_PTR uIDNewItem, _In_ UINT_PTR uIDNewItem,
__in_opt LPCWSTR lpNewItem); _In_opt_ LPCWSTR lpNewItem);
#ifdef UNICODE #ifdef UNICODE
#define ModifyMenu ModifyMenuW #define ModifyMenu ModifyMenuW
#else #else
#define ModifyMenu ModifyMenuA #define ModifyMenu ModifyMenuA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI RemoveMenu( WINAPI RemoveMenu(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uPosition, _In_ UINT uPosition,
__in UINT uFlags); _In_ UINT uFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DeleteMenu( DeleteMenu(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uPosition, _In_ UINT uPosition,
__in UINT uFlags); _In_ UINT uFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetMenuItemBitmaps( SetMenuItemBitmaps(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uPosition, _In_ UINT uPosition,
__in UINT uFlags, _In_ UINT uFlags,
__in_opt HBITMAP hBitmapUnchecked, _In_opt_ HBITMAP hBitmapUnchecked,
__in_opt HBITMAP hBitmapChecked); _In_opt_ HBITMAP hBitmapChecked);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
GetMenuCheckMarkDimensions( GetMenuCheckMarkDimensions(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
TrackPopupMenu( TrackPopupMenu(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uFlags, _In_ UINT uFlags,
__in int x, _In_ int x,
__in int y, _In_ int y,
__in int nReserved, _Reserved_ int nReserved,
__in HWND hWnd, _In_ HWND hWnd,
__in_opt CONST RECT *prcRect); _Reserved_ CONST RECT *prcRect);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
/* return codes for WM_MENUCHAR */ /* return codes for WM_MENUCHAR */
#define MNC_IGNORE 0 #define MNC_IGNORE 0
#define MNC_CLOSE 1 #define MNC_CLOSE 1
#define MNC_EXECUTE 2 #define MNC_EXECUTE 2
#define MNC_SELECT 3 #define MNC_SELECT 3
typedef struct tagTPMPARAMS typedef struct tagTPMPARAMS
{ {
UINT cbSize; /* Size of structure */ UINT cbSize; /* Size of structure */
RECT rcExclude; /* Screen coordinates of rectangle to exclude when posit ioning */ RECT rcExclude; /* Screen coordinates of rectangle to exclude when posit ioning */
} TPMPARAMS; } TPMPARAMS;
typedef TPMPARAMS FAR *LPTPMPARAMS; typedef TPMPARAMS FAR *LPTPMPARAMS;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
TrackPopupMenuEx( TrackPopupMenuEx(
__in HMENU, _In_ HMENU hMenu,
__in UINT, _In_ UINT uFlags,
__in int, _In_ int x,
__in int, _In_ int y,
__in HWND, _In_ HWND hwnd,
__in_opt LPTPMPARAMS); _In_opt_ LPTPMPARAMS lptpm);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(_WIN32_WINNT >= 0x0601) #if(_WIN32_WINNT >= 0x0601)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CalculatePopupWindowPosition( CalculatePopupWindowPosition(
__in const POINT *anchorPoint, _In_ const POINT *anchorPoint,
__in const SIZE *windowSize, _In_ const SIZE *windowSize,
__in UINT /* TPM_XXX values */ flags, _In_ UINT /* TPM_XXX values */ flags,
__in_opt RECT *excludeRect, _In_opt_ RECT *excludeRect,
__out RECT *popupWindowPosition); _Out_ RECT *popupWindowPosition);
#endif /* _WIN32_WINNT >= 0x0601 */ #endif /* _WIN32_WINNT >= 0x0601 */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define MNS_NOCHECK 0x80000000 #define MNS_NOCHECK 0x80000000
#define MNS_MODELESS 0x40000000 #define MNS_MODELESS 0x40000000
#define MNS_DRAGDROP 0x20000000 #define MNS_DRAGDROP 0x20000000
#define MNS_AUTODISMISS 0x10000000 #define MNS_AUTODISMISS 0x10000000
#define MNS_NOTIFYBYPOS 0x08000000 #define MNS_NOTIFYBYPOS 0x08000000
skipping to change at line 6176 skipping to change at line 7217
HBRUSH hbrBack; HBRUSH hbrBack;
DWORD dwContextHelpID; DWORD dwContextHelpID;
ULONG_PTR dwMenuData; ULONG_PTR dwMenuData;
} MENUINFO, FAR *LPMENUINFO; } MENUINFO, FAR *LPMENUINFO;
typedef MENUINFO CONST FAR *LPCMENUINFO; typedef MENUINFO CONST FAR *LPCMENUINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMenuInfo( GetMenuInfo(
__in HMENU, _In_ HMENU,
__inout LPMENUINFO); _Inout_ LPMENUINFO);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetMenuInfo( SetMenuInfo(
__in HMENU, _In_ HMENU,
__in LPCMENUINFO); _In_ LPCMENUINFO);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EndMenu( EndMenu(
VOID); VOID);
/* /*
* WM_MENUDRAG return values. * WM_MENUDRAG return values.
*/ */
skipping to change at line 6259 skipping to change at line 7300
{ {
UINT cbSize; UINT cbSize;
UINT fMask; UINT fMask;
UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0) UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
UINT fState; // used if MIIM_STATE UINT fState; // used if MIIM_STATE
UINT wID; // used if MIIM_ID UINT wID; // used if MIIM_ID
HMENU hSubMenu; // used if MIIM_SUBMENU HMENU hSubMenu; // used if MIIM_SUBMENU
HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
ULONG_PTR dwItemData; // used if MIIM_DATA ULONG_PTR dwItemData; // used if MIIM_DATA
__field_ecount_opt(cch) LPSTR dwTypeData; // used if MIIM_TYPE (4.0) o r MIIM_STRING (>4.0) LPSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
HBITMAP hbmpItem; // used if MIIM_BITMAP HBITMAP hbmpItem; // used if MIIM_BITMAP
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
} MENUITEMINFOA, FAR *LPMENUITEMINFOA; } MENUITEMINFOA, FAR *LPMENUITEMINFOA;
typedef struct tagMENUITEMINFOW typedef struct tagMENUITEMINFOW
{ {
UINT cbSize; UINT cbSize;
UINT fMask; UINT fMask;
UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0) UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
UINT fState; // used if MIIM_STATE UINT fState; // used if MIIM_STATE
UINT wID; // used if MIIM_ID UINT wID; // used if MIIM_ID
HMENU hSubMenu; // used if MIIM_SUBMENU HMENU hSubMenu; // used if MIIM_SUBMENU
HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
ULONG_PTR dwItemData; // used if MIIM_DATA ULONG_PTR dwItemData; // used if MIIM_DATA
__field_ecount_opt(cch) LPWSTR dwTypeData; // used if MIIM_TYPE (4.0) o r MIIM_STRING (>4.0) LPWSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
HBITMAP hbmpItem; // used if MIIM_BITMAP HBITMAP hbmpItem; // used if MIIM_BITMAP
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
} MENUITEMINFOW, FAR *LPMENUITEMINFOW; } MENUITEMINFOW, FAR *LPMENUITEMINFOW;
#ifdef UNICODE #ifdef UNICODE
typedef MENUITEMINFOW MENUITEMINFO; typedef MENUITEMINFOW MENUITEMINFO;
typedef LPMENUITEMINFOW LPMENUITEMINFO; typedef LPMENUITEMINFOW LPMENUITEMINFO;
#else #else
typedef MENUITEMINFOA MENUITEMINFO; typedef MENUITEMINFOA MENUITEMINFO;
skipping to change at line 6301 skipping to change at line 7342
#ifdef UNICODE #ifdef UNICODE
typedef LPCMENUITEMINFOW LPCMENUITEMINFO; typedef LPCMENUITEMINFOW LPCMENUITEMINFO;
#else #else
typedef LPCMENUITEMINFOA LPCMENUITEMINFO; typedef LPCMENUITEMINFOA LPCMENUITEMINFO;
#endif // UNICODE #endif // UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InsertMenuItemA( InsertMenuItemA(
__in HMENU hmenu, _In_ HMENU hmenu,
__in UINT item, _In_ UINT item,
__in BOOL fByPosition, _In_ BOOL fByPosition,
__in LPCMENUITEMINFOA lpmi); _In_ LPCMENUITEMINFOA lpmi);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InsertMenuItemW( InsertMenuItemW(
__in HMENU hmenu, _In_ HMENU hmenu,
__in UINT item, _In_ UINT item,
__in BOOL fByPosition, _In_ BOOL fByPosition,
__in LPCMENUITEMINFOW lpmi); _In_ LPCMENUITEMINFOW lpmi);
#ifdef UNICODE #ifdef UNICODE
#define InsertMenuItem InsertMenuItemW #define InsertMenuItem InsertMenuItemW
#else #else
#define InsertMenuItem InsertMenuItemA #define InsertMenuItem InsertMenuItemA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMenuItemInfoA( GetMenuItemInfoA(
__in HMENU hmenu, _In_ HMENU hmenu,
__in UINT item, _In_ UINT item,
__in BOOL fByPosition, _In_ BOOL fByPosition,
__inout LPMENUITEMINFOA lpmii); _Inout_ LPMENUITEMINFOA lpmii);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMenuItemInfoW( GetMenuItemInfoW(
__in HMENU hmenu, _In_ HMENU hmenu,
__in UINT item, _In_ UINT item,
__in BOOL fByPosition, _In_ BOOL fByPosition,
__inout LPMENUITEMINFOW lpmii); _Inout_ LPMENUITEMINFOW lpmii);
#ifdef UNICODE #ifdef UNICODE
#define GetMenuItemInfo GetMenuItemInfoW #define GetMenuItemInfo GetMenuItemInfoW
#else #else
#define GetMenuItemInfo GetMenuItemInfoA #define GetMenuItemInfo GetMenuItemInfoA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetMenuItemInfoA( SetMenuItemInfoA(
__in HMENU hmenu, _In_ HMENU hmenu,
__in UINT item, _In_ UINT item,
__in BOOL fByPositon, _In_ BOOL fByPositon,
__in LPCMENUITEMINFOA lpmii); _In_ LPCMENUITEMINFOA lpmii);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetMenuItemInfoW( SetMenuItemInfoW(
__in HMENU hmenu, _In_ HMENU hmenu,
__in UINT item, _In_ UINT item,
__in BOOL fByPositon, _In_ BOOL fByPositon,
__in LPCMENUITEMINFOW lpmii); _In_ LPCMENUITEMINFOW lpmii);
#ifdef UNICODE #ifdef UNICODE
#define SetMenuItemInfo SetMenuItemInfoW #define SetMenuItemInfo SetMenuItemInfoW
#else #else
#define SetMenuItemInfo SetMenuItemInfoA #define SetMenuItemInfo SetMenuItemInfoA
#endif // !UNICODE #endif // !UNICODE
#define GMDI_USEDISABLED 0x0001L #define GMDI_USEDISABLED 0x0001L
#define GMDI_GOINTOPOPUPS 0x0002L #define GMDI_GOINTOPOPUPS 0x0002L
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetMenuDefaultItem( GetMenuDefaultItem(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT fByPos, _In_ UINT fByPos,
__in UINT gmdiFlags); _In_ UINT gmdiFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetMenuDefaultItem( SetMenuDefaultItem(
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uItem, _In_ UINT uItem,
__in UINT fByPos); _In_ UINT fByPos);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMenuItemRect( GetMenuItemRect(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in HMENU hMenu, _In_ HMENU hMenu,
__in UINT uItem, _In_ UINT uItem,
__out LPRECT lprcItem); _Out_ LPRECT lprcItem);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
MenuItemFromPoint( MenuItemFromPoint(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in HMENU hMenu, _In_ HMENU hMenu,
__in POINT ptScreen); _In_ POINT ptScreen);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
/* /*
* Flags for TrackPopupMenu * Flags for TrackPopupMenu
*/ */
#define TPM_LEFTBUTTON 0x0000L #define TPM_LEFTBUTTON 0x0000L
#define TPM_RIGHTBUTTON 0x0002L #define TPM_RIGHTBUTTON 0x0002L
#define TPM_LEFTALIGN 0x0000L #define TPM_LEFTALIGN 0x0000L
#define TPM_CENTERALIGN 0x0004L #define TPM_CENTERALIGN 0x0004L
#define TPM_RIGHTALIGN 0x0008L #define TPM_RIGHTALIGN 0x0008L
skipping to change at line 6437 skipping to change at line 7478
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define TPM_LAYOUTRTL 0x8000L #define TPM_LAYOUTRTL 0x8000L
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#if(_WIN32_WINNT >= 0x0601) #if(_WIN32_WINNT >= 0x0601)
#define TPM_WORKAREA 0x10000L #define TPM_WORKAREA 0x10000L
#endif /* _WIN32_WINNT >= 0x0601 */ #endif /* _WIN32_WINNT >= 0x0601 */
#endif /* !NOMENUS */ #endif /* !NOMENUS */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// Drag-and-drop support // Drag-and-drop support
// Obsolete - use OLE instead // Obsolete - use OLE instead
// //
typedef struct tagDROPSTRUCT typedef struct tagDROPSTRUCT
{ {
HWND hwndSource; HWND hwndSource;
HWND hwndSink; HWND hwndSink;
DWORD wFmt; DWORD wFmt;
ULONG_PTR dwData; ULONG_PTR dwData;
POINT ptDrop; POINT ptDrop;
DWORD dwControlData; DWORD dwControlData;
} DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT; } DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define DOF_EXECUTABLE 0x8001 // wFmt flags #define DOF_EXECUTABLE 0x8001 // wFmt flags
#define DOF_DOCUMENT 0x8002 #define DOF_DOCUMENT 0x8002
#define DOF_DIRECTORY 0x8003 #define DOF_DIRECTORY 0x8003
#define DOF_MULTIPLE 0x8004 #define DOF_MULTIPLE 0x8004
#define DOF_PROGMAN 0x0001 #define DOF_PROGMAN 0x0001
#define DOF_SHELLDATA 0x0002 #define DOF_SHELLDATA 0x0002
#define DO_DROPFILE 0x454C4946L #define DO_DROPFILE 0x454C4946L
#define DO_PRINTFILE 0x544E5250L #define DO_PRINTFILE 0x544E5250L
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
DragObject( DragObject(
__in HWND hwndParent, _In_ HWND hwndParent,
__in HWND hwndFrom, _In_ HWND hwndFrom,
__in UINT fmt, _In_ UINT fmt,
__in ULONG_PTR data, _In_ ULONG_PTR data,
__in_opt HCURSOR hcur); _In_opt_ HCURSOR hcur);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DragDetect( DragDetect(
__in HWND hwnd, _In_ HWND hwnd,
__in POINT pt); _In_ POINT pt);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawIcon( DrawIcon(
__in HDC hDC, _In_ HDC hDC,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in HICON hIcon); _In_ HICON hIcon);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NODRAWTEXT #ifndef NODRAWTEXT
/* /*
* DrawText() Format Flags * DrawText() Format Flags
*/ */
#define DT_TOP 0x00000000 #define DT_TOP 0x00000000
#define DT_LEFT 0x00000000 #define DT_LEFT 0x00000000
#define DT_CENTER 0x00000001 #define DT_CENTER 0x00000001
#define DT_RIGHT 0x00000002 #define DT_RIGHT 0x00000002
skipping to change at line 6525 skipping to change at line 7589
#define DT_RTLREADING 0x00020000 #define DT_RTLREADING 0x00020000
#define DT_WORD_ELLIPSIS 0x00040000 #define DT_WORD_ELLIPSIS 0x00040000
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define DT_NOFULLWIDTHCHARBREAK 0x00080000 #define DT_NOFULLWIDTHCHARBREAK 0x00080000
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define DT_HIDEPREFIX 0x00100000 #define DT_HIDEPREFIX 0x00100000
#define DT_PREFIXONLY 0x00200000 #define DT_PREFIXONLY 0x00200000
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagDRAWTEXTPARAMS typedef struct tagDRAWTEXTPARAMS
{ {
UINT cbSize; UINT cbSize;
int iTabLength; int iTabLength;
int iLeftMargin; int iLeftMargin;
int iRightMargin; int iRightMargin;
UINT uiLengthDrawn; UINT uiLengthDrawn;
} DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS; } DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define _In_bypassable_reads_or_z_(size) \
_When_(((size) == -1) || (_String_length_(_Curr_) < (size)), _In_z_) \
_When_(((size) != -1) && (_String_length_(_Curr_) >= (size)), _In_reads_(siz
e))
#define _Inout_grows_updates_bypassable_or_z_(size, grows) \
_When_(((size) == -1) || (_String_length_(_Curr_) < (size)), _Pre_z_ _Pre_v
alid_ _Out_writes_z_(_String_length_(_Curr_) + (grows))) \
_When_(((size) != -1) && (_String_length_(_Curr_) >= (size)), _Pre_count_(si
ze) _Pre_valid_ _Out_writes_z_((size) + (grows)))
WINUSERAPI WINUSERAPI
_Success_(return)
int int
WINAPI WINAPI
DrawTextA( DrawTextA(
__in HDC hdc, _In_ HDC hdc,
__inout_ecount_opt(cchText) LPCSTR lpchText, _When_((format & DT_MODIFYSTRING), _At_((LPSTR)lpchText, _Inout_grows_update
__in int cchText, s_bypassable_or_z_(cchText, 4)))
__inout LPRECT lprc, _When_((!(format & DT_MODIFYSTRING)), _In_bypassable_reads_or_z_(cchText))
__in UINT format); LPCSTR lpchText,
_In_ int cchText,
_Inout_ LPRECT lprc,
_In_ UINT format);
WINUSERAPI WINUSERAPI
_Success_(return)
int int
WINAPI WINAPI
DrawTextW( DrawTextW(
__in HDC hdc, _In_ HDC hdc,
__inout_ecount_opt(cchText) LPCWSTR lpchText, _When_((format & DT_MODIFYSTRING), _At_((LPWSTR)lpchText, _Inout_grows_updat
__in int cchText, es_bypassable_or_z_(cchText, 4)))
__inout LPRECT lprc, _When_((!(format & DT_MODIFYSTRING)), _In_bypassable_reads_or_z_(cchText))
__in UINT format); LPCWSTR lpchText,
_In_ int cchText,
_Inout_ LPRECT lprc,
_In_ UINT format);
#ifdef UNICODE #ifdef UNICODE
#define DrawText DrawTextW #define DrawText DrawTextW
#else #else
#define DrawText DrawTextA #define DrawText DrawTextA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef DrawText #undef DrawText
__inline __inline
int int
skipping to change at line 6587 skipping to change at line 7675
lpchText, lpchText,
cchText, cchText,
lprc, lprc,
format format
); );
} }
#endif /* _M_CEE */ #endif /* _M_CEE */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
_Success_(return)
int int
WINAPI WINAPI
DrawTextExA( DrawTextExA(
__in HDC hdc, _In_ HDC hdc,
__inout_ecount_opt(cchText) LPSTR lpchText, _When_((cchText) < -1, _Unreferenced_parameter_)
__in int cchText, _When_((format & DT_MODIFYSTRING), _Inout_grows_updates_bypassable_or_z_(cch
__inout LPRECT lprc, Text, 4))
__in UINT format, _When_((!(format & DT_MODIFYSTRING)), _At_((LPCSTR)lpchText, _In_bypassable_
__in_opt LPDRAWTEXTPARAMS lpdtp); reads_or_z_(cchText)))
LPSTR lpchText,
_In_ int cchText,
_Inout_ LPRECT lprc,
_In_ UINT format,
_In_opt_ LPDRAWTEXTPARAMS lpdtp);
WINUSERAPI WINUSERAPI
_Success_(return)
int int
WINAPI WINAPI
DrawTextExW( DrawTextExW(
__in HDC hdc, _In_ HDC hdc,
__inout_ecount_opt(cchText) LPWSTR lpchText, _When_((cchText) < -1, _Unreferenced_parameter_)
__in int cchText, _When_((format & DT_MODIFYSTRING), _Inout_grows_updates_bypassable_or_z_(cch
__inout LPRECT lprc, Text, 4))
__in UINT format, _When_((!(format & DT_MODIFYSTRING)), _At_((LPCWSTR)lpchText, _In_bypassable
__in_opt LPDRAWTEXTPARAMS lpdtp); _reads_or_z_(cchText)))
LPWSTR lpchText,
_In_ int cchText,
_Inout_ LPRECT lprc,
_In_ UINT format,
_In_opt_ LPDRAWTEXTPARAMS lpdtp);
#ifdef UNICODE #ifdef UNICODE
#define DrawTextEx DrawTextExW #define DrawTextEx DrawTextExW
#else #else
#define DrawTextEx DrawTextExA #define DrawTextEx DrawTextExA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NODRAWTEXT */ #endif /* !NODRAWTEXT */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GrayStringA( GrayStringA(
__in HDC hDC, _In_ HDC hDC,
__in_opt HBRUSH hBrush, _In_opt_ HBRUSH hBrush,
__in_opt GRAYSTRINGPROC lpOutputFunc, _In_opt_ GRAYSTRINGPROC lpOutputFunc,
__in LPARAM lpData, _In_ LPARAM lpData,
__in int nCount, _In_ int nCount,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in int nWidth, _In_ int nWidth,
__in int nHeight); _In_ int nHeight);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GrayStringW( GrayStringW(
__in HDC hDC, _In_ HDC hDC,
__in_opt HBRUSH hBrush, _In_opt_ HBRUSH hBrush,
__in_opt GRAYSTRINGPROC lpOutputFunc, _In_opt_ GRAYSTRINGPROC lpOutputFunc,
__in LPARAM lpData, _In_ LPARAM lpData,
__in int nCount, _In_ int nCount,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in int nWidth, _In_ int nWidth,
__in int nHeight); _In_ int nHeight);
#ifdef UNICODE #ifdef UNICODE
#define GrayString GrayStringW #define GrayString GrayStringW
#else #else
#define GrayString GrayStringA #define GrayString GrayStringA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
/* Monolithic state-drawing routine */ /* Monolithic state-drawing routine */
/* Image type */ /* Image type */
#define DST_COMPLEX 0x0000 #define DST_COMPLEX 0x0000
#define DST_TEXT 0x0001 #define DST_TEXT 0x0001
#define DST_PREFIXTEXT 0x0002 #define DST_PREFIXTEXT 0x0002
#define DST_ICON 0x0003 #define DST_ICON 0x0003
#define DST_BITMAP 0x0004 #define DST_BITMAP 0x0004
/* State type */ /* State type */
#define DSS_NORMAL 0x0000 #define DSS_NORMAL 0x0000
#define DSS_UNION 0x0010 /* Gray string appearance */ #define DSS_UNION 0x0010 /* Gray string appearance */
#define DSS_DISABLED 0x0020 #define DSS_DISABLED 0x0020
#define DSS_MONO 0x0080 #define DSS_MONO 0x0080
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define DSS_HIDEPREFIX 0x0200 #define DSS_HIDEPREFIX 0x0200
#define DSS_PREFIXONLY 0x0400 #define DSS_PREFIXONLY 0x0400
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#define DSS_RIGHT 0x8000 #define DSS_RIGHT 0x8000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawStateA( DrawStateA(
__in HDC hdc, _In_ HDC hdc,
__in_opt HBRUSH hbrFore, _In_opt_ HBRUSH hbrFore,
__in_opt DRAWSTATEPROC qfnCallBack, _In_opt_ DRAWSTATEPROC qfnCallBack,
__in LPARAM lData, _In_ LPARAM lData,
__in WPARAM wData, _In_ WPARAM wData,
__in int x, _In_ int x,
__in int y, _In_ int y,
__in int cx, _In_ int cx,
__in int cy, _In_ int cy,
__in UINT uFlags); _In_ UINT uFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawStateW( DrawStateW(
__in HDC hdc, _In_ HDC hdc,
__in_opt HBRUSH hbrFore, _In_opt_ HBRUSH hbrFore,
__in_opt DRAWSTATEPROC qfnCallBack, _In_opt_ DRAWSTATEPROC qfnCallBack,
__in LPARAM lData, _In_ LPARAM lData,
__in WPARAM wData, _In_ WPARAM wData,
__in int x, _In_ int x,
__in int y, _In_ int y,
__in int cx, _In_ int cx,
__in int cy, _In_ int cy,
__in UINT uFlags); _In_ UINT uFlags);
#ifdef UNICODE #ifdef UNICODE
#define DrawState DrawStateW #define DrawState DrawStateW
#else #else
#define DrawState DrawStateA #define DrawState DrawStateA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
TabbedTextOutA( TabbedTextOutA(
__in HDC hdc, _In_ HDC hdc,
__in int x, _In_ int x,
__in int y, _In_ int y,
__in_ecount(chCount) LPCSTR lpString, _In_reads_(chCount) LPCSTR lpString,
__in int chCount, _In_ int chCount,
__in int nTabPositions, _In_ int nTabPositions,
__in_ecount_opt(nTabPositions) CONST INT *lpnTabStopPositions, _In_reads_opt_(nTabPositions) CONST INT *lpnTabStopPositions,
__in int nTabOrigin); _In_ int nTabOrigin);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
TabbedTextOutW( TabbedTextOutW(
__in HDC hdc, _In_ HDC hdc,
__in int x, _In_ int x,
__in int y, _In_ int y,
__in_ecount(chCount) LPCWSTR lpString, _In_reads_(chCount) LPCWSTR lpString,
__in int chCount, _In_ int chCount,
__in int nTabPositions, _In_ int nTabPositions,
__in_ecount_opt(nTabPositions) CONST INT *lpnTabStopPositions, _In_reads_opt_(nTabPositions) CONST INT *lpnTabStopPositions,
__in int nTabOrigin); _In_ int nTabOrigin);
#ifdef UNICODE #ifdef UNICODE
#define TabbedTextOut TabbedTextOutW #define TabbedTextOut TabbedTextOutW
#else #else
#define TabbedTextOut TabbedTextOutA #define TabbedTextOut TabbedTextOutA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetTabbedTextExtentA( GetTabbedTextExtentA(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(chCount) LPCSTR lpString, _In_reads_(chCount) LPCSTR lpString,
__in int chCount, _In_ int chCount,
__in int nTabPositions, _In_ int nTabPositions,
__in_ecount_opt(nTabPositions) CONST INT *lpnTabStopPositions); _In_reads_opt_(nTabPositions) CONST INT *lpnTabStopPositions);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetTabbedTextExtentW( GetTabbedTextExtentW(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(chCount) LPCWSTR lpString, _In_reads_(chCount) LPCWSTR lpString,
__in int chCount, _In_ int chCount,
__in int nTabPositions, _In_ int nTabPositions,
__in_ecount_opt(nTabPositions) CONST INT *lpnTabStopPositions); _In_reads_opt_(nTabPositions) CONST INT *lpnTabStopPositions);
#ifdef UNICODE #ifdef UNICODE
#define GetTabbedTextExtent GetTabbedTextExtentW #define GetTabbedTextExtent GetTabbedTextExtentW
#else #else
#define GetTabbedTextExtent GetTabbedTextExtentA #define GetTabbedTextExtent GetTabbedTextExtentA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UpdateWindow( UpdateWindow(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
SetActiveWindow( SetActiveWindow(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetForegroundWindow( GetForegroundWindow(
VOID); VOID);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PaintDesktop( PaintDesktop(
__in HDC hdc); _In_ HDC hdc);
WINUSERAPI WINUSERAPI
VOID VOID
WINAPI WINAPI
SwitchToThisWindow( SwitchToThisWindow(
__in HWND hwnd, _In_ HWND hwnd,
__in BOOL fUnknown); _In_ BOOL fUnknown);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetForegroundWindow( SetForegroundWindow(
__in HWND hWnd); _In_ HWND hWnd);
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AllowSetForegroundWindow( AllowSetForegroundWindow(
__in DWORD dwProcessId); _In_ DWORD dwProcessId);
#define ASFW_ANY ((DWORD)-1) #define ASFW_ANY ((DWORD)-1)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
LockSetForegroundWindow( LockSetForegroundWindow(
__in UINT uLockCode); _In_ UINT uLockCode);
#define LSFW_LOCK 1 #define LSFW_LOCK 1
#define LSFW_UNLOCK 2 #define LSFW_UNLOCK 2
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
WindowFromDC( WindowFromDC(
__in HDC hDC); _In_ HDC hDC);
WINUSERAPI WINUSERAPI
HDC HDC
WINAPI WINAPI
GetDC( GetDC(
__in_opt HWND hWnd); _In_opt_ HWND hWnd);
WINUSERAPI WINUSERAPI
HDC HDC
WINAPI WINAPI
GetDCEx( GetDCEx(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in_opt HRGN hrgnClip, _In_opt_ HRGN hrgnClip,
__in DWORD flags); _In_ DWORD flags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* GetDCEx() flags * GetDCEx() flags
*/ */
#define DCX_WINDOW 0x00000001L #define DCX_WINDOW 0x00000001L
#define DCX_CACHE 0x00000002L #define DCX_CACHE 0x00000002L
#define DCX_NORESETATTRS 0x00000004L #define DCX_NORESETATTRS 0x00000004L
#define DCX_CLIPCHILDREN 0x00000008L #define DCX_CLIPCHILDREN 0x00000008L
#define DCX_CLIPSIBLINGS 0x00000010L #define DCX_CLIPSIBLINGS 0x00000010L
#define DCX_PARENTCLIP 0x00000020L #define DCX_PARENTCLIP 0x00000020L
#define DCX_EXCLUDERGN 0x00000040L #define DCX_EXCLUDERGN 0x00000040L
#define DCX_INTERSECTRGN 0x00000080L #define DCX_INTERSECTRGN 0x00000080L
#define DCX_EXCLUDEUPDATE 0x00000100L #define DCX_EXCLUDEUPDATE 0x00000100L
#define DCX_INTERSECTUPDATE 0x00000200L #define DCX_INTERSECTUPDATE 0x00000200L
#define DCX_LOCKWINDOWUPDATE 0x00000400L #define DCX_LOCKWINDOWUPDATE 0x00000400L
#define DCX_VALIDATE 0x00200000L #define DCX_VALIDATE 0x00200000L
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HDC HDC
WINAPI WINAPI
GetWindowDC( GetWindowDC(
__in_opt HWND hWnd); _In_opt_ HWND hWnd);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
ReleaseDC( ReleaseDC(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in HDC hDC); _In_ HDC hDC);
WINUSERAPI WINUSERAPI
HDC HDC
WINAPI WINAPI
BeginPaint( BeginPaint(
__in HWND hWnd, _In_ HWND hWnd,
__out LPPAINTSTRUCT lpPaint); _Out_ LPPAINTSTRUCT lpPaint);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EndPaint( EndPaint(
__in HWND hWnd, _In_ HWND hWnd,
__in CONST PAINTSTRUCT *lpPaint); _In_ CONST PAINTSTRUCT *lpPaint);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetUpdateRect( GetUpdateRect(
__in HWND hWnd, _In_ HWND hWnd,
__out_opt LPRECT lpRect, _Out_opt_ LPRECT lpRect,
__in BOOL bErase); _In_ BOOL bErase);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetUpdateRgn( GetUpdateRgn(
__in HWND hWnd, _In_ HWND hWnd,
__in HRGN hRgn, _In_ HRGN hRgn,
__in BOOL bErase); _In_ BOOL bErase);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
SetWindowRgn( SetWindowRgn(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HRGN hRgn, _In_opt_ HRGN hRgn,
__in BOOL bRedraw); _In_ BOOL bRedraw);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetWindowRgn( GetWindowRgn(
__in HWND hWnd, _In_ HWND hWnd,
__in HRGN hRgn); _In_ HRGN hRgn);
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetWindowRgnBox( GetWindowRgnBox(
__in HWND hWnd, _In_ HWND hWnd,
__out LPRECT lprc); _Out_ LPRECT lprc);
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
ExcludeUpdateRgn( ExcludeUpdateRgn(
__in HDC hDC, _In_ HDC hDC,
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InvalidateRect( InvalidateRect(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in_opt CONST RECT *lpRect, _In_opt_ CONST RECT *lpRect,
__in BOOL bErase); _In_ BOOL bErase);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ValidateRect( ValidateRect(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in_opt CONST RECT *lpRect); _In_opt_ CONST RECT *lpRect);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InvalidateRgn( InvalidateRgn(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HRGN hRgn, _In_opt_ HRGN hRgn,
__in BOOL bErase); _In_ BOOL bErase);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ValidateRgn( ValidateRgn(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HRGN hRgn); _In_opt_ HRGN hRgn);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
RedrawWindow( RedrawWindow(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in_opt CONST RECT *lprcUpdate, _In_opt_ CONST RECT *lprcUpdate,
__in_opt HRGN hrgnUpdate, _In_opt_ HRGN hrgnUpdate,
__in UINT flags); _In_ UINT flags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* RedrawWindow() flags * RedrawWindow() flags
*/ */
#define RDW_INVALIDATE 0x0001 #define RDW_INVALIDATE 0x0001
#define RDW_INTERNALPAINT 0x0002 #define RDW_INTERNALPAINT 0x0002
#define RDW_ERASE 0x0004 #define RDW_ERASE 0x0004
#define RDW_VALIDATE 0x0008 #define RDW_VALIDATE 0x0008
#define RDW_NOINTERNALPAINT 0x0010 #define RDW_NOINTERNALPAINT 0x0010
skipping to change at line 6987 skipping to change at line 8117
#define RDW_NOCHILDREN 0x0040 #define RDW_NOCHILDREN 0x0040
#define RDW_ALLCHILDREN 0x0080 #define RDW_ALLCHILDREN 0x0080
#define RDW_UPDATENOW 0x0100 #define RDW_UPDATENOW 0x0100
#define RDW_ERASENOW 0x0200 #define RDW_ERASENOW 0x0200
#define RDW_FRAME 0x0400 #define RDW_FRAME 0x0400
#define RDW_NOFRAME 0x0800 #define RDW_NOFRAME 0x0800
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* LockWindowUpdate API * LockWindowUpdate API
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
LockWindowUpdate( LockWindowUpdate(
__in_opt HWND hWndLock); _In_opt_ HWND hWndLock);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ScrollWindow( ScrollWindow(
__in HWND hWnd, _In_ HWND hWnd,
__in int XAmount, _In_ int XAmount,
__in int YAmount, _In_ int YAmount,
__in_opt CONST RECT *lpRect, _In_opt_ CONST RECT *lpRect,
__in_opt CONST RECT *lpClipRect); _In_opt_ CONST RECT *lpClipRect);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ScrollDC( ScrollDC(
__in HDC hDC, _In_ HDC hDC,
__in int dx, _In_ int dx,
__in int dy, _In_ int dy,
__in_opt CONST RECT *lprcScroll, _In_opt_ CONST RECT *lprcScroll,
__in_opt CONST RECT *lprcClip, _In_opt_ CONST RECT *lprcClip,
__in_opt HRGN hrgnUpdate, _In_opt_ HRGN hrgnUpdate,
__out_opt LPRECT lprcUpdate); _Out_opt_ LPRECT lprcUpdate);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
ScrollWindowEx( ScrollWindowEx(
__in HWND hWnd, _In_ HWND hWnd,
__in int dx, _In_ int dx,
__in int dy, _In_ int dy,
__in_opt CONST RECT *prcScroll, _In_opt_ CONST RECT *prcScroll,
__in_opt CONST RECT *prcClip, _In_opt_ CONST RECT *prcClip,
__in_opt HRGN hrgnUpdate, _In_opt_ HRGN hrgnUpdate,
__out_opt LPRECT prcUpdate, _Out_opt_ LPRECT prcUpdate,
__in UINT flags); _In_ UINT flags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */ #define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */
#define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */ #define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */
#define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACK GROUND */ #define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACK GROUND */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define SW_SMOOTHSCROLL 0x0010 /* Use smooth scrolling */ #define SW_SMOOTHSCROLL 0x0010 /* Use smooth scrolling */
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef NOSCROLL #ifndef NOSCROLL
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
SetScrollPos( SetScrollPos(
__in HWND hWnd, _In_ HWND hWnd,
__in int nBar, _In_ int nBar,
__in int nPos, _In_ int nPos,
__in BOOL bRedraw); _In_ BOOL bRedraw);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetScrollPos( GetScrollPos(
__in HWND hWnd, _In_ HWND hWnd,
__in int nBar); _In_ int nBar);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetScrollRange( SetScrollRange(
__in HWND hWnd, _In_ HWND hWnd,
__in int nBar, _In_ int nBar,
__in int nMinPos, _In_ int nMinPos,
__in int nMaxPos, _In_ int nMaxPos,
__in BOOL bRedraw); _In_ BOOL bRedraw);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetScrollRange( GetScrollRange(
__in HWND hWnd, _In_ HWND hWnd,
__in int nBar, _In_ int nBar,
__out LPINT lpMinPos, _Out_ LPINT lpMinPos,
__out LPINT lpMaxPos); _Out_ LPINT lpMaxPos);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ShowScrollBar( ShowScrollBar(
__in HWND hWnd, _In_ HWND hWnd,
__in int wBar, _In_ int wBar,
__in BOOL bShow); _In_ BOOL bShow);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnableScrollBar( EnableScrollBar(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT wSBflags, _In_ UINT wSBflags,
__in UINT wArrows); _In_ UINT wArrows);
/* /*
* EnableScrollBar() flags * EnableScrollBar() flags
*/ */
#define ESB_ENABLE_BOTH 0x0000 #define ESB_ENABLE_BOTH 0x0000
#define ESB_DISABLE_BOTH 0x0003 #define ESB_DISABLE_BOTH 0x0003
#define ESB_DISABLE_LEFT 0x0001 #define ESB_DISABLE_LEFT 0x0001
#define ESB_DISABLE_RIGHT 0x0002 #define ESB_DISABLE_RIGHT 0x0002
skipping to change at line 7113 skipping to change at line 8252
#define ESB_DISABLE_LTUP ESB_DISABLE_LEFT #define ESB_DISABLE_LTUP ESB_DISABLE_LEFT
#define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT #define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT
#endif /* !NOSCROLL */ #endif /* !NOSCROLL */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetPropA( SetPropA(
__in HWND hWnd, _In_ HWND hWnd,
__in LPCSTR lpString, _In_ LPCSTR lpString,
__in_opt HANDLE hData); _In_opt_ HANDLE hData);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetPropW( SetPropW(
__in HWND hWnd, _In_ HWND hWnd,
__in LPCWSTR lpString, _In_ LPCWSTR lpString,
__in_opt HANDLE hData); _In_opt_ HANDLE hData);
#ifdef UNICODE #ifdef UNICODE
#define SetProp SetPropW #define SetProp SetPropW
#else #else
#define SetProp SetPropA #define SetProp SetPropA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
GetPropA( GetPropA(
__in HWND hWnd, _In_ HWND hWnd,
__in LPCSTR lpString); _In_ LPCSTR lpString);
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
GetPropW( GetPropW(
__in HWND hWnd, _In_ HWND hWnd,
__in LPCWSTR lpString); _In_ LPCWSTR lpString);
#ifdef UNICODE #ifdef UNICODE
#define GetProp GetPropW #define GetProp GetPropW
#else #else
#define GetProp GetPropA #define GetProp GetPropA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
RemovePropA( RemovePropA(
__in HWND hWnd, _In_ HWND hWnd,
__in LPCSTR lpString); _In_ LPCSTR lpString);
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
RemovePropW( RemovePropW(
__in HWND hWnd, _In_ HWND hWnd,
__in LPCWSTR lpString); _In_ LPCWSTR lpString);
#ifdef UNICODE #ifdef UNICODE
#define RemoveProp RemovePropW #define RemoveProp RemovePropW
#else #else
#define RemoveProp RemovePropA #define RemoveProp RemovePropA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
EnumPropsExA( EnumPropsExA(
__in HWND hWnd, _In_ HWND hWnd,
__in PROPENUMPROCEXA lpEnumFunc, _In_ PROPENUMPROCEXA lpEnumFunc,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
EnumPropsExW( EnumPropsExW(
__in HWND hWnd, _In_ HWND hWnd,
__in PROPENUMPROCEXW lpEnumFunc, _In_ PROPENUMPROCEXW lpEnumFunc,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define EnumPropsEx EnumPropsExW #define EnumPropsEx EnumPropsExW
#else #else
#define EnumPropsEx EnumPropsExA #define EnumPropsEx EnumPropsExA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
EnumPropsA( EnumPropsA(
__in HWND hWnd, _In_ HWND hWnd,
__in PROPENUMPROCA lpEnumFunc); _In_ PROPENUMPROCA lpEnumFunc);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
EnumPropsW( EnumPropsW(
__in HWND hWnd, _In_ HWND hWnd,
__in PROPENUMPROCW lpEnumFunc); _In_ PROPENUMPROCW lpEnumFunc);
#ifdef UNICODE #ifdef UNICODE
#define EnumProps EnumPropsW #define EnumProps EnumPropsW
#else #else
#define EnumProps EnumPropsA #define EnumProps EnumPropsA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetWindowTextA( SetWindowTextA(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt LPCSTR lpString); _In_opt_ LPCSTR lpString);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetWindowTextW( SetWindowTextW(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt LPCWSTR lpString); _In_opt_ LPCWSTR lpString);
#ifdef UNICODE #ifdef UNICODE
#define SetWindowText SetWindowTextW #define SetWindowText SetWindowTextW
#else #else
#define SetWindowText SetWindowTextA #define SetWindowText SetWindowTextA
#endif // !UNICODE #endif // !UNICODE
_Ret_range_(0, nMaxCount)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetWindowTextA( GetWindowTextA(
__in HWND hWnd, _In_ HWND hWnd,
__out_ecount(nMaxCount) LPSTR lpString, _Out_writes_(nMaxCount) LPSTR lpString,
__in int nMaxCount); _In_ int nMaxCount);
_Ret_range_(0, nMaxCount)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetWindowTextW( GetWindowTextW(
__in HWND hWnd, _In_ HWND hWnd,
__out_ecount(nMaxCount) LPWSTR lpString, _Out_writes_(nMaxCount) LPWSTR lpString,
__in int nMaxCount); _In_ int nMaxCount);
#ifdef UNICODE #ifdef UNICODE
#define GetWindowText GetWindowTextW #define GetWindowText GetWindowTextW
#else #else
#define GetWindowText GetWindowTextA #define GetWindowText GetWindowTextA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetWindowTextLengthA( GetWindowTextLengthA(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetWindowTextLengthW( GetWindowTextLengthW(
__in HWND hWnd); _In_ HWND hWnd);
#ifdef UNICODE #ifdef UNICODE
#define GetWindowTextLength GetWindowTextLengthW #define GetWindowTextLength GetWindowTextLengthW
#else #else
#define GetWindowTextLength GetWindowTextLengthA #define GetWindowTextLength GetWindowTextLengthA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetClientRect( GetClientRect(
__in HWND hWnd, _In_ HWND hWnd,
__out LPRECT lpRect); _Out_ LPRECT lpRect);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetWindowRect( GetWindowRect(
__in HWND hWnd, _In_ HWND hWnd,
__out LPRECT lpRect); _Out_ LPRECT lpRect);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AdjustWindowRect( AdjustWindowRect(
__inout LPRECT lpRect, _Inout_ LPRECT lpRect,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in BOOL bMenu); _In_ BOOL bMenu);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
AdjustWindowRectEx( AdjustWindowRectEx(
__inout LPRECT lpRect, _Inout_ LPRECT lpRect,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in BOOL bMenu, _In_ BOOL bMenu,
__in DWORD dwExStyle); _In_ DWORD dwExStyle);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define HELPINFO_WINDOW 0x0001 #define HELPINFO_WINDOW 0x0001
#define HELPINFO_MENUITEM 0x0002 #define HELPINFO_MENUITEM 0x0002
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagHELPINFO /* Structure pointed to by lParam of WM_HELP */ typedef struct tagHELPINFO /* Structure pointed to by lParam of WM_HELP */
{ {
UINT cbSize; /* Size in bytes of this struct */ UINT cbSize; /* Size in bytes of this struct */
int iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM * / int iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM * /
int iCtrlId; /* Control Id or a Menu item Id. */ int iCtrlId; /* Control Id or a Menu item Id. */
HANDLE hItemHandle; /* hWnd of control or hMenu. */ HANDLE hItemHandle; /* hWnd of control or hMenu. */
DWORD_PTR dwContextId; /* Context Id associated with this item */ DWORD_PTR dwContextId; /* Context Id associated with this item */
POINT MousePos; /* Mouse Position in screen co-ordinates */ POINT MousePos; /* Mouse Position in screen co-ordinates */
} HELPINFO, FAR *LPHELPINFO; } HELPINFO, FAR *LPHELPINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetWindowContextHelpId( SetWindowContextHelpId(
__in HWND, _In_ HWND,
__in DWORD); _In_ DWORD);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetWindowContextHelpId( GetWindowContextHelpId(
__in HWND); _In_ HWND);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetMenuContextHelpId( SetMenuContextHelpId(
__in HMENU, _In_ HMENU,
__in DWORD); _In_ DWORD);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetMenuContextHelpId( GetMenuContextHelpId(
__in HMENU); _In_ HMENU);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#ifndef NOMB #ifndef NOMB
/* /*
* MessageBox() Flags * MessageBox() Flags
*/ */
#define MB_OK 0x00000000L #define MB_OK 0x00000000L
#define MB_OKCANCEL 0x00000001L #define MB_OKCANCEL 0x00000001L
skipping to change at line 7398 skipping to change at line 8549
#endif #endif
#define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L #define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L
#endif #endif
#define MB_TYPEMASK 0x0000000FL #define MB_TYPEMASK 0x0000000FL
#define MB_ICONMASK 0x000000F0L #define MB_ICONMASK 0x000000F0L
#define MB_DEFMASK 0x00000F00L #define MB_DEFMASK 0x00000F00L
#define MB_MODEMASK 0x00003000L #define MB_MODEMASK 0x00003000L
#define MB_MISCMASK 0x0000C000L #define MB_MISCMASK 0x0000C000L
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
MessageBoxA( MessageBoxA(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in_opt LPCSTR lpText, _In_opt_ LPCSTR lpText,
__in_opt LPCSTR lpCaption, _In_opt_ LPCSTR lpCaption,
__in UINT uType); _In_ UINT uType);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
MessageBoxW( MessageBoxW(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in_opt LPCWSTR lpText, _In_opt_ LPCWSTR lpText,
__in_opt LPCWSTR lpCaption, _In_opt_ LPCWSTR lpCaption,
__in UINT uType); _In_ UINT uType);
#ifdef UNICODE #ifdef UNICODE
#define MessageBox MessageBoxW #define MessageBox MessageBoxW
#else #else
#define MessageBox MessageBoxA #define MessageBox MessageBoxA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef MessageBox #undef MessageBox
__inline __inline
int int
skipping to change at line 7448 skipping to change at line 8602
lpCaption, lpCaption,
uType uType
); );
} }
#endif /* _M_CEE */ #endif /* _M_CEE */
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
MessageBoxExA( MessageBoxExA(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in_opt LPCSTR lpText, _In_opt_ LPCSTR lpText,
__in_opt LPCSTR lpCaption, _In_opt_ LPCSTR lpCaption,
__in UINT uType, _In_ UINT uType,
__in WORD wLanguageId); _In_ WORD wLanguageId);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
MessageBoxExW( MessageBoxExW(
__in_opt HWND hWnd, _In_opt_ HWND hWnd,
__in_opt LPCWSTR lpText, _In_opt_ LPCWSTR lpText,
__in_opt LPCWSTR lpCaption, _In_opt_ LPCWSTR lpCaption,
__in UINT uType, _In_ UINT uType,
__in WORD wLanguageId); _In_ WORD wLanguageId);
#ifdef UNICODE #ifdef UNICODE
#define MessageBoxEx MessageBoxExW #define MessageBoxEx MessageBoxExW
#else #else
#define MessageBoxEx MessageBoxExA #define MessageBoxEx MessageBoxExA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
typedef VOID (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo); typedef VOID (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
skipping to change at line 7512 skipping to change at line 8666
#else #else
typedef MSGBOXPARAMSA MSGBOXPARAMS; typedef MSGBOXPARAMSA MSGBOXPARAMS;
typedef PMSGBOXPARAMSA PMSGBOXPARAMS; typedef PMSGBOXPARAMSA PMSGBOXPARAMS;
typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS; typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS;
#endif // UNICODE #endif // UNICODE
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
MessageBoxIndirectA( MessageBoxIndirectA(
__in CONST MSGBOXPARAMSA * lpmbp); _In_ CONST MSGBOXPARAMSA * lpmbp);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
MessageBoxIndirectW( MessageBoxIndirectW(
__in CONST MSGBOXPARAMSW * lpmbp); _In_ CONST MSGBOXPARAMSW * lpmbp);
#ifdef UNICODE #ifdef UNICODE
#define MessageBoxIndirect MessageBoxIndirectW #define MessageBoxIndirect MessageBoxIndirectW
#else #else
#define MessageBoxIndirect MessageBoxIndirectA #define MessageBoxIndirect MessageBoxIndirectA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
MessageBeep( MessageBeep(
__in UINT uType); _In_ UINT uType);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOMB */ #endif /* !NOMB */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
ShowCursor( ShowCursor(
__in BOOL bShow); _In_ BOOL bShow);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetCursorPos( SetCursorPos(
__in int X, _In_ int X,
__in int Y); _In_ int Y);
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetPhysicalCursorPos( SetPhysicalCursorPos(
__in int X, _In_ int X,
__in int Y); _In_ int Y);
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
WINUSERAPI WINUSERAPI
HCURSOR HCURSOR
WINAPI WINAPI
SetCursor( SetCursor(
__in_opt HCURSOR hCursor); _In_opt_ HCURSOR hCursor);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetCursorPos( GetCursorPos(
__out LPPOINT lpPoint); _Out_ LPPOINT lpPoint);
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetPhysicalCursorPos( GetPhysicalCursorPos(
__out LPPOINT lpPoint); _Out_ LPPOINT lpPoint);
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ClipCursor( ClipCursor(
__in_opt CONST RECT *lpRect); _In_opt_ CONST RECT *lpRect);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetClipCursor( GetClipCursor(
__out LPRECT lpRect); _Out_ LPRECT lpRect);
WINUSERAPI WINUSERAPI
HCURSOR HCURSOR
WINAPI WINAPI
GetCursor( GetCursor(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CreateCaret( CreateCaret(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HBITMAP hBitmap, _In_opt_ HBITMAP hBitmap,
__in int nWidth, _In_ int nWidth,
__in int nHeight); _In_ int nHeight);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetCaretBlinkTime( GetCaretBlinkTime(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetCaretBlinkTime( SetCaretBlinkTime(
__in UINT uMSeconds); _In_ UINT uMSeconds);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DestroyCaret( DestroyCaret(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
HideCaret( HideCaret(
__in_opt HWND hWnd); _In_opt_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ShowCaret( ShowCaret(
__in_opt HWND hWnd); _In_opt_ HWND hWnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetCaretPos( SetCaretPos(
__in int X, _In_ int X,
__in int Y); _In_ int Y);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetCaretPos( GetCaretPos(
__out LPPOINT lpPoint); _Out_ LPPOINT lpPoint);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ClientToScreen( ClientToScreen(
__in HWND hWnd, _In_ HWND hWnd,
__inout LPPOINT lpPoint); _Inout_ LPPOINT lpPoint);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ScreenToClient( ScreenToClient(
__in HWND hWnd, _In_ HWND hWnd,
__inout LPPOINT lpPoint); _Inout_ LPPOINT lpPoint);
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
LogicalToPhysicalPoint( LogicalToPhysicalPoint(
__in HWND hWnd, _In_ HWND hWnd,
__inout LPPOINT lpPoint); _Inout_ LPPOINT lpPoint);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PhysicalToLogicalPoint( PhysicalToLogicalPoint(
__in HWND hWnd, _In_ HWND hWnd,
__inout LPPOINT lpPoint); _Inout_ LPPOINT lpPoint);
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
#if(WINVER >= 0x0603)
WINUSERAPI
BOOL
WINAPI
LogicalToPhysicalPointForPerMonitorDPI(
_In_opt_ HWND hWnd,
_Inout_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
PhysicalToLogicalPointForPerMonitorDPI(
_In_opt_ HWND hWnd,
_Inout_ LPPOINT lpPoint);
#endif /* WINVER >= 0x0603 */
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
MapWindowPoints( MapWindowPoints(
__in_opt HWND hWndFrom, _In_opt_ HWND hWndFrom,
__in_opt HWND hWndTo, _In_opt_ HWND hWndTo,
__inout_ecount(cPoints) LPPOINT lpPoints, _Inout_updates_(cPoints) LPPOINT lpPoints,
__in UINT cPoints); _In_ UINT cPoints);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
WindowFromPoint( WindowFromPoint(
__in POINT Point); _In_ POINT Point);
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
WindowFromPhysicalPoint( WindowFromPhysicalPoint(
__in POINT Point); _In_ POINT Point);
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
ChildWindowFromPoint( ChildWindowFromPoint(
__in HWND hWndParent, _In_ HWND hWndParent,
__in POINT Point); _In_ POINT Point);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define CWP_ALL 0x0000 #define CWP_ALL 0x0000
#define CWP_SKIPINVISIBLE 0x0001 #define CWP_SKIPINVISIBLE 0x0001
#define CWP_SKIPDISABLED 0x0002 #define CWP_SKIPDISABLED 0x0002
#define CWP_SKIPTRANSPARENT 0x0004 #define CWP_SKIPTRANSPARENT 0x0004
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
ChildWindowFromPointEx( ChildWindowFromPointEx(
__in HWND hwnd, _In_ HWND hwnd,
__in POINT pt, _In_ POINT pt,
__in UINT flags); _In_ UINT flags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#ifndef NOCOLOR #ifndef NOCOLOR
/* /*
* Color Types * Color Types
*/ */
#define CTLCOLOR_MSGBOX 0 #define CTLCOLOR_MSGBOX 0
#define CTLCOLOR_EDIT 1 #define CTLCOLOR_EDIT 1
#define CTLCOLOR_LISTBOX 2 #define CTLCOLOR_LISTBOX 2
skipping to change at line 7783 skipping to change at line 8976
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define COLOR_DESKTOP COLOR_BACKGROUND #define COLOR_DESKTOP COLOR_BACKGROUND
#define COLOR_3DFACE COLOR_BTNFACE #define COLOR_3DFACE COLOR_BTNFACE
#define COLOR_3DSHADOW COLOR_BTNSHADOW #define COLOR_3DSHADOW COLOR_BTNSHADOW
#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetSysColor( GetSysColor(
__in int nIndex); _In_ int nIndex);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
HBRUSH HBRUSH
WINAPI WINAPI
GetSysColorBrush( GetSysColorBrush(
__in int nIndex); _In_ int nIndex);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetSysColors( SetSysColors(
__in int cElements, _In_ int cElements,
__in_ecount(cElements) CONST INT * lpaElements, _In_reads_(cElements) CONST INT * lpaElements,
__in_ecount(cElements) CONST COLORREF * lpaRgbValues); _In_reads_(cElements) CONST COLORREF * lpaRgbValues);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOCOLOR */ #endif /* !NOCOLOR */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DrawFocusRect( DrawFocusRect(
__in HDC hDC, _In_ HDC hDC,
__in CONST RECT * lprc); _In_ CONST RECT * lprc);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
FillRect( FillRect(
__in HDC hDC, _In_ HDC hDC,
__in CONST RECT *lprc, _In_ CONST RECT *lprc,
__in HBRUSH hbr); _In_ HBRUSH hbr);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
FrameRect( FrameRect(
__in HDC hDC, _In_ HDC hDC,
__in CONST RECT *lprc, _In_ CONST RECT *lprc,
__in HBRUSH hbr); _In_ HBRUSH hbr);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InvertRect( InvertRect(
__in HDC hDC, _In_ HDC hDC,
__in CONST RECT *lprc); _In_ CONST RECT *lprc);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetRect( SetRect(
__out LPRECT lprc, _Out_ LPRECT lprc,
__in int xLeft, _In_ int xLeft,
__in int yTop, _In_ int yTop,
__in int xRight, _In_ int xRight,
__in int yBottom); _In_ int yBottom);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetRectEmpty( SetRectEmpty(
__out LPRECT lprc); _Out_ LPRECT lprc);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CopyRect( CopyRect(
__out LPRECT lprcDst, _Out_ LPRECT lprcDst,
__in CONST RECT *lprcSrc); _In_ CONST RECT *lprcSrc);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
InflateRect( InflateRect(
__inout LPRECT lprc, _Inout_ LPRECT lprc,
__in int dx, _In_ int dx,
__in int dy); _In_ int dy);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IntersectRect( IntersectRect(
__out LPRECT lprcDst, _Out_ LPRECT lprcDst,
__in CONST RECT *lprcSrc1, _In_ CONST RECT *lprcSrc1,
__in CONST RECT *lprcSrc2); _In_ CONST RECT *lprcSrc2);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnionRect( UnionRect(
__out LPRECT lprcDst, _Out_ LPRECT lprcDst,
__in CONST RECT *lprcSrc1, _In_ CONST RECT *lprcSrc1,
__in CONST RECT *lprcSrc2); _In_ CONST RECT *lprcSrc2);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SubtractRect( SubtractRect(
__out LPRECT lprcDst, _Out_ LPRECT lprcDst,
__in CONST RECT *lprcSrc1, _In_ CONST RECT *lprcSrc1,
__in CONST RECT *lprcSrc2); _In_ CONST RECT *lprcSrc2);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
OffsetRect( OffsetRect(
__inout LPRECT lprc, _Inout_ LPRECT lprc,
__in int dx, _In_ int dx,
__in int dy); _In_ int dy);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsRectEmpty( IsRectEmpty(
__in CONST RECT *lprc); _In_ CONST RECT *lprc);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EqualRect( EqualRect(
__in CONST RECT *lprc1, _In_ CONST RECT *lprc1,
__in CONST RECT *lprc2); _In_ CONST RECT *lprc2);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
PtInRect( PtInRect(
__in CONST RECT *lprc, _In_ CONST RECT *lprc,
__in POINT pt); _In_ POINT pt);
#ifndef NOWINOFFSETS #ifndef NOWINOFFSETS
WINUSERAPI WINUSERAPI
WORD WORD
WINAPI WINAPI
GetWindowWord( GetWindowWord(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
WINUSERAPI WINUSERAPI
WORD WORD
WINAPI WINAPI
SetWindowWord( SetWindowWord(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in WORD wNewWord); _In_ WORD wNewWord);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
GetWindowLongA( GetWindowLongA(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
GetWindowLongW( GetWindowLongW(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
#ifdef UNICODE #ifdef UNICODE
#define GetWindowLong GetWindowLongW #define GetWindowLong GetWindowLongW
#else #else
#define GetWindowLong GetWindowLongA #define GetWindowLong GetWindowLongA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
SetWindowLongA( SetWindowLongA(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in LONG dwNewLong); _In_ LONG dwNewLong);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
SetWindowLongW( SetWindowLongW(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in LONG dwNewLong); _In_ LONG dwNewLong);
#ifdef UNICODE #ifdef UNICODE
#define SetWindowLong SetWindowLongW #define SetWindowLong SetWindowLongW
#else #else
#define SetWindowLong SetWindowLongA #define SetWindowLong SetWindowLongA
#endif // !UNICODE #endif // !UNICODE
#ifdef _WIN64 #ifdef _WIN64
WINUSERAPI WINUSERAPI
LONG_PTR LONG_PTR
WINAPI WINAPI
GetWindowLongPtrA( GetWindowLongPtrA(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
WINUSERAPI WINUSERAPI
LONG_PTR LONG_PTR
WINAPI WINAPI
GetWindowLongPtrW( GetWindowLongPtrW(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
#ifdef UNICODE #ifdef UNICODE
#define GetWindowLongPtr GetWindowLongPtrW #define GetWindowLongPtr GetWindowLongPtrW
#else #else
#define GetWindowLongPtr GetWindowLongPtrA #define GetWindowLongPtr GetWindowLongPtrA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
LONG_PTR LONG_PTR
WINAPI WINAPI
SetWindowLongPtrA( SetWindowLongPtrA(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in LONG_PTR dwNewLong); _In_ LONG_PTR dwNewLong);
WINUSERAPI WINUSERAPI
LONG_PTR LONG_PTR
WINAPI WINAPI
SetWindowLongPtrW( SetWindowLongPtrW(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in LONG_PTR dwNewLong); _In_ LONG_PTR dwNewLong);
#ifdef UNICODE #ifdef UNICODE
#define SetWindowLongPtr SetWindowLongPtrW #define SetWindowLongPtr SetWindowLongPtrW
#else #else
#define SetWindowLongPtr SetWindowLongPtrA #define SetWindowLongPtr SetWindowLongPtrA
#endif // !UNICODE #endif // !UNICODE
#else /* _WIN64 */ #else /* _WIN64 */
#define GetWindowLongPtrA GetWindowLongA #define GetWindowLongPtrA GetWindowLongA
#define GetWindowLongPtrW GetWindowLongW #define GetWindowLongPtrW GetWindowLongW
skipping to change at line 8040 skipping to change at line 9242
#else #else
#define SetWindowLongPtr SetWindowLongPtrA #define SetWindowLongPtr SetWindowLongPtrA
#endif // !UNICODE #endif // !UNICODE
#endif /* _WIN64 */ #endif /* _WIN64 */
WINUSERAPI WINUSERAPI
WORD WORD
WINAPI WINAPI
GetClassWord( GetClassWord(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
WINUSERAPI WINUSERAPI
WORD WORD
WINAPI WINAPI
SetClassWord( SetClassWord(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in WORD wNewWord); _In_ WORD wNewWord);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetClassLongA( GetClassLongA(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetClassLongW( GetClassLongW(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
#ifdef UNICODE #ifdef UNICODE
#define GetClassLong GetClassLongW #define GetClassLong GetClassLongW
#else #else
#define GetClassLong GetClassLongA #define GetClassLong GetClassLongA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
SetClassLongA( SetClassLongA(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in LONG dwNewLong); _In_ LONG dwNewLong);
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
SetClassLongW( SetClassLongW(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in LONG dwNewLong); _In_ LONG dwNewLong);
#ifdef UNICODE #ifdef UNICODE
#define SetClassLong SetClassLongW #define SetClassLong SetClassLongW
#else #else
#define SetClassLong SetClassLongA #define SetClassLong SetClassLongA
#endif // !UNICODE #endif // !UNICODE
#ifdef _WIN64 #ifdef _WIN64
WINUSERAPI WINUSERAPI
ULONG_PTR ULONG_PTR
WINAPI WINAPI
GetClassLongPtrA( GetClassLongPtrA(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
WINUSERAPI WINUSERAPI
ULONG_PTR ULONG_PTR
WINAPI WINAPI
GetClassLongPtrW( GetClassLongPtrW(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex); _In_ int nIndex);
#ifdef UNICODE #ifdef UNICODE
#define GetClassLongPtr GetClassLongPtrW #define GetClassLongPtr GetClassLongPtrW
#else #else
#define GetClassLongPtr GetClassLongPtrA #define GetClassLongPtr GetClassLongPtrA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
ULONG_PTR ULONG_PTR
WINAPI WINAPI
SetClassLongPtrA( SetClassLongPtrA(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in LONG_PTR dwNewLong); _In_ LONG_PTR dwNewLong);
WINUSERAPI WINUSERAPI
ULONG_PTR ULONG_PTR
WINAPI WINAPI
SetClassLongPtrW( SetClassLongPtrW(
__in HWND hWnd, _In_ HWND hWnd,
__in int nIndex, _In_ int nIndex,
__in LONG_PTR dwNewLong); _In_ LONG_PTR dwNewLong);
#ifdef UNICODE #ifdef UNICODE
#define SetClassLongPtr SetClassLongPtrW #define SetClassLongPtr SetClassLongPtrW
#else #else
#define SetClassLongPtr SetClassLongPtrA #define SetClassLongPtr SetClassLongPtrA
#endif // !UNICODE #endif // !UNICODE
#else /* _WIN64 */ #else /* _WIN64 */
#define GetClassLongPtrA GetClassLongA #define GetClassLongPtrA GetClassLongA
#define GetClassLongPtrW GetClassLongW #define GetClassLongPtrW GetClassLongW
skipping to change at line 8156 skipping to change at line 9358
#endif /* _WIN64 */ #endif /* _WIN64 */
#endif /* !NOWINOFFSETS */ #endif /* !NOWINOFFSETS */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetProcessDefaultLayout( GetProcessDefaultLayout(
__out DWORD *pdwDefaultLayout); _Out_ DWORD *pdwDefaultLayout);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetProcessDefaultLayout( SetProcessDefaultLayout(
__in DWORD dwDefaultLayout); _In_ DWORD dwDefaultLayout);
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetDesktopWindow( GetDesktopWindow(
VOID); VOID);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetParent( GetParent(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
SetParent( SetParent(
__in HWND hWndChild, _In_ HWND hWndChild,
__in_opt HWND hWndNewParent); _In_opt_ HWND hWndNewParent);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumChildWindows( EnumChildWindows(
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in WNDENUMPROC lpEnumFunc, _In_ WNDENUMPROC lpEnumFunc,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
FindWindowA( FindWindowA(
__in_opt LPCSTR lpClassName, _In_opt_ LPCSTR lpClassName,
__in_opt LPCSTR lpWindowName); _In_opt_ LPCSTR lpWindowName);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
FindWindowW( FindWindowW(
__in_opt LPCWSTR lpClassName, _In_opt_ LPCWSTR lpClassName,
__in_opt LPCWSTR lpWindowName); _In_opt_ LPCWSTR lpWindowName);
#ifdef UNICODE #ifdef UNICODE
#define FindWindow FindWindowW #define FindWindow FindWindowW
#else #else
#define FindWindow FindWindowA #define FindWindow FindWindowA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
FindWindowExA( FindWindowExA(
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt HWND hWndChildAfter, _In_opt_ HWND hWndChildAfter,
__in_opt LPCSTR lpszClass, _In_opt_ LPCSTR lpszClass,
__in_opt LPCSTR lpszWindow); _In_opt_ LPCSTR lpszWindow);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
FindWindowExW( FindWindowExW(
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt HWND hWndChildAfter, _In_opt_ HWND hWndChildAfter,
__in_opt LPCWSTR lpszClass, _In_opt_ LPCWSTR lpszClass,
__in_opt LPCWSTR lpszWindow); _In_opt_ LPCWSTR lpszWindow);
#ifdef UNICODE #ifdef UNICODE
#define FindWindowEx FindWindowExW #define FindWindowEx FindWindowExW
#else #else
#define FindWindowEx FindWindowExA #define FindWindowEx FindWindowExA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetShellWindow( GetShellWindow(
VOID); VOID);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
RegisterShellHookWindow( RegisterShellHookWindow(
__in HWND hwnd); _In_ HWND hwnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DeregisterShellHookWindow( DeregisterShellHookWindow(
__in HWND hwnd); _In_ HWND hwnd);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumWindows( EnumWindows(
__in WNDENUMPROC lpEnumFunc, _In_ WNDENUMPROC lpEnumFunc,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumThreadWindows( EnumThreadWindows(
__in DWORD dwThreadId, _In_ DWORD dwThreadId,
__in WNDENUMPROC lpfn, _In_ WNDENUMPROC lpfn,
__in LPARAM lParam); _In_ LPARAM lParam);
#define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTa sk), lpfn, lParam) #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTa sk), lpfn, lParam)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetClassNameA( GetClassNameA(
__in HWND hWnd, _In_ HWND hWnd,
__out_ecount_part(nMaxCount, return) LPSTR lpClassName, _Out_writes_to_(nMaxCount, return) LPSTR lpClassName,
__in int nMaxCount _In_ int nMaxCount
); );
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
GetClassNameW( GetClassNameW(
__in HWND hWnd, _In_ HWND hWnd,
__out_ecount_part(nMaxCount, return) LPWSTR lpClassName, _Out_writes_to_(nMaxCount, return) LPWSTR lpClassName,
__in int nMaxCount _In_ int nMaxCount
); );
#ifdef UNICODE #ifdef UNICODE
#define GetClassName GetClassNameW #define GetClassName GetClassNameW
#else #else
#define GetClassName GetClassNameA #define GetClassName GetClassNameA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef GetClassName #undef GetClassName
__inline __inline
skipping to change at line 8318 skipping to change at line 9520
lpClassName, lpClassName,
nMaxCount nMaxCount
); );
} }
#endif /* _M_CEE */ #endif /* _M_CEE */
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetTopWindow( GetTopWindow(
__in_opt HWND hWnd); _In_opt_ HWND hWnd);
#define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd) #define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd)
#define GetSysModalWindow() (NULL) #define GetSysModalWindow() (NULL)
#define SetSysModalWindow(hWnd) (NULL) #define SetSysModalWindow(hWnd) (NULL)
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetWindowThreadProcessId( GetWindowThreadProcessId(
__in HWND hWnd, _In_ HWND hWnd,
__out_opt LPDWORD lpdwProcessId); _Out_opt_ LPDWORD lpdwProcessId);
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsGUIThread( IsGUIThread(
__in BOOL bConvert); _In_ BOOL bConvert);
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#define GetWindowTask(hWnd) \ #define GetWindowTask(hWnd) \
((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL)) ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL))
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetLastActivePopup( GetLastActivePopup(
__in HWND hWnd); _In_ HWND hWnd);
/* /*
* GetWindow() Constants * GetWindow() Constants
*/ */
#define GW_HWNDFIRST 0 #define GW_HWNDFIRST 0
#define GW_HWNDLAST 1 #define GW_HWNDLAST 1
#define GW_HWNDNEXT 2 #define GW_HWNDNEXT 2
#define GW_HWNDPREV 3 #define GW_HWNDPREV 3
#define GW_OWNER 4 #define GW_OWNER 4
#define GW_CHILD 5 #define GW_CHILD 5
skipping to change at line 8369 skipping to change at line 9571
#define GW_MAX 5 #define GW_MAX 5
#else #else
#define GW_ENABLEDPOPUP 6 #define GW_ENABLEDPOPUP 6
#define GW_MAX 6 #define GW_MAX 6
#endif #endif
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetWindow( GetWindow(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT uCmd); _In_ UINT uCmd);
#ifndef NOWH #ifndef NOWH
#ifdef STRICT #ifdef STRICT
WINUSERAPI WINUSERAPI
HHOOK HHOOK
WINAPI WINAPI
SetWindowsHookA( SetWindowsHookA(
__in int nFilterType, _In_ int nFilterType,
__in HOOKPROC pfnFilterProc); _In_ HOOKPROC pfnFilterProc);
WINUSERAPI WINUSERAPI
HHOOK HHOOK
WINAPI WINAPI
SetWindowsHookW( SetWindowsHookW(
__in int nFilterType, _In_ int nFilterType,
__in HOOKPROC pfnFilterProc); _In_ HOOKPROC pfnFilterProc);
#ifdef UNICODE #ifdef UNICODE
#define SetWindowsHook SetWindowsHookW #define SetWindowsHook SetWindowsHookW
#else #else
#define SetWindowsHook SetWindowsHookA #define SetWindowsHook SetWindowsHookA
#endif // !UNICODE #endif // !UNICODE
#else /* !STRICT */ #else /* !STRICT */
WINUSERAPI WINUSERAPI
HOOKPROC HOOKPROC
WINAPI WINAPI
SetWindowsHookA( SetWindowsHookA(
__in int nFilterType, _In_ int nFilterType,
__in HOOKPROC pfnFilterProc); _In_ HOOKPROC pfnFilterProc);
WINUSERAPI WINUSERAPI
HOOKPROC HOOKPROC
WINAPI WINAPI
SetWindowsHookW( SetWindowsHookW(
__in int nFilterType, _In_ int nFilterType,
__in HOOKPROC pfnFilterProc); _In_ HOOKPROC pfnFilterProc);
#ifdef UNICODE #ifdef UNICODE
#define SetWindowsHook SetWindowsHookW #define SetWindowsHook SetWindowsHookW
#else #else
#define SetWindowsHook SetWindowsHookA #define SetWindowsHook SetWindowsHookA
#endif // !UNICODE #endif // !UNICODE
#endif /* !STRICT */ #endif /* !STRICT */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnhookWindowsHook( UnhookWindowsHook(
__in int nCode, _In_ int nCode,
__in HOOKPROC pfnFilterProc); _In_ HOOKPROC pfnFilterProc);
WINUSERAPI WINUSERAPI
HHOOK HHOOK
WINAPI WINAPI
SetWindowsHookExA( SetWindowsHookExA(
__in int idHook, _In_ int idHook,
__in HOOKPROC lpfn, _In_ HOOKPROC lpfn,
__in_opt HINSTANCE hmod, _In_opt_ HINSTANCE hmod,
__in DWORD dwThreadId); _In_ DWORD dwThreadId);
WINUSERAPI WINUSERAPI
HHOOK HHOOK
WINAPI WINAPI
SetWindowsHookExW( SetWindowsHookExW(
__in int idHook, _In_ int idHook,
__in HOOKPROC lpfn, _In_ HOOKPROC lpfn,
__in_opt HINSTANCE hmod, _In_opt_ HINSTANCE hmod,
__in DWORD dwThreadId); _In_ DWORD dwThreadId);
#ifdef UNICODE #ifdef UNICODE
#define SetWindowsHookEx SetWindowsHookExW #define SetWindowsHookEx SetWindowsHookExW
#else #else
#define SetWindowsHookEx SetWindowsHookExA #define SetWindowsHookEx SetWindowsHookExA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnhookWindowsHookEx( UnhookWindowsHookEx(
__in HHOOK hhk); _In_ HHOOK hhk);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
CallNextHookEx( CallNextHookEx(
__in_opt HHOOK hhk, _In_opt_ HHOOK hhk,
__in int nCode, _In_ int nCode,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
/* /*
* Macros for source-level compatibility with old functions. * Macros for source-level compatibility with old functions.
*/ */
#ifdef STRICT #ifdef STRICT
#define DefHookProc(nCode, wParam, lParam, phhk)\ #define DefHookProc(nCode, wParam, lParam, phhk)\
CallNextHookEx(*phhk, nCode, wParam, lParam) CallNextHookEx(*phhk, nCode, wParam, lParam)
#else #else
#define DefHookProc(nCode, wParam, lParam, phhk)\ #define DefHookProc(nCode, wParam, lParam, phhk)\
CallNextHookEx((HHOOK)*phhk, nCode, wParam, lParam) CallNextHookEx((HHOOK)*phhk, nCode, wParam, lParam)
#endif /* STRICT */ #endif /* STRICT */
#endif /* !NOWH */ #endif /* !NOWH */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NOMENUS #ifndef NOMENUS
/* ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags */ /* ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags */
/* /*
* Menu flags for Add/Check/EnableMenuItem() * Menu flags for Add/Check/EnableMenuItem()
*/ */
#define MF_INSERT 0x00000000L #define MF_INSERT 0x00000000L
#define MF_CHANGE 0x00000080L #define MF_CHANGE 0x00000080L
#define MF_APPEND 0x00000100L #define MF_APPEND 0x00000100L
#define MF_DELETE 0x00000200L #define MF_DELETE 0x00000200L
skipping to change at line 8544 skipping to change at line 9749
#define MFS_GRAYED 0x00000003L #define MFS_GRAYED 0x00000003L
#define MFS_DISABLED MFS_GRAYED #define MFS_DISABLED MFS_GRAYED
#define MFS_CHECKED MF_CHECKED #define MFS_CHECKED MF_CHECKED
#define MFS_HILITE MF_HILITE #define MFS_HILITE MF_HILITE
#define MFS_ENABLED MF_ENABLED #define MFS_ENABLED MF_ENABLED
#define MFS_UNCHECKED MF_UNCHECKED #define MFS_UNCHECKED MF_UNCHECKED
#define MFS_UNHILITE MF_UNHILITE #define MFS_UNHILITE MF_UNHILITE
#define MFS_DEFAULT MF_DEFAULT #define MFS_DEFAULT MF_DEFAULT
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CheckMenuRadioItem( CheckMenuRadioItem(
__in HMENU hmenu, _In_ HMENU hmenu,
__in UINT first, _In_ UINT first,
__in UINT last, _In_ UINT last,
__in UINT check, _In_ UINT check,
__in UINT flags); _In_ UINT flags);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
/* /*
* Menu item resource format * Menu item resource format
*/ */
typedef struct { typedef struct {
WORD versionNumber; WORD versionNumber;
WORD offset; WORD offset;
} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER; } MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
typedef struct { // version 0 typedef struct { // version 0
WORD mtOption; WORD mtOption;
WORD mtID; WORD mtID;
WCHAR mtString[1]; WCHAR mtString[1];
} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE; } MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
#define MF_END 0x00000080L #define MF_END 0x00000080L
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOMENUS */ #endif /* !NOMENUS */
#ifndef NOSYSCOMMANDS #ifndef NOSYSCOMMANDS
/* /*
* System Menu Command Values * System Menu Command Values
*/ */
#define SC_SIZE 0xF000 #define SC_SIZE 0xF000
#define SC_MOVE 0xF010 #define SC_MOVE 0xF010
#define SC_MINIMIZE 0xF020 #define SC_MINIMIZE 0xF020
skipping to change at line 8620 skipping to change at line 9831
*/ */
#define SC_ICON SC_MINIMIZE #define SC_ICON SC_MINIMIZE
#define SC_ZOOM SC_MAXIMIZE #define SC_ZOOM SC_MAXIMIZE
#endif /* !NOSYSCOMMANDS */ #endif /* !NOSYSCOMMANDS */
/* /*
* Resource Loading Routines * Resource Loading Routines
*/ */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HBITMAP HBITMAP
WINAPI WINAPI
LoadBitmapA( LoadBitmapA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpBitmapName); _In_ LPCSTR lpBitmapName);
WINUSERAPI WINUSERAPI
HBITMAP HBITMAP
WINAPI WINAPI
LoadBitmapW( LoadBitmapW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpBitmapName); _In_ LPCWSTR lpBitmapName);
#ifdef UNICODE #ifdef UNICODE
#define LoadBitmap LoadBitmapW #define LoadBitmap LoadBitmapW
#else #else
#define LoadBitmap LoadBitmapA #define LoadBitmap LoadBitmapA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HCURSOR HCURSOR
WINAPI WINAPI
LoadCursorA( LoadCursorA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpCursorName); _In_ LPCSTR lpCursorName);
WINUSERAPI WINUSERAPI
HCURSOR HCURSOR
WINAPI WINAPI
LoadCursorW( LoadCursorW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpCursorName); _In_ LPCWSTR lpCursorName);
#ifdef UNICODE #ifdef UNICODE
#define LoadCursor LoadCursorW #define LoadCursor LoadCursorW
#else #else
#define LoadCursor LoadCursorA #define LoadCursor LoadCursorA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HCURSOR HCURSOR
WINAPI WINAPI
LoadCursorFromFileA( LoadCursorFromFileA(
__in LPCSTR lpFileName); _In_ LPCSTR lpFileName);
WINUSERAPI WINUSERAPI
HCURSOR HCURSOR
WINAPI WINAPI
LoadCursorFromFileW( LoadCursorFromFileW(
__in LPCWSTR lpFileName); _In_ LPCWSTR lpFileName);
#ifdef UNICODE #ifdef UNICODE
#define LoadCursorFromFile LoadCursorFromFileW #define LoadCursorFromFile LoadCursorFromFileW
#else #else
#define LoadCursorFromFile LoadCursorFromFileA #define LoadCursorFromFile LoadCursorFromFileA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HCURSOR HCURSOR
WINAPI WINAPI
CreateCursor( CreateCursor(
__in_opt HINSTANCE hInst, _In_opt_ HINSTANCE hInst,
__in int xHotSpot, _In_ int xHotSpot,
__in int yHotSpot, _In_ int yHotSpot,
__in int nWidth, _In_ int nWidth,
__in int nHeight, _In_ int nHeight,
__in CONST VOID *pvANDPlane, _In_ CONST VOID *pvANDPlane,
__in CONST VOID *pvXORPlane); _In_ CONST VOID *pvXORPlane);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DestroyCursor( DestroyCursor(
__in HCURSOR hCursor); _In_ HCURSOR hCursor);
#ifndef _MAC #ifndef _MAC
#define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur))) #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur)))
#else #else
WINUSERAPI WINUSERAPI
HCURSOR HCURSOR
WINAPI WINAPI
CopyCursor( CopyCursor(
__in HCURSOR hCursor); _In_ HCURSOR hCursor);
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Standard Cursor IDs * Standard Cursor IDs
*/ */
#define IDC_ARROW MAKEINTRESOURCE(32512) #define IDC_ARROW MAKEINTRESOURCE(32512)
#define IDC_IBEAM MAKEINTRESOURCE(32513) #define IDC_IBEAM MAKEINTRESOURCE(32513)
#define IDC_WAIT MAKEINTRESOURCE(32514) #define IDC_WAIT MAKEINTRESOURCE(32514)
#define IDC_CROSS MAKEINTRESOURCE(32515) #define IDC_CROSS MAKEINTRESOURCE(32515)
#define IDC_UPARROW MAKEINTRESOURCE(32516) #define IDC_UPARROW MAKEINTRESOURCE(32516)
#define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */ #define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */
#define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW * / #define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW * /
skipping to change at line 8724 skipping to change at line 9941
#define IDC_SIZEALL MAKEINTRESOURCE(32646) #define IDC_SIZEALL MAKEINTRESOURCE(32646)
#define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */ #define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define IDC_HAND MAKEINTRESOURCE(32649) #define IDC_HAND MAKEINTRESOURCE(32649)
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */ #define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define IDC_HELP MAKEINTRESOURCE(32651) #define IDC_HELP MAKEINTRESOURCE(32651)
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetSystemCursor( SetSystemCursor(
__in HCURSOR hcur, _In_ HCURSOR hcur,
__in DWORD id); _In_ DWORD id);
typedef struct _ICONINFO { typedef struct _ICONINFO {
BOOL fIcon; BOOL fIcon;
DWORD xHotspot; DWORD xHotspot;
DWORD yHotspot; DWORD yHotspot;
HBITMAP hbmMask; HBITMAP hbmMask;
HBITMAP hbmColor; HBITMAP hbmColor;
} ICONINFO; } ICONINFO;
typedef ICONINFO *PICONINFO; typedef ICONINFO *PICONINFO;
WINUSERAPI WINUSERAPI
HICON HICON
WINAPI WINAPI
LoadIconA( LoadIconA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCSTR lpIconName); _In_ LPCSTR lpIconName);
WINUSERAPI WINUSERAPI
HICON HICON
WINAPI WINAPI
LoadIconW( LoadIconW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPCWSTR lpIconName); _In_ LPCWSTR lpIconName);
#ifdef UNICODE #ifdef UNICODE
#define LoadIcon LoadIconW #define LoadIcon LoadIconW
#else #else
#define LoadIcon LoadIconA #define LoadIcon LoadIconA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
PrivateExtractIconsA( PrivateExtractIconsA(
__in LPCSTR szFileName, _In_reads_(MAX_PATH) LPCSTR szFileName,
__in int nIconIndex, _In_ int nIconIndex,
__in int cxIcon, _In_ int cxIcon,
__in int cyIcon, _In_ int cyIcon,
__out_ecount_part_opt(nIcons, return) HICON *phicon, _Out_writes_opt_(nIcons) HICON *phicon,
__out_ecount_part_opt(nIcons, return) UINT *piconid, _Out_writes_opt_(nIcons) UINT *piconid,
__in UINT nIcons, _In_ UINT nIcons,
__in UINT flags); _In_ UINT flags);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
PrivateExtractIconsW( PrivateExtractIconsW(
__in LPCWSTR szFileName, _In_reads_(MAX_PATH) LPCWSTR szFileName,
__in int nIconIndex, _In_ int nIconIndex,
__in int cxIcon, _In_ int cxIcon,
__in int cyIcon, _In_ int cyIcon,
__out_ecount_part_opt(nIcons, return) HICON *phicon, _Out_writes_opt_(nIcons) HICON *phicon,
__out_ecount_part_opt(nIcons, return) UINT *piconid, _Out_writes_opt_(nIcons) UINT *piconid,
__in UINT nIcons, _In_ UINT nIcons,
__in UINT flags); _In_ UINT flags);
#ifdef UNICODE #ifdef UNICODE
#define PrivateExtractIcons PrivateExtractIconsW #define PrivateExtractIcons PrivateExtractIconsW
#else #else
#define PrivateExtractIcons PrivateExtractIconsA #define PrivateExtractIcons PrivateExtractIconsA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HICON HICON
WINAPI WINAPI
CreateIcon( CreateIcon(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in int nWidth, _In_ int nWidth,
__in int nHeight, _In_ int nHeight,
__in BYTE cPlanes, _In_ BYTE cPlanes,
__in BYTE cBitsPixel, _In_ BYTE cBitsPixel,
__in CONST BYTE *lpbANDbits, _In_ CONST BYTE *lpbANDbits,
__in CONST BYTE *lpbXORbits); _In_ CONST BYTE *lpbXORbits);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DestroyIcon( DestroyIcon(
__in HICON hIcon); _In_ HICON hIcon);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
LookupIconIdFromDirectory( LookupIconIdFromDirectory(
__in PBYTE presbits, _In_reads_bytes_(sizeof(WORD) * 3) PBYTE presbits,
__in BOOL fIcon); _In_ BOOL fIcon);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
LookupIconIdFromDirectoryEx( LookupIconIdFromDirectoryEx(
__in PBYTE presbits, _In_reads_bytes_(sizeof(WORD) * 3) PBYTE presbits,
__in BOOL fIcon, _In_ BOOL fIcon,
__in int cxDesired, _In_ int cxDesired,
__in int cyDesired, _In_ int cyDesired,
__in UINT Flags); _In_ UINT Flags);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
HICON HICON
WINAPI WINAPI
CreateIconFromResource( CreateIconFromResource(
__in PBYTE presbits, _In_reads_bytes_(dwResSize) PBYTE presbits,
__in DWORD dwResSize, _In_ DWORD dwResSize,
__in BOOL fIcon, _In_ BOOL fIcon,
__in DWORD dwVer); _In_ DWORD dwVer);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
HICON HICON
WINAPI WINAPI
CreateIconFromResourceEx( CreateIconFromResourceEx(
__in PBYTE presbits, _In_reads_bytes_(dwResSize) PBYTE presbits,
__in DWORD dwResSize, _In_ DWORD dwResSize,
__in BOOL fIcon, _In_ BOOL fIcon,
__in DWORD dwVer, _In_ DWORD dwVer,
__in int cxDesired, _In_ int cxDesired,
__in int cyDesired, _In_ int cyDesired,
__in UINT Flags); _In_ UINT Flags);
/* Icon/Cursor header */ /* Icon/Cursor header */
typedef struct tagCURSORSHAPE typedef struct tagCURSORSHAPE
{ {
int xHotSpot; int xHotSpot;
int yHotSpot; int yHotSpot;
int cx; int cx;
int cy; int cy;
int cbWidth; int cbWidth;
BYTE Planes; BYTE Planes;
BYTE BitsPixel; BYTE BitsPixel;
} CURSORSHAPE, FAR *LPCURSORSHAPE; } CURSORSHAPE, FAR *LPCURSORSHAPE;
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define IMAGE_BITMAP 0 #define IMAGE_BITMAP 0
#define IMAGE_ICON 1 #define IMAGE_ICON 1
#define IMAGE_CURSOR 2 #define IMAGE_CURSOR 2
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define IMAGE_ENHMETAFILE 3 #define IMAGE_ENHMETAFILE 3
#define LR_DEFAULTCOLOR 0x00000000 #define LR_DEFAULTCOLOR 0x00000000
#define LR_MONOCHROME 0x00000001 #define LR_MONOCHROME 0x00000001
#define LR_COLOR 0x00000002 #define LR_COLOR 0x00000002
#define LR_COPYRETURNORG 0x00000004 #define LR_COPYRETURNORG 0x00000004
#define LR_COPYDELETEORG 0x00000008 #define LR_COPYDELETEORG 0x00000008
#define LR_LOADFROMFILE 0x00000010 #define LR_LOADFROMFILE 0x00000010
#define LR_LOADTRANSPARENT 0x00000020 #define LR_LOADTRANSPARENT 0x00000020
#define LR_DEFAULTSIZE 0x00000040 #define LR_DEFAULTSIZE 0x00000040
#define LR_VGACOLOR 0x00000080 #define LR_VGACOLOR 0x00000080
#define LR_LOADMAP3DCOLORS 0x00001000 #define LR_LOADMAP3DCOLORS 0x00001000
#define LR_CREATEDIBSECTION 0x00002000 #define LR_CREATEDIBSECTION 0x00002000
#define LR_COPYFROMRESOURCE 0x00004000 #define LR_COPYFROMRESOURCE 0x00004000
#define LR_SHARED 0x00008000 #define LR_SHARED 0x00008000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
LoadImageA( LoadImageA(
__in_opt HINSTANCE hInst, _In_opt_ HINSTANCE hInst,
__in LPCSTR name, _In_ LPCSTR name,
__in UINT type, _In_ UINT type,
__in int cx, _In_ int cx,
__in int cy, _In_ int cy,
__in UINT fuLoad); _In_ UINT fuLoad);
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
LoadImageW( LoadImageW(
__in_opt HINSTANCE hInst, _In_opt_ HINSTANCE hInst,
__in LPCWSTR name, _In_ LPCWSTR name,
__in UINT type, _In_ UINT type,
__in int cx, _In_ int cx,
__in int cy, _In_ int cy,
__in UINT fuLoad); _In_ UINT fuLoad);
#ifdef UNICODE #ifdef UNICODE
#define LoadImage LoadImageW #define LoadImage LoadImageW
#else #else
#define LoadImage LoadImageA #define LoadImage LoadImageA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
HANDLE HANDLE
WINAPI WINAPI
CopyImage( CopyImage(
__in HANDLE h, _In_ HANDLE h,
__in UINT type, _In_ UINT type,
__in int cx, _In_ int cx,
__in int cy, _In_ int cy,
__in UINT flags); _In_ UINT flags);
#define DI_MASK 0x0001 #define DI_MASK 0x0001
#define DI_IMAGE 0x0002 #define DI_IMAGE 0x0002
#define DI_NORMAL 0x0003 #define DI_NORMAL 0x0003
#define DI_COMPAT 0x0004 #define DI_COMPAT 0x0004
#define DI_DEFAULTSIZE 0x0008 #define DI_DEFAULTSIZE 0x0008
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define DI_NOMIRROR 0x0010 #define DI_NOMIRROR 0x0010
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
WINUSERAPI BOOL WINAPI DrawIconEx( WINUSERAPI BOOL WINAPI DrawIconEx(
__in HDC hdc, _In_ HDC hdc,
__in int xLeft, _In_ int xLeft,
__in int yTop, _In_ int yTop,
__in HICON hIcon, _In_ HICON hIcon,
__in int cxWidth, _In_ int cxWidth,
__in int cyWidth, _In_ int cyWidth,
__in UINT istepIfAniCur, _In_ UINT istepIfAniCur,
__in_opt HBRUSH hbrFlickerFreeDraw, _In_opt_ HBRUSH hbrFlickerFreeDraw,
__in UINT diFlags); _In_ UINT diFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HICON HICON
WINAPI WINAPI
CreateIconIndirect( CreateIconIndirect(
__in PICONINFO piconinfo); _In_ PICONINFO piconinfo);
WINUSERAPI WINUSERAPI
HICON HICON
WINAPI WINAPI
CopyIcon( CopyIcon(
__in HICON hIcon); _In_ HICON hIcon);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetIconInfo( GetIconInfo(
__in HICON hIcon, _In_ HICON hIcon,
__out PICONINFO piconinfo); _Out_ PICONINFO piconinfo);
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
typedef struct _ICONINFOEXA { typedef struct _ICONINFOEXA {
DWORD cbSize; DWORD cbSize;
BOOL fIcon; BOOL fIcon;
DWORD xHotspot; DWORD xHotspot;
DWORD yHotspot; DWORD yHotspot;
HBITMAP hbmMask; HBITMAP hbmMask;
HBITMAP hbmColor; HBITMAP hbmColor;
WORD wResID; WORD wResID;
skipping to change at line 8992 skipping to change at line 10224
typedef PICONINFOEXW PICONINFOEX; typedef PICONINFOEXW PICONINFOEX;
#else #else
typedef ICONINFOEXA ICONINFOEX; typedef ICONINFOEXA ICONINFOEX;
typedef PICONINFOEXA PICONINFOEX; typedef PICONINFOEXA PICONINFOEX;
#endif // UNICODE #endif // UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetIconInfoExA( GetIconInfoExA(
__in HICON hicon, _In_ HICON hicon,
__inout PICONINFOEXA piconinfo); _Inout_ PICONINFOEXA piconinfo);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetIconInfoExW( GetIconInfoExW(
__in HICON hicon, _In_ HICON hicon,
__inout PICONINFOEXW piconinfo); _Inout_ PICONINFOEXW piconinfo);
#ifdef UNICODE #ifdef UNICODE
#define GetIconInfoEx GetIconInfoExW #define GetIconInfoEx GetIconInfoExW
#else #else
#define GetIconInfoEx GetIconInfoExA #define GetIconInfoEx GetIconInfoExA
#endif // !UNICODE #endif // !UNICODE
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define RES_ICON 1 #define RES_ICON 1
#define RES_CURSOR 2 #define RES_CURSOR 2
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef OEMRESOURCE #ifdef OEMRESOURCE
/* /*
* OEM Resource Ordinal Numbers * OEM Resource Ordinal Numbers
*/ */
#define OBM_CLOSE 32754 #define OBM_CLOSE 32754
#define OBM_UPARROW 32753 #define OBM_UPARROW 32753
#define OBM_DNARROW 32752 #define OBM_DNARROW 32752
#define OBM_RGARROW 32751 #define OBM_RGARROW 32751
#define OBM_LFARROW 32750 #define OBM_LFARROW 32750
skipping to change at line 9134 skipping to change at line 10369
#endif /* RC_INVOKED */ #endif /* RC_INVOKED */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define IDI_WARNING IDI_EXCLAMATION #define IDI_WARNING IDI_EXCLAMATION
#define IDI_ERROR IDI_HAND #define IDI_ERROR IDI_HAND
#define IDI_INFORMATION IDI_ASTERISK #define IDI_INFORMATION IDI_ASTERISK
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* !NOICONS */ #endif /* !NOICONS */
#ifdef NOAPISET
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
LoadStringA( LoadStringA(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in UINT uID, _In_ UINT uID,
__out_ecount_part(cchBufferMax, return + 1) LPSTR lpBuffer, _Out_writes_to_(cchBufferMax, return + 1) LPSTR lpBuffer,
__in int cchBufferMax); _In_ int cchBufferMax);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
LoadStringW( LoadStringW(
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in UINT uID, _In_ UINT uID,
__out_ecount_part(cchBufferMax, return + 1) LPWSTR lpBuffer, _Out_writes_to_(cchBufferMax, return + 1) LPWSTR lpBuffer,
__in int cchBufferMax); _In_ int cchBufferMax);
#ifdef UNICODE #ifdef UNICODE
#define LoadString LoadStringW #define LoadString LoadStringW
#else #else
#define LoadString LoadStringA #define LoadString LoadStringA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif
/* /*
* Dialog Box Command IDs * Dialog Box Command IDs
*/ */
#define IDOK 1 #define IDOK 1
#define IDCANCEL 2 #define IDCANCEL 2
#define IDABORT 3 #define IDABORT 3
#define IDRETRY 4 #define IDRETRY 4
#define IDIGNORE 5 #define IDIGNORE 5
#define IDYES 6 #define IDYES 6
#define IDNO 7 #define IDNO 7
skipping to change at line 9464 skipping to change at line 10709
#undef DWL_MSGRESULT #undef DWL_MSGRESULT
#undef DWL_DLGPROC #undef DWL_DLGPROC
#undef DWL_USER #undef DWL_USER
#endif /* _WIN64 */ #endif /* _WIN64 */
#define DWLP_MSGRESULT 0 #define DWLP_MSGRESULT 0
#define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT) #define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT)
#define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC) #define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Dialog Manager Routines * Dialog Manager Routines
*/ */
#ifndef NOMSG #ifndef NOMSG
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsDialogMessageA( IsDialogMessageA(
__in HWND hDlg, _In_ HWND hDlg,
__in LPMSG lpMsg); _In_ LPMSG lpMsg);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsDialogMessageW( IsDialogMessageW(
__in HWND hDlg, _In_ HWND hDlg,
__in LPMSG lpMsg); _In_ LPMSG lpMsg);
#ifdef UNICODE #ifdef UNICODE
#define IsDialogMessage IsDialogMessageW #define IsDialogMessage IsDialogMessageW
#else #else
#define IsDialogMessage IsDialogMessageA #define IsDialogMessage IsDialogMessageA
#endif // !UNICODE #endif // !UNICODE
#endif /* !NOMSG */ #endif /* !NOMSG */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
MapDialogRect( MapDialogRect(
__in HWND hDlg, _In_ HWND hDlg,
__inout LPRECT lpRect); _Inout_ LPRECT lpRect);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
DlgDirListA( DlgDirListA(
__in HWND hDlg, _In_ HWND hDlg,
__inout LPSTR lpPathSpec, _Inout_ LPSTR lpPathSpec,
__in int nIDListBox, _In_ int nIDListBox,
__in int nIDStaticPath, _In_ int nIDStaticPath,
__in UINT uFileType); _In_ UINT uFileType);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
DlgDirListW( DlgDirListW(
__in HWND hDlg, _In_ HWND hDlg,
__inout LPWSTR lpPathSpec, _Inout_ LPWSTR lpPathSpec,
__in int nIDListBox, _In_ int nIDListBox,
__in int nIDStaticPath, _In_ int nIDStaticPath,
__in UINT uFileType); _In_ UINT uFileType);
#ifdef UNICODE #ifdef UNICODE
#define DlgDirList DlgDirListW #define DlgDirList DlgDirListW
#else #else
#define DlgDirList DlgDirListA #define DlgDirList DlgDirListA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* DlgDirList, DlgDirListComboBox flags values * DlgDirList, DlgDirListComboBox flags values
*/ */
#define DDL_READWRITE 0x0000 #define DDL_READWRITE 0x0000
#define DDL_READONLY 0x0001 #define DDL_READONLY 0x0001
#define DDL_HIDDEN 0x0002 #define DDL_HIDDEN 0x0002
#define DDL_SYSTEM 0x0004 #define DDL_SYSTEM 0x0004
#define DDL_DIRECTORY 0x0010 #define DDL_DIRECTORY 0x0010
#define DDL_ARCHIVE 0x0020 #define DDL_ARCHIVE 0x0020
#define DDL_POSTMSGS 0x2000 #define DDL_POSTMSGS 0x2000
#define DDL_DRIVES 0x4000 #define DDL_DRIVES 0x4000
#define DDL_EXCLUSIVE 0x8000 #define DDL_EXCLUSIVE 0x8000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DlgDirSelectExA( DlgDirSelectExA(
__in HWND hwndDlg, _In_ HWND hwndDlg,
__out_ecount(chCount) LPSTR lpString, _Out_writes_(chCount) LPSTR lpString,
__in int chCount, _In_ int chCount,
__in int idListBox); _In_ int idListBox);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DlgDirSelectExW( DlgDirSelectExW(
__in HWND hwndDlg, _In_ HWND hwndDlg,
__out_ecount(chCount) LPWSTR lpString, _Out_writes_(chCount) LPWSTR lpString,
__in int chCount, _In_ int chCount,
__in int idListBox); _In_ int idListBox);
#ifdef UNICODE #ifdef UNICODE
#define DlgDirSelectEx DlgDirSelectExW #define DlgDirSelectEx DlgDirSelectExW
#else #else
#define DlgDirSelectEx DlgDirSelectExA #define DlgDirSelectEx DlgDirSelectExA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
DlgDirListComboBoxA( DlgDirListComboBoxA(
__in HWND hDlg, _In_ HWND hDlg,
__inout LPSTR lpPathSpec, _Inout_ LPSTR lpPathSpec,
__in int nIDComboBox, _In_ int nIDComboBox,
__in int nIDStaticPath, _In_ int nIDStaticPath,
__in UINT uFiletype); _In_ UINT uFiletype);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
DlgDirListComboBoxW( DlgDirListComboBoxW(
__in HWND hDlg, _In_ HWND hDlg,
__inout LPWSTR lpPathSpec, _Inout_ LPWSTR lpPathSpec,
__in int nIDComboBox, _In_ int nIDComboBox,
__in int nIDStaticPath, _In_ int nIDStaticPath,
__in UINT uFiletype); _In_ UINT uFiletype);
#ifdef UNICODE #ifdef UNICODE
#define DlgDirListComboBox DlgDirListComboBoxW #define DlgDirListComboBox DlgDirListComboBoxW
#else #else
#define DlgDirListComboBox DlgDirListComboBoxA #define DlgDirListComboBox DlgDirListComboBoxA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DlgDirSelectComboBoxExA( DlgDirSelectComboBoxExA(
__in HWND hwndDlg, _In_ HWND hwndDlg,
__out_ecount(cchOut) LPSTR lpString, _Out_writes_(cchOut) LPSTR lpString,
__in int cchOut, _In_ int cchOut,
__in int idComboBox); _In_ int idComboBox);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
DlgDirSelectComboBoxExW( DlgDirSelectComboBoxExW(
__in HWND hwndDlg, _In_ HWND hwndDlg,
__out_ecount(cchOut) LPWSTR lpString, _Out_writes_(cchOut) LPWSTR lpString,
__in int cchOut, _In_ int cchOut,
__in int idComboBox); _In_ int idComboBox);
#ifdef UNICODE #ifdef UNICODE
#define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW
#else #else
#define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Dialog Styles * Dialog Styles
*/ */
#define DS_ABSALIGN 0x01L #define DS_ABSALIGN 0x01L
#define DS_SYSMODAL 0x02L #define DS_SYSMODAL 0x02L
#define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */ #define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */
#define DS_SETFONT 0x40L /* User specified font for Dlg controls */ #define DS_SETFONT 0x40L /* User specified font for Dlg controls */
#define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */ #define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */
#define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */ #define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */
#define DS_SETFOREGROUND 0x200L /* not in win3.1 */ #define DS_SETFOREGROUND 0x200L /* not in win3.1 */
skipping to change at line 9626 skipping to change at line 10883
#define DS_FIXEDSYS 0x0008L #define DS_FIXEDSYS 0x0008L
#define DS_NOFAILCREATE 0x0010L #define DS_NOFAILCREATE 0x0010L
#define DS_CONTROL 0x0400L #define DS_CONTROL 0x0400L
#define DS_CENTER 0x0800L #define DS_CENTER 0x0800L
#define DS_CENTERMOUSE 0x1000L #define DS_CENTERMOUSE 0x1000L
#define DS_CONTEXTHELP 0x2000L #define DS_CONTEXTHELP 0x2000L
#define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS) #define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS)
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(_WIN32_WCE >= 0x0500) #if defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0500)
#define DS_USEPIXELS 0x8000L #define DS_USEPIXELS 0x8000L
#endif #endif
#define DM_GETDEFID (WM_USER+0) #define DM_GETDEFID (WM_USER+0)
#define DM_SETDEFID (WM_USER+1) #define DM_SETDEFID (WM_USER+1)
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define DM_REPOSITION (WM_USER+2) #define DM_REPOSITION (WM_USER+2)
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
/* /*
skipping to change at line 9729 skipping to change at line 10986
#define LB_SETITEMHEIGHT 0x01A0 #define LB_SETITEMHEIGHT 0x01A0
#define LB_GETITEMHEIGHT 0x01A1 #define LB_GETITEMHEIGHT 0x01A1
#define LB_FINDSTRINGEXACT 0x01A2 #define LB_FINDSTRINGEXACT 0x01A2
#define LB_SETLOCALE 0x01A5 #define LB_SETLOCALE 0x01A5
#define LB_GETLOCALE 0x01A6 #define LB_GETLOCALE 0x01A6
#define LB_SETCOUNT 0x01A7 #define LB_SETCOUNT 0x01A7
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define LB_INITSTORAGE 0x01A8 #define LB_INITSTORAGE 0x01A8
#define LB_ITEMFROMPOINT 0x01A9 #define LB_ITEMFROMPOINT 0x01A9
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(_WIN32_WCE >= 0x0400) #if defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
#define LB_MULTIPLEADDSTRING 0x01B1 #define LB_MULTIPLEADDSTRING 0x01B1
#endif #endif
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define LB_GETLISTBOXINFO 0x01B2 #define LB_GETLISTBOXINFO 0x01B2
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define LB_MSGMAX 0x01B3 #define LB_MSGMAX 0x01B3
#elif(_WIN32_WCE >= 0x0400) #elif defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
#define LB_MSGMAX 0x01B1 #define LB_MSGMAX 0x01B1
#elif(WINVER >= 0x0400) #elif(WINVER >= 0x0400)
#define LB_MSGMAX 0x01B0 #define LB_MSGMAX 0x01B0
#else #else
#define LB_MSGMAX 0x01A8 #define LB_MSGMAX 0x01A8
#endif #endif
#endif /* !NOWINMESSAGES */ #endif /* !NOWINMESSAGES */
#ifndef NOWINSTYLES #ifndef NOWINSTYLES
skipping to change at line 9861 skipping to change at line 11118
#define CB_SETLOCALE 0x0159 #define CB_SETLOCALE 0x0159
#define CB_GETLOCALE 0x015A #define CB_GETLOCALE 0x015A
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define CB_GETTOPINDEX 0x015b #define CB_GETTOPINDEX 0x015b
#define CB_SETTOPINDEX 0x015c #define CB_SETTOPINDEX 0x015c
#define CB_GETHORIZONTALEXTENT 0x015d #define CB_GETHORIZONTALEXTENT 0x015d
#define CB_SETHORIZONTALEXTENT 0x015e #define CB_SETHORIZONTALEXTENT 0x015e
#define CB_GETDROPPEDWIDTH 0x015f #define CB_GETDROPPEDWIDTH 0x015f
#define CB_SETDROPPEDWIDTH 0x0160 #define CB_SETDROPPEDWIDTH 0x0160
#define CB_INITSTORAGE 0x0161 #define CB_INITSTORAGE 0x0161
#if(_WIN32_WCE >= 0x0400) #if defined(_WIN32_WCE) &&(_WIN32_WCE >= 0x0400)
#define CB_MULTIPLEADDSTRING 0x0163 #define CB_MULTIPLEADDSTRING 0x0163
#endif #endif
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define CB_GETCOMBOBOXINFO 0x0164 #define CB_GETCOMBOBOXINFO 0x0164
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define CB_MSGMAX 0x0165 #define CB_MSGMAX 0x0165
#elif(_WIN32_WCE >= 0x0400) #elif defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
#define CB_MSGMAX 0x0163 #define CB_MSGMAX 0x0163
#elif(WINVER >= 0x0400) #elif(WINVER >= 0x0400)
#define CB_MSGMAX 0x0162 #define CB_MSGMAX 0x0162
#else #else
#define CB_MSGMAX 0x015B #define CB_MSGMAX 0x015B
#endif #endif
#endif /* !NOWINMESSAGES */ #endif /* !NOWINMESSAGES */
#ifndef NOWINSTYLES #ifndef NOWINSTYLES
skipping to change at line 9928 skipping to change at line 11185
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define SIF_RANGE 0x0001 #define SIF_RANGE 0x0001
#define SIF_PAGE 0x0002 #define SIF_PAGE 0x0002
#define SIF_POS 0x0004 #define SIF_POS 0x0004
#define SIF_DISABLENOSCROLL 0x0008 #define SIF_DISABLENOSCROLL 0x0008
#define SIF_TRACKPOS 0x0010 #define SIF_TRACKPOS 0x0010
#define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS) #define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagSCROLLINFO typedef struct tagSCROLLINFO
{ {
UINT cbSize; UINT cbSize;
UINT fMask; UINT fMask;
int nMin; int nMin;
int nMax; int nMax;
UINT nPage; UINT nPage;
int nPos; int nPos;
int nTrackPos; int nTrackPos;
} SCROLLINFO, FAR *LPSCROLLINFO; } SCROLLINFO, FAR *LPSCROLLINFO;
typedef SCROLLINFO CONST FAR *LPCSCROLLINFO; typedef SCROLLINFO CONST FAR *LPCSCROLLINFO;
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
SetScrollInfo( SetScrollInfo(
__in HWND hwnd, _In_ HWND hwnd,
__in int nBar, _In_ int nBar,
__in LPCSCROLLINFO lpsi, _In_ LPCSCROLLINFO lpsi,
__in BOOL redraw); _In_ BOOL redraw);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetScrollInfo( GetScrollInfo(
__in HWND hwnd, _In_ HWND hwnd,
__in int nBar, _In_ int nBar,
__inout LPSCROLLINFO lpsi); _Inout_ LPSCROLLINFO lpsi);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* !NOWINMESSAGES */ #endif /* !NOWINMESSAGES */
#endif /* !NOCTLMGR */ #endif /* !NOCTLMGR */
#ifndef NOMDI #ifndef NOMDI
/* /*
* MDI client style bits * MDI client style bits
*/ */
#define MDIS_ALLCHILDSTYLES 0x0001 #define MDIS_ALLCHILDSTYLES 0x0001
skipping to change at line 9978 skipping to change at line 11241
/* /*
* wParam Flags for WM_MDITILE and WM_MDICASCADE messages. * wParam Flags for WM_MDITILE and WM_MDICASCADE messages.
*/ */
#define MDITILE_VERTICAL 0x0000 /*not in win3.1 */ #define MDITILE_VERTICAL 0x0000 /*not in win3.1 */
#define MDITILE_HORIZONTAL 0x0001 /*not in win3.1 */ #define MDITILE_HORIZONTAL 0x0001 /*not in win3.1 */
#define MDITILE_SKIPDISABLED 0x0002 /*not in win3.1 */ #define MDITILE_SKIPDISABLED 0x0002 /*not in win3.1 */
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define MDITILE_ZORDER 0x0004 #define MDITILE_ZORDER 0x0004
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMDICREATESTRUCTA { typedef struct tagMDICREATESTRUCTA {
LPCSTR szClass; LPCSTR szClass;
LPCSTR szTitle; LPCSTR szTitle;
HANDLE hOwner; HANDLE hOwner;
int x; int x;
int y; int y;
int cx; int cx;
int cy; int cy;
DWORD style; DWORD style;
LPARAM lParam; /* app-defined stuff */ LPARAM lParam; /* app-defined stuff */
skipping to change at line 10017 skipping to change at line 11283
typedef struct tagCLIENTCREATESTRUCT { typedef struct tagCLIENTCREATESTRUCT {
HANDLE hWindowMenu; HANDLE hWindowMenu;
UINT idFirstChild; UINT idFirstChild;
} CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
DefFrameProcA( DefFrameProcA(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HWND hWndMDIClient, _In_opt_ HWND hWndMDIClient,
__in UINT uMsg, _In_ UINT uMsg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
DefFrameProcW( DefFrameProcW(
__in HWND hWnd, _In_ HWND hWnd,
__in_opt HWND hWndMDIClient, _In_opt_ HWND hWndMDIClient,
__in UINT uMsg, _In_ UINT uMsg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define DefFrameProc DefFrameProcW #define DefFrameProc DefFrameProcW
#else #else
#define DefFrameProc DefFrameProcA #define DefFrameProc DefFrameProcA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
#ifndef _MAC #ifndef _MAC
LRESULT LRESULT
WINAPI WINAPI
#else #else
LRESULT LRESULT
CALLBACK CALLBACK
#endif #endif
DefMDIChildProcA( DefMDIChildProcA(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT uMsg, _In_ UINT uMsg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
#ifndef _MAC #ifndef _MAC
LRESULT LRESULT
WINAPI WINAPI
#else #else
LRESULT LRESULT
CALLBACK CALLBACK
#endif #endif
DefMDIChildProcW( DefMDIChildProcW(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT uMsg, _In_ UINT uMsg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define DefMDIChildProc DefMDIChildProcW #define DefMDIChildProc DefMDIChildProcW
#else #else
#define DefMDIChildProc DefMDIChildProcA #define DefMDIChildProc DefMDIChildProcA
#endif // !UNICODE #endif // !UNICODE
#ifndef NOMSG #ifndef NOMSG
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
TranslateMDISysAccel( TranslateMDISysAccel(
__in HWND hWndClient, _In_ HWND hWndClient,
__in LPMSG lpMsg); _In_ LPMSG lpMsg);
#endif /* !NOMSG */ #endif /* !NOMSG */
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
ArrangeIconicWindows( ArrangeIconicWindows(
__in HWND hWnd); _In_ HWND hWnd);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
CreateMDIWindowA( CreateMDIWindowA(
__in LPCSTR lpClassName, _In_ LPCSTR lpClassName,
__in LPCSTR lpWindowName, _In_ LPCSTR lpWindowName,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in int nWidth, _In_ int nWidth,
__in int nHeight, _In_ int nHeight,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPARAM lParam); _In_ LPARAM lParam);
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
CreateMDIWindowW( CreateMDIWindowW(
__in LPCWSTR lpClassName, _In_ LPCWSTR lpClassName,
__in LPCWSTR lpWindowName, _In_ LPCWSTR lpWindowName,
__in DWORD dwStyle, _In_ DWORD dwStyle,
__in int X, _In_ int X,
__in int Y, _In_ int Y,
__in int nWidth, _In_ int nWidth,
__in int nHeight, _In_ int nHeight,
__in_opt HWND hWndParent, _In_opt_ HWND hWndParent,
__in_opt HINSTANCE hInstance, _In_opt_ HINSTANCE hInstance,
__in LPARAM lParam); _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define CreateMDIWindow CreateMDIWindowW #define CreateMDIWindow CreateMDIWindowW
#else #else
#define CreateMDIWindow CreateMDIWindowA #define CreateMDIWindow CreateMDIWindowA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINUSERAPI WINUSERAPI
WORD WORD
WINAPI WINAPI
TileWindows( TileWindows(
__in_opt HWND hwndParent, _In_opt_ HWND hwndParent,
__in UINT wHow, _In_ UINT wHow,
__in_opt CONST RECT * lpRect, _In_opt_ CONST RECT * lpRect,
__in UINT cKids, _In_ UINT cKids,
__in_ecount_opt(cKids) const HWND FAR * lpKids); _In_reads_opt_(cKids) const HWND FAR * lpKids);
WINUSERAPI WINUSERAPI
WORD WORD
WINAPI CascadeWindows( WINAPI CascadeWindows(
__in_opt HWND hwndParent, _In_opt_ HWND hwndParent,
__in UINT wHow, _In_ UINT wHow,
__in_opt CONST RECT * lpRect, _In_opt_ CONST RECT * lpRect,
__in UINT cKids, _In_ UINT cKids,
__in_ecount_opt(cKids) const HWND FAR * lpKids); _In_reads_opt_(cKids) const HWND FAR * lpKids);
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOMDI */ #endif /* !NOMDI */
#endif /* !NOUSER */ #endif /* !NOUSER */
/****** Help support ********************************************************/ /****** Help support ********************************************************/
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef NOHELP #ifndef NOHELP
typedef DWORD HELPPOLY; typedef DWORD HELPPOLY;
typedef struct tagMULTIKEYHELPA { typedef struct tagMULTIKEYHELPA {
#ifndef _MAC #ifndef _MAC
DWORD mkSize; DWORD mkSize;
#else #else
WORD mkSize; WORD mkSize;
#endif #endif
CHAR mkKeylist; CHAR mkKeylist;
skipping to change at line 10247 skipping to change at line 11520
#define IDH_OK 28443 #define IDH_OK 28443
#define IDH_CANCEL 28444 #define IDH_CANCEL 28444
#define IDH_HELP 28445 #define IDH_HELP 28445
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
WinHelpA( WinHelpA(
__in_opt HWND hWndMain, _In_opt_ HWND hWndMain,
__in_opt LPCSTR lpszHelp, _In_opt_ LPCSTR lpszHelp,
__in UINT uCommand, _In_ UINT uCommand,
__in ULONG_PTR dwData); _In_ ULONG_PTR dwData);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
WinHelpW( WinHelpW(
__in_opt HWND hWndMain, _In_opt_ HWND hWndMain,
__in_opt LPCWSTR lpszHelp, _In_opt_ LPCWSTR lpszHelp,
__in UINT uCommand, _In_ UINT uCommand,
__in ULONG_PTR dwData); _In_ ULONG_PTR dwData);
#ifdef UNICODE #ifdef UNICODE
#define WinHelp WinHelpW #define WinHelp WinHelpW
#else #else
#define WinHelp WinHelpA #define WinHelp WinHelpA
#endif // !UNICODE #endif // !UNICODE
#endif /* !NOHELP */ #endif /* !NOHELP */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define GR_GDIOBJECTS 0 /* Count of GDI objects */ #define GR_GDIOBJECTS 0 /* Count of GDI objects */
#define GR_USEROBJECTS 1 /* Count of USER objects */ #define GR_USEROBJECTS 1 /* Count of USER objects */
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
#define GR_GDIOBJECTS_PEAK 2 /* Peak count of GDI objects */ #define GR_GDIOBJECTS_PEAK 2 /* Peak count of GDI objects */
#define GR_USEROBJECTS_PEAK 4 /* Peak count of USER objects */ #define GR_USEROBJECTS_PEAK 4 /* Peak count of USER objects */
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
#define GR_GLOBAL ((HANDLE)-2) #define GR_GLOBAL ((HANDLE)-2)
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetGuiResources( GetGuiResources(
__in HANDLE hProcess, _In_ HANDLE hProcess,
__in DWORD uiFlags); _In_ DWORD uiFlags);
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NOSYSPARAMSINFO #ifndef NOSYSPARAMSINFO
/* /*
* Parameter for SystemParametersInfo. * Parameter for SystemParametersInfo.
*/ */
#define SPI_GETBEEP 0x0001 #define SPI_GETBEEP 0x0001
#define SPI_SETBEEP 0x0002 #define SPI_SETBEEP 0x0002
#define SPI_GETMOUSE 0x0003 #define SPI_GETMOUSE 0x0003
#define SPI_SETMOUSE 0x0004 #define SPI_SETMOUSE 0x0004
skipping to change at line 10461 skipping to change at line 11749
#define SPI_GETPENSIDEMOVETHRESHOLD 0x008A #define SPI_GETPENSIDEMOVETHRESHOLD 0x008A
#define SPI_SETPENSIDEMOVETHRESHOLD 0x008B #define SPI_SETPENSIDEMOVETHRESHOLD 0x008B
#define SPI_GETDRAGFROMMAXIMIZE 0x008C #define SPI_GETDRAGFROMMAXIMIZE 0x008C
#define SPI_SETDRAGFROMMAXIMIZE 0x008D #define SPI_SETDRAGFROMMAXIMIZE 0x008D
#define SPI_GETSNAPSIZING 0x008E #define SPI_GETSNAPSIZING 0x008E
#define SPI_SETSNAPSIZING 0x008F #define SPI_SETSNAPSIZING 0x008F
#define SPI_GETDOCKMOVING 0x0090 #define SPI_GETDOCKMOVING 0x0090
#define SPI_SETDOCKMOVING 0x0091 #define SPI_SETDOCKMOVING 0x0091
#endif /* _WIN32_WINNT >= 0x0601 */ #endif /* _WIN32_WINNT >= 0x0601 */
#if(WINVER >= 0x0602)
#define MAX_TOUCH_PREDICTION_FILTER_TAPS 3
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagTouchPredictionParameters
{
UINT cbSize;
UINT dwLatency; // Latency in millisecs
UINT dwSampleTime; // Sample time in millisecs (used to deduce velocity)
UINT bUseHWTimeStamp; // Use H/W TimeStamps
} TOUCHPREDICTIONPARAMETERS, *PTOUCHPREDICTIONPARAMETERS;
#define TOUCHPREDICTIONPARAMETERS_DEFAULT_LATENCY 8
#define TOUCHPREDICTIONPARAMETERS_DEFAULT_SAMPLETIME 8
#define TOUCHPREDICTIONPARAMETERS_DEFAULT_USE_HW_TIMESTAMP 1
#define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_DELTA 0.001f
#define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MIN 0.9f
#define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MAX 0.999f
#define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_LEARNING_RATE 0.001f
#define TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_EXPO_SMOOTH_ALPHA 0.99f
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define SPI_GETTOUCHPREDICTIONPARAMETERS 0x009C
#define SPI_SETTOUCHPREDICTIONPARAMETERS 0x009D
#define MAX_LOGICALDPIOVERRIDE 2
#define MIN_LOGICALDPIOVERRIDE -2
#define SPI_GETLOGICALDPIOVERRIDE 0x009E
#define SPI_SETLOGICALDPIOVERRIDE 0x009F
#define SPI_GETMOUSECORNERCLIPLENGTH 0x00A0
#define SPI_SETMOUSECORNERCLIPLENGTH 0x00A1
#define SPI_GETMENURECT 0x00A2
#define SPI_SETMENURECT 0x00A3
#endif /* WINVER >= 0x0602 */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
#define SPI_GETACTIVEWINDOWTRACKING 0x1000 #define SPI_GETACTIVEWINDOWTRACKING 0x1000
#define SPI_SETACTIVEWINDOWTRACKING 0x1001 #define SPI_SETACTIVEWINDOWTRACKING 0x1001
#define SPI_GETMENUANIMATION 0x1002 #define SPI_GETMENUANIMATION 0x1002
#define SPI_SETMENUANIMATION 0x1003 #define SPI_SETMENUANIMATION 0x1003
#define SPI_GETCOMBOBOXANIMATION 0x1004 #define SPI_GETCOMBOBOXANIMATION 0x1004
#define SPI_SETCOMBOBOXANIMATION 0x1005 #define SPI_SETCOMBOBOXANIMATION 0x1005
#define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006 #define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006
#define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007 #define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007
#define SPI_GETGRADIENTCAPTIONS 0x1008 #define SPI_GETGRADIENTCAPTIONS 0x1008
skipping to change at line 10519 skipping to change at line 11850
#define SPI_GETDISABLEOVERLAPPEDCONTENT 0x1040 #define SPI_GETDISABLEOVERLAPPEDCONTENT 0x1040
#define SPI_SETDISABLEOVERLAPPEDCONTENT 0x1041 #define SPI_SETDISABLEOVERLAPPEDCONTENT 0x1041
#define SPI_GETCLIENTAREAANIMATION 0x1042 #define SPI_GETCLIENTAREAANIMATION 0x1042
#define SPI_SETCLIENTAREAANIMATION 0x1043 #define SPI_SETCLIENTAREAANIMATION 0x1043
#define SPI_GETCLEARTYPE 0x1048 #define SPI_GETCLEARTYPE 0x1048
#define SPI_SETCLEARTYPE 0x1049 #define SPI_SETCLEARTYPE 0x1049
#define SPI_GETSPEECHRECOGNITION 0x104A #define SPI_GETSPEECHRECOGNITION 0x104A
#define SPI_SETSPEECHRECOGNITION 0x104B #define SPI_SETSPEECHRECOGNITION 0x104B
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
#if(WINVER >= 0x0601)
#define SPI_GETCARETBROWSING 0x104C
#define SPI_SETCARETBROWSING 0x104D
#define SPI_GETTHREADLOCALINPUTSETTINGS 0x104E
#define SPI_SETTHREADLOCALINPUTSETTINGS 0x104F
#define SPI_GETSYSTEMLANGUAGEBAR 0x1050
#define SPI_SETSYSTEMLANGUAGEBAR 0x1051
#endif /* WINVER >= 0x0601 */
#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000 #define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001 #define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
#define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002 #define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
#define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003 #define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
#define SPI_GETFOREGROUNDFLASHCOUNT 0x2004 #define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
#define SPI_SETFOREGROUNDFLASHCOUNT 0x2005 #define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
#define SPI_GETCARETWIDTH 0x2006 #define SPI_GETCARETWIDTH 0x2006
#define SPI_SETCARETWIDTH 0x2007 #define SPI_SETCARETWIDTH 0x2007
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
skipping to change at line 10561 skipping to change at line 11901
#define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001 #define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
#define SPI_GETMINIMUMHITRADIUS 0x2014 #define SPI_GETMINIMUMHITRADIUS 0x2014
#define SPI_SETMINIMUMHITRADIUS 0x2015 #define SPI_SETMINIMUMHITRADIUS 0x2015
#define SPI_GETMESSAGEDURATION 0x2016 #define SPI_GETMESSAGEDURATION 0x2016
#define SPI_SETMESSAGEDURATION 0x2017 #define SPI_SETMESSAGEDURATION 0x2017
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
#if(WINVER >= 0x0602)
#define SPI_GETCONTACTVISUALIZATION 0x2018
#define SPI_SETCONTACTVISUALIZATION 0x2019
/* constants for SPI_GETCONTACTVISUALIZATION and SPI_SETCONTACTVISUALIZATION */
#define CONTACTVISUALIZATION_OFF 0x0000
#define CONTACTVISUALIZATION_ON 0x0001
#define CONTACTVISUALIZATION_PRESENTATIONMODE 0x0002
#define SPI_GETGESTUREVISUALIZATION 0x201A
#define SPI_SETGESTUREVISUALIZATION 0x201B
/* constants for SPI_GETGESTUREVISUALIZATION and SPI_SETGESTUREVISUALIZATION */
#define GESTUREVISUALIZATION_OFF 0x0000
#define GESTUREVISUALIZATION_ON 0x001F
#define GESTUREVISUALIZATION_TAP 0x0001
#define GESTUREVISUALIZATION_DOUBLETAP 0x0002
#define GESTUREVISUALIZATION_PRESSANDTAP 0x0004
#define GESTUREVISUALIZATION_PRESSANDHOLD 0x0008
#define GESTUREVISUALIZATION_RIGHTTAP 0x0010
#endif /* WINVER >= 0x0602 */
#if(WINVER >= 0x0602)
#define SPI_GETMOUSEWHEELROUTING 0x201C
#define SPI_SETMOUSEWHEELROUTING 0x201D
#define MOUSEWHEEL_ROUTING_FOCUS 0
#define MOUSEWHEEL_ROUTING_HYBRID 1
#endif /* WINVER >= 0x0602 */
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
/* /*
* Flags * Flags
*/ */
#define SPIF_UPDATEINIFILE 0x0001 #define SPIF_UPDATEINIFILE 0x0001
#define SPIF_SENDWININICHANGE 0x0002 #define SPIF_SENDWININICHANGE 0x0002
#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE #define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
#define METRICS_USEDEFAULT -1 #define METRICS_USEDEFAULT -1
#ifdef _WINGDI_ #ifdef _WINGDI_
#ifndef NOGDI #ifndef NOGDI
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagNONCLIENTMETRICSA typedef struct tagNONCLIENTMETRICSA
{ {
UINT cbSize; UINT cbSize;
int iBorderWidth; int iBorderWidth;
int iScrollWidth; int iScrollWidth;
int iScrollHeight; int iScrollHeight;
int iCaptionWidth; int iCaptionWidth;
int iCaptionHeight; int iCaptionHeight;
LOGFONTA lfCaptionFont; LOGFONTA lfCaptionFont;
int iSmCaptionWidth; int iSmCaptionWidth;
skipping to change at line 10624 skipping to change at line 11997
} NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, FAR* LPNONCLIENTMETRICSW; } NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, FAR* LPNONCLIENTMETRICSW;
#ifdef UNICODE #ifdef UNICODE
typedef NONCLIENTMETRICSW NONCLIENTMETRICS; typedef NONCLIENTMETRICSW NONCLIENTMETRICS;
typedef PNONCLIENTMETRICSW PNONCLIENTMETRICS; typedef PNONCLIENTMETRICSW PNONCLIENTMETRICS;
typedef LPNONCLIENTMETRICSW LPNONCLIENTMETRICS; typedef LPNONCLIENTMETRICSW LPNONCLIENTMETRICS;
#else #else
typedef NONCLIENTMETRICSA NONCLIENTMETRICS; typedef NONCLIENTMETRICSA NONCLIENTMETRICS;
typedef PNONCLIENTMETRICSA PNONCLIENTMETRICS; typedef PNONCLIENTMETRICSA PNONCLIENTMETRICS;
typedef LPNONCLIENTMETRICSA LPNONCLIENTMETRICS; typedef LPNONCLIENTMETRICSA LPNONCLIENTMETRICS;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* NOGDI */ #endif /* NOGDI */
#endif /* _WINGDI_ */ #endif /* _WINGDI_ */
#define ARW_BOTTOMLEFT 0x0000L #define ARW_BOTTOMLEFT 0x0000L
#define ARW_BOTTOMRIGHT 0x0001L #define ARW_BOTTOMRIGHT 0x0001L
#define ARW_TOPLEFT 0x0002L #define ARW_TOPLEFT 0x0002L
#define ARW_TOPRIGHT 0x0003L #define ARW_TOPRIGHT 0x0003L
#define ARW_STARTMASK 0x0003L #define ARW_STARTMASK 0x0003L
#define ARW_STARTRIGHT 0x0001L #define ARW_STARTRIGHT 0x0001L
#define ARW_STARTTOP 0x0002L #define ARW_STARTTOP 0x0002L
#define ARW_LEFT 0x0000L #define ARW_LEFT 0x0000L
#define ARW_RIGHT 0x0000L #define ARW_RIGHT 0x0000L
#define ARW_UP 0x0004L #define ARW_UP 0x0004L
#define ARW_DOWN 0x0004L #define ARW_DOWN 0x0004L
#define ARW_HIDE 0x0008L #define ARW_HIDE 0x0008L
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMINIMIZEDMETRICS typedef struct tagMINIMIZEDMETRICS
{ {
UINT cbSize; UINT cbSize;
int iWidth; int iWidth;
int iHorzGap; int iHorzGap;
int iVertGap; int iVertGap;
int iArrange; int iArrange;
} MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS; } MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS;
#ifdef _WINGDI_ #ifdef _WINGDI_
skipping to change at line 10739 skipping to change at line 12119
LPWSTR lpszDefaultScheme; LPWSTR lpszDefaultScheme;
} HIGHCONTRASTW, *LPHIGHCONTRASTW; } HIGHCONTRASTW, *LPHIGHCONTRASTW;
#ifdef UNICODE #ifdef UNICODE
typedef HIGHCONTRASTW HIGHCONTRAST; typedef HIGHCONTRASTW HIGHCONTRAST;
typedef LPHIGHCONTRASTW LPHIGHCONTRAST; typedef LPHIGHCONTRASTW LPHIGHCONTRAST;
#else #else
typedef HIGHCONTRASTA HIGHCONTRAST; typedef HIGHCONTRASTA HIGHCONTRAST;
typedef LPHIGHCONTRASTA LPHIGHCONTRAST; typedef LPHIGHCONTRASTA LPHIGHCONTRAST;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* flags for HIGHCONTRAST dwFlags field */ /* flags for HIGHCONTRAST dwFlags field */
#define HCF_HIGHCONTRASTON 0x00000001 #define HCF_HIGHCONTRASTON 0x00000001
#define HCF_AVAILABLE 0x00000002 #define HCF_AVAILABLE 0x00000002
#define HCF_HOTKEYACTIVE 0x00000004 #define HCF_HOTKEYACTIVE 0x00000004
#define HCF_CONFIRMHOTKEY 0x00000008 #define HCF_CONFIRMHOTKEY 0x00000008
#define HCF_HOTKEYSOUND 0x00000010 #define HCF_HOTKEYSOUND 0x00000010
#define HCF_INDICATOR 0x00000020 #define HCF_INDICATOR 0x00000020
#define HCF_HOTKEYAVAILABLE 0x00000040 #define HCF_HOTKEYAVAILABLE 0x00000040
#define HCF_LOGONDESKTOP 0x00000100 #define HCF_LOGONDESKTOP 0x00000100
#define HCF_DEFAULTDESKTOP 0x00000200 #define HCF_DEFAULTDESKTOP 0x00000200
skipping to change at line 10779 skipping to change at line 12162
#define DISP_CHANGE_RESTART 1 #define DISP_CHANGE_RESTART 1
#define DISP_CHANGE_FAILED -1 #define DISP_CHANGE_FAILED -1
#define DISP_CHANGE_BADMODE -2 #define DISP_CHANGE_BADMODE -2
#define DISP_CHANGE_NOTUPDATED -3 #define DISP_CHANGE_NOTUPDATED -3
#define DISP_CHANGE_BADFLAGS -4 #define DISP_CHANGE_BADFLAGS -4
#define DISP_CHANGE_BADPARAM -5 #define DISP_CHANGE_BADPARAM -5
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define DISP_CHANGE_BADDUALVIEW -6 #define DISP_CHANGE_BADDUALVIEW -6
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef _WINGDI_ #ifdef _WINGDI_
#ifndef NOGDI #ifndef NOGDI
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
ChangeDisplaySettingsA( ChangeDisplaySettingsA(
__in_opt DEVMODEA* lpDevMode, _In_opt_ DEVMODEA* lpDevMode,
__in DWORD dwFlags); _In_ DWORD dwFlags);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
ChangeDisplaySettingsW( ChangeDisplaySettingsW(
__in_opt DEVMODEW* lpDevMode, _In_opt_ DEVMODEW* lpDevMode,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#ifdef UNICODE #ifdef UNICODE
#define ChangeDisplaySettings ChangeDisplaySettingsW #define ChangeDisplaySettings ChangeDisplaySettingsW
#else #else
#define ChangeDisplaySettings ChangeDisplaySettingsA #define ChangeDisplaySettings ChangeDisplaySettingsA
#endif // !UNICODE #endif // !UNICODE
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
ChangeDisplaySettingsExA( ChangeDisplaySettingsExA(
__in_opt LPCSTR lpszDeviceName, _In_opt_ LPCSTR lpszDeviceName,
__in_opt DEVMODEA* lpDevMode, _In_opt_ DEVMODEA* lpDevMode,
__reserved HWND hwnd, _Reserved_ HWND hwnd,
__in DWORD dwflags, _In_ DWORD dwflags,
__in_opt LPVOID lParam); _In_opt_ LPVOID lParam);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
ChangeDisplaySettingsExW( ChangeDisplaySettingsExW(
__in_opt LPCWSTR lpszDeviceName, _In_opt_ LPCWSTR lpszDeviceName,
__in_opt DEVMODEW* lpDevMode, _In_opt_ DEVMODEW* lpDevMode,
__reserved HWND hwnd, _Reserved_ HWND hwnd,
__in DWORD dwflags, _In_ DWORD dwflags,
__in_opt LPVOID lParam); _In_opt_ LPVOID lParam);
#ifdef UNICODE #ifdef UNICODE
#define ChangeDisplaySettingsEx ChangeDisplaySettingsExW #define ChangeDisplaySettingsEx ChangeDisplaySettingsExW
#else #else
#define ChangeDisplaySettingsEx ChangeDisplaySettingsExA #define ChangeDisplaySettingsEx ChangeDisplaySettingsExA
#endif // !UNICODE #endif // !UNICODE
#define ENUM_CURRENT_SETTINGS ((DWORD)-1) #define ENUM_CURRENT_SETTINGS ((DWORD)-1)
#define ENUM_REGISTRY_SETTINGS ((DWORD)-2) #define ENUM_REGISTRY_SETTINGS ((DWORD)-2)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDisplaySettingsA( EnumDisplaySettingsA(
__in_opt LPCSTR lpszDeviceName, _In_opt_ LPCSTR lpszDeviceName,
__in DWORD iModeNum, _In_ DWORD iModeNum,
__inout DEVMODEA* lpDevMode); _Inout_ DEVMODEA* lpDevMode);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDisplaySettingsW( EnumDisplaySettingsW(
__in_opt LPCWSTR lpszDeviceName, _In_opt_ LPCWSTR lpszDeviceName,
__in DWORD iModeNum, _In_ DWORD iModeNum,
__inout DEVMODEW* lpDevMode); _Inout_ DEVMODEW* lpDevMode);
#ifdef UNICODE #ifdef UNICODE
#define EnumDisplaySettings EnumDisplaySettingsW #define EnumDisplaySettings EnumDisplaySettingsW
#else #else
#define EnumDisplaySettings EnumDisplaySettingsA #define EnumDisplaySettings EnumDisplaySettingsA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDisplaySettingsExA( EnumDisplaySettingsExA(
__in_opt LPCSTR lpszDeviceName, _In_opt_ LPCSTR lpszDeviceName,
__in DWORD iModeNum, _In_ DWORD iModeNum,
__inout DEVMODEA* lpDevMode, _Inout_ DEVMODEA* lpDevMode,
__in DWORD dwFlags); _In_ DWORD dwFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDisplaySettingsExW( EnumDisplaySettingsExW(
__in_opt LPCWSTR lpszDeviceName, _In_opt_ LPCWSTR lpszDeviceName,
__in DWORD iModeNum, _In_ DWORD iModeNum,
__inout DEVMODEW* lpDevMode, _Inout_ DEVMODEW* lpDevMode,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#ifdef UNICODE #ifdef UNICODE
#define EnumDisplaySettingsEx EnumDisplaySettingsExW #define EnumDisplaySettingsEx EnumDisplaySettingsExW
#else #else
#define EnumDisplaySettingsEx EnumDisplaySettingsExA #define EnumDisplaySettingsEx EnumDisplaySettingsExA
#endif // !UNICODE #endif // !UNICODE
/* Flags for EnumDisplaySettingsEx */ /* Flags for EnumDisplaySettingsEx */
#define EDS_RAWMODE 0x00000002 #define EDS_RAWMODE 0x00000002
#define EDS_ROTATEDMODE 0x00000004 #define EDS_ROTATEDMODE 0x00000004
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDisplayDevicesA( EnumDisplayDevicesA(
__in_opt LPCSTR lpDevice, _In_opt_ LPCSTR lpDevice,
__in DWORD iDevNum, _In_ DWORD iDevNum,
__inout PDISPLAY_DEVICEA lpDisplayDevice, _Inout_ PDISPLAY_DEVICEA lpDisplayDevice,
__in DWORD dwFlags); _In_ DWORD dwFlags);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDisplayDevicesW( EnumDisplayDevicesW(
__in_opt LPCWSTR lpDevice, _In_opt_ LPCWSTR lpDevice,
__in DWORD iDevNum, _In_ DWORD iDevNum,
__inout PDISPLAY_DEVICEW lpDisplayDevice, _Inout_ PDISPLAY_DEVICEW lpDisplayDevice,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#ifdef UNICODE #ifdef UNICODE
#define EnumDisplayDevices EnumDisplayDevicesW #define EnumDisplayDevices EnumDisplayDevicesW
#else #else
#define EnumDisplayDevices EnumDisplayDevicesA #define EnumDisplayDevices EnumDisplayDevicesA
#endif // !UNICODE #endif // !UNICODE
/* Flags for EnumDisplayDevices */ /* Flags for EnumDisplayDevices */
#define EDD_GET_DEVICE_INTERFACE_NAME 0x00000001 #define EDD_GET_DEVICE_INTERFACE_NAME 0x00000001
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
GetDisplayConfigBufferSizes( GetDisplayConfigBufferSizes(
__in UINT32 flags, _In_ UINT32 flags,
__out UINT32* numPathArrayElements, _Out_ UINT32* numPathArrayElements,
__out UINT32* numModeInfoArrayElements); _Out_ UINT32* numModeInfoArrayElements);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
SetDisplayConfig( SetDisplayConfig(
__in UINT32 numPathArrayElements, _In_ UINT32 numPathArrayElements,
__in_ecount_opt(numPathArrayElements) DISPLAYCONFIG_PATH_INFO* pathArray, _In_reads_opt_(numPathArrayElements) DISPLAYCONFIG_PATH_INFO* pathArray,
__in UINT32 numModeInfoArrayElements, _In_ UINT32 numModeInfoArrayElements,
__in_ecount_opt(numModeInfoArrayElements) DISPLAYCONFIG_MODE_INFO* modeInfoA _In_reads_opt_(numModeInfoArrayElements) DISPLAYCONFIG_MODE_INFO* modeInfoAr
rray, ray,
__in UINT32 flags); _In_ UINT32 flags);
WINUSERAPI WINUSERAPI
LONG _Success_(return == ERROR_SUCCESS) LONG
WINAPI WINAPI
QueryDisplayConfig( QueryDisplayConfig(
__in UINT32 flags, _In_ UINT32 flags,
__inout UINT32* numPathArrayElements, _Inout_ UINT32* numPathArrayElements,
__out_ecount_part(*numPathArrayElements, *numPathArrayElements) DISPLAYCONFI _Out_writes_to_(*numPathArrayElements, *numPathArrayElements) DISPLAYCONFIG_
G_PATH_INFO* pathArray, PATH_INFO* pathArray,
__inout UINT32* numModeInfoArrayElements, _Inout_ UINT32* numModeInfoArrayElements,
__out_ecount_part(*numModeInfoArrayElements, *numModeInfoArrayElements) DISP _Out_writes_to_(*numModeInfoArrayElements, *numModeInfoArrayElements) DISPLA
LAYCONFIG_MODE_INFO* modeInfoArray, YCONFIG_MODE_INFO* modeInfoArray,
__out DISPLAYCONFIG_TOPOLOGY_ID* currentTopologyId); _When_(!(flags & QDC_DATABASE_CURRENT), _Pre_null_)
_When_(flags & QDC_DATABASE_CURRENT, _Out_)
DISPLAYCONFIG_TOPOLOGY_ID* currentTopologyId);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
DisplayConfigGetDeviceInfo( DisplayConfigGetDeviceInfo(
__inout DISPLAYCONFIG_DEVICE_INFO_HEADER* requestPacket); _Inout_ DISPLAYCONFIG_DEVICE_INFO_HEADER* requestPacket);
WINUSERAPI WINUSERAPI
LONG LONG
WINAPI WINAPI
DisplayConfigSetDeviceInfo( DisplayConfigSetDeviceInfo(
__in DISPLAYCONFIG_DEVICE_INFO_HEADER* setPacket); _In_ DISPLAYCONFIG_DEVICE_INFO_HEADER* setPacket);
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#endif /* NOGDI */ #endif /* NOGDI */
#endif /* _WINGDI_ */ #endif /* _WINGDI_ */
WINUSERAPI WINUSERAPI
_Success_(return != FALSE)
BOOL BOOL
WINAPI WINAPI
SystemParametersInfoA( SystemParametersInfoA(
__in UINT uiAction, _In_ UINT uiAction,
__in UINT uiParam, _In_ UINT uiParam,
__inout_opt PVOID pvParam, _Pre_maybenull_ _Post_valid_ PVOID pvParam,
__in UINT fWinIni); _In_ UINT fWinIni);
WINUSERAPI WINUSERAPI
_Success_(return != FALSE)
BOOL BOOL
WINAPI WINAPI
SystemParametersInfoW( SystemParametersInfoW(
__in UINT uiAction, _In_ UINT uiAction,
__in UINT uiParam, _In_ UINT uiParam,
__inout_opt PVOID pvParam, _Pre_maybenull_ _Post_valid_ PVOID pvParam,
__in UINT fWinIni); _In_ UINT fWinIni);
#ifdef UNICODE #ifdef UNICODE
#define SystemParametersInfo SystemParametersInfoW #define SystemParametersInfo SystemParametersInfoW
#else #else
#define SystemParametersInfo SystemParametersInfoA #define SystemParametersInfo SystemParametersInfoA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* !NOSYSPARAMSINFO */ #endif /* !NOSYSPARAMSINFO */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Accessibility support * Accessibility support
*/ */
typedef struct tagFILTERKEYS typedef struct tagFILTERKEYS
{ {
UINT cbSize; UINT cbSize;
DWORD dwFlags; DWORD dwFlags;
DWORD iWaitMSec; // Acceptance Delay DWORD iWaitMSec; // Acceptance Delay
DWORD iDelayMSec; // Delay Until Repeat DWORD iDelayMSec; // Delay Until Repeat
DWORD iRepeatMSec; // Repeat Rate DWORD iRepeatMSec; // Repeat Rate
DWORD iBounceMSec; // Debounce Time DWORD iBounceMSec; // Debounce Time
} FILTERKEYS, *LPFILTERKEYS; } FILTERKEYS, *LPFILTERKEYS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* FILTERKEYS dwFlags field * FILTERKEYS dwFlags field
*/ */
#define FKF_FILTERKEYSON 0x00000001 #define FKF_FILTERKEYSON 0x00000001
#define FKF_AVAILABLE 0x00000002 #define FKF_AVAILABLE 0x00000002
#define FKF_HOTKEYACTIVE 0x00000004 #define FKF_HOTKEYACTIVE 0x00000004
#define FKF_CONFIRMHOTKEY 0x00000008 #define FKF_CONFIRMHOTKEY 0x00000008
#define FKF_HOTKEYSOUND 0x00000010 #define FKF_HOTKEYSOUND 0x00000010
#define FKF_INDICATOR 0x00000020 #define FKF_INDICATOR 0x00000020
#define FKF_CLICKON 0x00000040 #define FKF_CLICKON 0x00000040
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagSTICKYKEYS typedef struct tagSTICKYKEYS
{ {
UINT cbSize; UINT cbSize;
DWORD dwFlags; DWORD dwFlags;
} STICKYKEYS, *LPSTICKYKEYS; } STICKYKEYS, *LPSTICKYKEYS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* STICKYKEYS dwFlags field * STICKYKEYS dwFlags field
*/ */
#define SKF_STICKYKEYSON 0x00000001 #define SKF_STICKYKEYSON 0x00000001
#define SKF_AVAILABLE 0x00000002 #define SKF_AVAILABLE 0x00000002
#define SKF_HOTKEYACTIVE 0x00000004 #define SKF_HOTKEYACTIVE 0x00000004
#define SKF_CONFIRMHOTKEY 0x00000008 #define SKF_CONFIRMHOTKEY 0x00000008
#define SKF_HOTKEYSOUND 0x00000010 #define SKF_HOTKEYSOUND 0x00000010
#define SKF_INDICATOR 0x00000020 #define SKF_INDICATOR 0x00000020
#define SKF_AUDIBLEFEEDBACK 0x00000040 #define SKF_AUDIBLEFEEDBACK 0x00000040
skipping to change at line 11035 skipping to change at line 12440
#define SKF_LALTLOCKED 0x00100000 #define SKF_LALTLOCKED 0x00100000
#define SKF_LCTLLOCKED 0x00040000 #define SKF_LCTLLOCKED 0x00040000
#define SKF_LSHIFTLOCKED 0x00010000 #define SKF_LSHIFTLOCKED 0x00010000
#define SKF_RALTLOCKED 0x00200000 #define SKF_RALTLOCKED 0x00200000
#define SKF_RCTLLOCKED 0x00080000 #define SKF_RCTLLOCKED 0x00080000
#define SKF_RSHIFTLOCKED 0x00020000 #define SKF_RSHIFTLOCKED 0x00020000
#define SKF_LWINLOCKED 0x00400000 #define SKF_LWINLOCKED 0x00400000
#define SKF_RWINLOCKED 0x00800000 #define SKF_RWINLOCKED 0x00800000
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMOUSEKEYS typedef struct tagMOUSEKEYS
{ {
UINT cbSize; UINT cbSize;
DWORD dwFlags; DWORD dwFlags;
DWORD iMaxSpeed; DWORD iMaxSpeed;
DWORD iTimeToMaxSpeed; DWORD iTimeToMaxSpeed;
DWORD iCtrlSpeed; DWORD iCtrlSpeed;
DWORD dwReserved1; DWORD dwReserved1;
DWORD dwReserved2; DWORD dwReserved2;
} MOUSEKEYS, *LPMOUSEKEYS; } MOUSEKEYS, *LPMOUSEKEYS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* MOUSEKEYS dwFlags field * MOUSEKEYS dwFlags field
*/ */
#define MKF_MOUSEKEYSON 0x00000001 #define MKF_MOUSEKEYSON 0x00000001
#define MKF_AVAILABLE 0x00000002 #define MKF_AVAILABLE 0x00000002
#define MKF_HOTKEYACTIVE 0x00000004 #define MKF_HOTKEYACTIVE 0x00000004
#define MKF_CONFIRMHOTKEY 0x00000008 #define MKF_CONFIRMHOTKEY 0x00000008
#define MKF_HOTKEYSOUND 0x00000010 #define MKF_HOTKEYSOUND 0x00000010
#define MKF_INDICATOR 0x00000020 #define MKF_INDICATOR 0x00000020
#define MKF_MODIFIERS 0x00000040 #define MKF_MODIFIERS 0x00000040
#define MKF_REPLACENUMBERS 0x00000080 #define MKF_REPLACENUMBERS 0x00000080
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
#define MKF_LEFTBUTTONSEL 0x10000000 #define MKF_LEFTBUTTONSEL 0x10000000
#define MKF_RIGHTBUTTONSEL 0x20000000 #define MKF_RIGHTBUTTONSEL 0x20000000
#define MKF_LEFTBUTTONDOWN 0x01000000 #define MKF_LEFTBUTTONDOWN 0x01000000
#define MKF_RIGHTBUTTONDOWN 0x02000000 #define MKF_RIGHTBUTTONDOWN 0x02000000
#define MKF_MOUSEMODE 0x80000000 #define MKF_MOUSEMODE 0x80000000
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagACCESSTIMEOUT typedef struct tagACCESSTIMEOUT
{ {
UINT cbSize; UINT cbSize;
DWORD dwFlags; DWORD dwFlags;
DWORD iTimeOutMSec; DWORD iTimeOutMSec;
} ACCESSTIMEOUT, *LPACCESSTIMEOUT; } ACCESSTIMEOUT, *LPACCESSTIMEOUT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* ACCESSTIMEOUT dwFlags field * ACCESSTIMEOUT dwFlags field
*/ */
#define ATF_TIMEOUTON 0x00000001 #define ATF_TIMEOUTON 0x00000001
#define ATF_ONOFFFEEDBACK 0x00000002 #define ATF_ONOFFFEEDBACK 0x00000002
/* values for SOUNDSENTRY iFSGrafEffect field */ /* values for SOUNDSENTRY iFSGrafEffect field */
#define SSGF_NONE 0 #define SSGF_NONE 0
#define SSGF_DISPLAY 3 #define SSGF_DISPLAY 3
skipping to change at line 11095 skipping to change at line 12512
#define SSTF_BORDER 2 #define SSTF_BORDER 2
#define SSTF_DISPLAY 3 #define SSTF_DISPLAY 3
/* values for SOUNDSENTRY iWindowsEffect field */ /* values for SOUNDSENTRY iWindowsEffect field */
#define SSWF_NONE 0 #define SSWF_NONE 0
#define SSWF_TITLE 1 #define SSWF_TITLE 1
#define SSWF_WINDOW 2 #define SSWF_WINDOW 2
#define SSWF_DISPLAY 3 #define SSWF_DISPLAY 3
#define SSWF_CUSTOM 4 #define SSWF_CUSTOM 4
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagSOUNDSENTRYA typedef struct tagSOUNDSENTRYA
{ {
UINT cbSize; UINT cbSize;
DWORD dwFlags; DWORD dwFlags;
DWORD iFSTextEffect; DWORD iFSTextEffect;
DWORD iFSTextEffectMSec; DWORD iFSTextEffectMSec;
DWORD iFSTextEffectColorBits; DWORD iFSTextEffectColorBits;
DWORD iFSGrafEffect; DWORD iFSGrafEffect;
DWORD iFSGrafEffectMSec; DWORD iFSGrafEffectMSec;
DWORD iFSGrafEffectColor; DWORD iFSGrafEffectColor;
skipping to change at line 11133 skipping to change at line 12553
DWORD iWindowsEffectOrdinal; DWORD iWindowsEffectOrdinal;
} SOUNDSENTRYW, *LPSOUNDSENTRYW; } SOUNDSENTRYW, *LPSOUNDSENTRYW;
#ifdef UNICODE #ifdef UNICODE
typedef SOUNDSENTRYW SOUNDSENTRY; typedef SOUNDSENTRYW SOUNDSENTRY;
typedef LPSOUNDSENTRYW LPSOUNDSENTRY; typedef LPSOUNDSENTRYW LPSOUNDSENTRY;
#else #else
typedef SOUNDSENTRYA SOUNDSENTRY; typedef SOUNDSENTRYA SOUNDSENTRY;
typedef LPSOUNDSENTRYA LPSOUNDSENTRY; typedef LPSOUNDSENTRYA LPSOUNDSENTRY;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* SOUNDSENTRY dwFlags field * SOUNDSENTRY dwFlags field
*/ */
#define SSF_SOUNDSENTRYON 0x00000001 #define SSF_SOUNDSENTRYON 0x00000001
#define SSF_AVAILABLE 0x00000002 #define SSF_AVAILABLE 0x00000002
#define SSF_INDICATOR 0x00000004 #define SSF_INDICATOR 0x00000004
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SoundSentry(VOID); SoundSentry(VOID);
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
typedef struct tagTOGGLEKEYS typedef struct tagTOGGLEKEYS
{ {
UINT cbSize; UINT cbSize;
DWORD dwFlags; DWORD dwFlags;
} TOGGLEKEYS, *LPTOGGLEKEYS; } TOGGLEKEYS, *LPTOGGLEKEYS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* TOGGLEKEYS dwFlags field * TOGGLEKEYS dwFlags field
*/ */
#define TKF_TOGGLEKEYSON 0x00000001 #define TKF_TOGGLEKEYSON 0x00000001
#define TKF_AVAILABLE 0x00000002 #define TKF_AVAILABLE 0x00000002
#define TKF_HOTKEYACTIVE 0x00000004 #define TKF_HOTKEYACTIVE 0x00000004
#define TKF_CONFIRMHOTKEY 0x00000008 #define TKF_CONFIRMHOTKEY 0x00000008
#define TKF_HOTKEYSOUND 0x00000010 #define TKF_HOTKEYSOUND 0x00000010
#define TKF_INDICATOR 0x00000020 #define TKF_INDICATOR 0x00000020
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
typedef struct tagAUDIODESCRIPTION { typedef struct tagAUDIODESCRIPTION {
UINT cbSize; // sizeof(AudioDescriptionType) UINT cbSize; // sizeof(AudioDescriptionType)
BOOL Enabled; // On/Off BOOL Enabled; // On/Off
LCID Locale; // locale ID for language LCID Locale; // locale ID for language
} AUDIODESCRIPTION, *LPAUDIODESCRIPTION; } AUDIODESCRIPTION, *LPAUDIODESCRIPTION;
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
/* /*
* Set debug level * Set debug level
*/ */
WINUSERAPI WINUSERAPI
VOID VOID
WINAPI WINAPI
SetDebugErrorLevel( SetDebugErrorLevel(
__in DWORD dwLevel); _In_ DWORD dwLevel);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* SetLastErrorEx() types. * SetLastErrorEx() types.
*/ */
#define SLE_ERROR 0x00000001 #define SLE_ERROR 0x00000001
#define SLE_MINORERROR 0x00000002 #define SLE_MINORERROR 0x00000002
#define SLE_WARNING 0x00000003 #define SLE_WARNING 0x00000003
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
VOID VOID
WINAPI WINAPI
SetLastErrorEx( SetLastErrorEx(
__in DWORD dwErrCode, _In_ DWORD dwErrCode,
__in DWORD dwType); _In_ DWORD dwType);
WINUSERAPI WINUSERAPI
int int
WINAPI WINAPI
InternalGetWindowText( InternalGetWindowText(
__in HWND hWnd, _In_ HWND hWnd,
__out_ecount_part(cchMaxCount, return + 1) LPWSTR pString, _Out_writes_to_(cchMaxCount, return + 1) LPWSTR pString,
__in int cchMaxCount); _In_ int cchMaxCount);
#if defined(WINNT) #if defined(WINNT)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EndTask( EndTask(
__in HWND hWnd, _In_ HWND hWnd,
__in BOOL fShutDown, _In_ BOOL fShutDown,
__in BOOL fForce); _In_ BOOL fForce);
#endif #endif
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CancelShutdown( CancelShutdown(
VOID); VOID);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
/* /*
* Multimonitor API. * Multimonitor API.
*/ */
#define MONITOR_DEFAULTTONULL 0x00000000 #define MONITOR_DEFAULTTONULL 0x00000000
#define MONITOR_DEFAULTTOPRIMARY 0x00000001 #define MONITOR_DEFAULTTOPRIMARY 0x00000001
#define MONITOR_DEFAULTTONEAREST 0x00000002 #define MONITOR_DEFAULTTONEAREST 0x00000002
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HMONITOR HMONITOR
WINAPI WINAPI
MonitorFromPoint( MonitorFromPoint(
__in POINT pt, _In_ POINT pt,
__in DWORD dwFlags); _In_ DWORD dwFlags);
WINUSERAPI WINUSERAPI
HMONITOR HMONITOR
WINAPI WINAPI
MonitorFromRect( MonitorFromRect(
__in LPCRECT lprc, _In_ LPCRECT lprc,
__in DWORD dwFlags); _In_ DWORD dwFlags);
WINUSERAPI WINUSERAPI
HMONITOR HMONITOR
WINAPI WINAPI
MonitorFromWindow( MonitorFromWindow(
__in HWND hwnd, _In_ HWND hwnd,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define MONITORINFOF_PRIMARY 0x00000001 #define MONITORINFOF_PRIMARY 0x00000001
#ifndef CCHDEVICENAME #ifndef CCHDEVICENAME
#define CCHDEVICENAME 32 #define CCHDEVICENAME 32
#endif #endif
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMONITORINFO typedef struct tagMONITORINFO
{ {
DWORD cbSize; DWORD cbSize;
RECT rcMonitor; RECT rcMonitor;
RECT rcWork; RECT rcWork;
DWORD dwFlags; DWORD dwFlags;
} MONITORINFO, *LPMONITORINFO; } MONITORINFO, *LPMONITORINFO;
#ifdef __cplusplus #ifdef __cplusplus
typedef struct tagMONITORINFOEXA : public tagMONITORINFO typedef struct tagMONITORINFOEXA : public tagMONITORINFO
skipping to change at line 11305 skipping to change at line 12755
#else #else
typedef MONITORINFOEXA MONITORINFOEX; typedef MONITORINFOEXA MONITORINFOEX;
typedef LPMONITORINFOEXA LPMONITORINFOEX; typedef LPMONITORINFOEXA LPMONITORINFOEX;
#endif // UNICODE #endif // UNICODE
#endif #endif
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMonitorInfoA( GetMonitorInfoA(
__in HMONITOR hMonitor, _In_ HMONITOR hMonitor,
__inout LPMONITORINFO lpmi); _Inout_ LPMONITORINFO lpmi);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMonitorInfoW( GetMonitorInfoW(
__in HMONITOR hMonitor, _In_ HMONITOR hMonitor,
__inout LPMONITORINFO lpmi); _Inout_ LPMONITORINFO lpmi);
#ifdef UNICODE #ifdef UNICODE
#define GetMonitorInfo GetMonitorInfoW #define GetMonitorInfo GetMonitorInfoW
#else #else
#define GetMonitorInfo GetMonitorInfoA #define GetMonitorInfo GetMonitorInfoA
#endif // !UNICODE #endif // !UNICODE
typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM); typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
EnumDisplayMonitors( EnumDisplayMonitors(
__in_opt HDC hdc, _In_opt_ HDC hdc,
__in_opt LPCRECT lprcClip, _In_opt_ LPCRECT lprcClip,
__in MONITORENUMPROC lpfnEnum, _In_ MONITORENUMPROC lpfnEnum,
__in LPARAM dwData); _In_ LPARAM dwData);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NOWINABLE #ifndef NOWINABLE
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* WinEvents - Active Accessibility hooks * WinEvents - Active Accessibility hooks
*/ */
WINUSERAPI WINUSERAPI
VOID VOID
WINAPI WINAPI
NotifyWinEvent( NotifyWinEvent(
__in DWORD event, _In_ DWORD event,
__in HWND hwnd, _In_ HWND hwnd,
__in LONG idObject, _In_ LONG idObject,
__in LONG idChild); _In_ LONG idChild);
typedef VOID (CALLBACK* WINEVENTPROC)( typedef VOID (CALLBACK* WINEVENTPROC)(
HWINEVENTHOOK hWinEventHook, HWINEVENTHOOK hWinEventHook,
DWORD event, DWORD event,
HWND hwnd, HWND hwnd,
LONG idObject, LONG idObject,
LONG idChild, LONG idChild,
DWORD idEventThread, DWORD idEventThread,
DWORD dwmsEventTime); DWORD dwmsEventTime);
WINUSERAPI WINUSERAPI
HWINEVENTHOOK HWINEVENTHOOK
WINAPI WINAPI
SetWinEventHook( SetWinEventHook(
__in DWORD eventMin, _In_ DWORD eventMin,
__in DWORD eventMax, _In_ DWORD eventMax,
__in_opt HMODULE hmodWinEventProc, _In_opt_ HMODULE hmodWinEventProc,
__in WINEVENTPROC pfnWinEventProc, _In_ WINEVENTPROC pfnWinEventProc,
__in DWORD idProcess, _In_ DWORD idProcess,
__in DWORD idThread, _In_ DWORD idThread,
__in DWORD dwFlags); _In_ DWORD dwFlags);
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsWinEventHookInstalled( IsWinEventHookInstalled(
__in DWORD event); _In_ DWORD event);
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* dwFlags for SetWinEventHook * dwFlags for SetWinEventHook
*/ */
#define WINEVENT_OUTOFCONTEXT 0x0000 // Events are ASYNC #define WINEVENT_OUTOFCONTEXT 0x0000 // Events are ASYNC
#define WINEVENT_SKIPOWNTHREAD 0x0001 // Don't call back for events on install er's thread #define WINEVENT_SKIPOWNTHREAD 0x0001 // Don't call back for events on install er's thread
#define WINEVENT_SKIPOWNPROCESS 0x0002 // Don't call back for events on install er's process #define WINEVENT_SKIPOWNPROCESS 0x0002 // Don't call back for events on install er's process
#define WINEVENT_INCONTEXT 0x0004 // Events are SYNC, this causes your dll to be injected into every process #define WINEVENT_INCONTEXT 0x0004 // Events are SYNC, this causes your dll to be injected into every process
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UnhookWinEvent( UnhookWinEvent(
__in HWINEVENTHOOK hWinEventHook); _In_ HWINEVENTHOOK hWinEventHook);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* idObject values for WinEventProc and NotifyWinEvent * idObject values for WinEventProc and NotifyWinEvent
*/ */
/* /*
* hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow() * hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow()
* to get an interface pointer to the container. indexChild is the item * to get an interface pointer to the container. indexChild is the item
* within the container in question. Setup a VARIANT with vt VT_I4 and * within the container in question. Setup a VARIANT with vt VT_I4 and
* lVal the indexChild and pass that in to all methods. Then you * lVal the indexChild and pass that in to all methods. Then you
skipping to change at line 11593 skipping to change at line 13058
* EVENT_SYSTEM_MINIMIZEEND * EVENT_SYSTEM_MINIMIZEEND
* Sent when a window minimizes and just before it restores. * Sent when a window minimizes and just before it restores.
*/ */
#define EVENT_SYSTEM_MINIMIZESTART 0x0016 #define EVENT_SYSTEM_MINIMIZESTART 0x0016
#define EVENT_SYSTEM_MINIMIZEEND 0x0017 #define EVENT_SYSTEM_MINIMIZEEND 0x0017
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
#define EVENT_SYSTEM_DESKTOPSWITCH 0x0020 #define EVENT_SYSTEM_DESKTOPSWITCH 0x0020
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
#if(_WIN32_WINNT >= 0x0602)
// AppGrabbed: HWND = hwnd of app thumbnail, objectID = 0, childID = 0
#define EVENT_SYSTEM_SWITCHER_APPGRABBED 0x0024
// OverTarget: HWND = hwnd of app thumbnail, objectID =
// 1 for center
// 2 for near snapped
// 3 for far snapped
// 4 for prune
// childID = 0
#define EVENT_SYSTEM_SWITCHER_APPOVERTARGET 0x0025
// Dropped: HWND = hwnd of app thumbnail, objectID = <same as above>, childID =
0
#define EVENT_SYSTEM_SWITCHER_APPDROPPED 0x0026
// Cancelled: HWND = hwnd of app thumbnail, objectID = 0, childID = 0
#define EVENT_SYSTEM_SWITCHER_CANCELLED 0x0027
#endif /* _WIN32_WINNT >= 0x0602 */
#if(_WIN32_WINNT >= 0x0602)
/*
* Sent when an IME's soft key is pressed and should be echoed,
* but is not passed through the keyboard hook.
* Must not be sent when a key is sent through the keyboard hook.
* HWND is the hwnd of the UI containing the soft key
* idChild is the Unicode value of the character entered
* idObject is a bitfield
* 0x00000001: set if a 32-bit Unicode surrogate pair is used
*/
#define EVENT_SYSTEM_IME_KEY_NOTIFICATION 0x0029
#endif /* _WIN32_WINNT >= 0x0602 */
#if(_WIN32_WINNT >= 0x0601) #if(_WIN32_WINNT >= 0x0601)
#define EVENT_SYSTEM_END 0x00FF #define EVENT_SYSTEM_END 0x00FF
#define EVENT_OEM_DEFINED_START 0x0101 #define EVENT_OEM_DEFINED_START 0x0101
#define EVENT_OEM_DEFINED_END 0x01FF #define EVENT_OEM_DEFINED_END 0x01FF
#define EVENT_UIA_EVENTID_START 0x4E00 #define EVENT_UIA_EVENTID_START 0x4E00
#define EVENT_UIA_EVENTID_END 0x4EFF #define EVENT_UIA_EVENTID_END 0x4EFF
#define EVENT_UIA_PROPID_START 0x7500 #define EVENT_UIA_PROPID_START 0x7500
skipping to change at line 11837 skipping to change at line 13333
* idObject == OBJID_CLIENT * idObject == OBJID_CLIENT
* idChild == CHILDID_SELF * idChild == CHILDID_SELF
*/ */
#define EVENT_OBJECT_CONTENTSCROLLED 0x8015 #define EVENT_OBJECT_CONTENTSCROLLED 0x8015
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
#if(_WIN32_WINNT >= 0x0601) #if(_WIN32_WINNT >= 0x0601)
#define EVENT_SYSTEM_ARRANGMENTPREVIEW 0x8016 #define EVENT_SYSTEM_ARRANGMENTPREVIEW 0x8016
#endif /* _WIN32_WINNT >= 0x0601 */ #endif /* _WIN32_WINNT >= 0x0601 */
#if(_WIN32_WINNT >= 0x0602)
/*
* EVENT_OBJECT_CLOAKED / UNCLOAKED
* Sent when a window is cloaked or uncloaked.
* A cloaked window still exists, but is invisible to
* the user.
*/
#define EVENT_OBJECT_CLOAKED 0x8017
#define EVENT_OBJECT_UNCLOAKED 0x8018
/*
* EVENT_OBJECT_LIVEREGIONCHANGED
* Sent when an object that is part of a live region
* changes. A live region is an area of an application
* that changes frequently and/or asynchronously, so
* that an assistive technology tool might want to pay
* special attention to it.
*/
#define EVENT_OBJECT_LIVEREGIONCHANGED 0x8019
/*
* EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED
* Sent when a window that is hosting other Accessible
* objects changes the hosted objects. A client may
* wish to requery to see what the new hosted objects are,
* especially if it has been monitoring events from this
* window. A hosted object is one with a different Accessibility
* framework (MSAA or UI Automation) from its host.
*
* Changes in hosted objects with the *same* framework
* as the parent should be handed with the usual structural
* change events, such as EVENT_OBJECT_CREATED for MSAA.
* see above.
*/
#define EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED 0x8020
/*
* Drag / Drop Events
* These events are used in conjunction with the
* UI Automation Drag/Drop patterns.
*
* For DRAGSTART, DRAGCANCEL, and DRAGCOMPLETE,
* HWND+objectID+childID refers to the object being dragged.
*
* For DRAGENTER, DRAGLEAVE, and DRAGDROPPED,
* HWND+objectID+childID refers to the target of the drop
* that is being hovered over.
*/
#define EVENT_OBJECT_DRAGSTART 0x8021
#define EVENT_OBJECT_DRAGCANCEL 0x8022
#define EVENT_OBJECT_DRAGCOMPLETE 0x8023
#define EVENT_OBJECT_DRAGENTER 0x8024
#define EVENT_OBJECT_DRAGLEAVE 0x8025
#define EVENT_OBJECT_DRAGDROPPED 0x8026
/*
* EVENT_OBJECT_IME_SHOW/HIDE
* Sent by an IME window when it has become visible or invisible.
*/
#define EVENT_OBJECT_IME_SHOW 0x8027
#define EVENT_OBJECT_IME_HIDE 0x8028
/*
* EVENT_OBJECT_IME_CHANGE
* Sent by an IME window whenever it changes size or position.
*/
#define EVENT_OBJECT_IME_CHANGE 0x8029
#define EVENT_OBJECT_TEXTEDIT_CONVERSIONTARGETCHANGED 0x8030
#endif /* _WIN32_WINNT >= 0x0602 */
#if(_WIN32_WINNT >= 0x0601) #if(_WIN32_WINNT >= 0x0601)
#define EVENT_OBJECT_END 0x80FF #define EVENT_OBJECT_END 0x80FF
#define EVENT_AIA_START 0xA000 #define EVENT_AIA_START 0xA000
#define EVENT_AIA_END 0xAFFF #define EVENT_AIA_END 0xAFFF
#endif /* _WIN32_WINNT >= 0x0601 */ #endif /* _WIN32_WINNT >= 0x0601 */
/* /*
* Child IDs * Child IDs
*/ */
skipping to change at line 11879 skipping to change at line 13450
/* /*
* System Alerts (indexChild of system ALERT notification) * System Alerts (indexChild of system ALERT notification)
*/ */
#define ALERT_SYSTEM_INFORMATIONAL 1 // MB_INFORMATION #define ALERT_SYSTEM_INFORMATIONAL 1 // MB_INFORMATION
#define ALERT_SYSTEM_WARNING 2 // MB_WARNING #define ALERT_SYSTEM_WARNING 2 // MB_WARNING
#define ALERT_SYSTEM_ERROR 3 // MB_ERROR #define ALERT_SYSTEM_ERROR 3 // MB_ERROR
#define ALERT_SYSTEM_QUERY 4 // MB_QUESTION #define ALERT_SYSTEM_QUERY 4 // MB_QUESTION
#define ALERT_SYSTEM_CRITICAL 5 // HardSysErrBox #define ALERT_SYSTEM_CRITICAL 5 // HardSysErrBox
#define CALERT_SYSTEM 6 #define CALERT_SYSTEM 6
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagGUITHREADINFO typedef struct tagGUITHREADINFO
{ {
DWORD cbSize; DWORD cbSize;
DWORD flags; DWORD flags;
HWND hwndActive; HWND hwndActive;
HWND hwndFocus; HWND hwndFocus;
HWND hwndCapture; HWND hwndCapture;
HWND hwndMenuOwner; HWND hwndMenuOwner;
HWND hwndMoveSize; HWND hwndMoveSize;
HWND hwndCaret; HWND hwndCaret;
RECT rcCaret; RECT rcCaret;
} GUITHREADINFO, *PGUITHREADINFO, FAR * LPGUITHREADINFO; } GUITHREADINFO, *PGUITHREADINFO, FAR * LPGUITHREADINFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define GUI_CARETBLINKING 0x00000001 #define GUI_CARETBLINKING 0x00000001
#define GUI_INMOVESIZE 0x00000002 #define GUI_INMOVESIZE 0x00000002
#define GUI_INMENUMODE 0x00000004 #define GUI_INMENUMODE 0x00000004
#define GUI_SYSTEMMENUMODE 0x00000008 #define GUI_SYSTEMMENUMODE 0x00000008
#define GUI_POPUPMENUMODE 0x00000010 #define GUI_POPUPMENUMODE 0x00000010
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#if defined(_WIN64) #if defined(_WIN64)
#define GUI_16BITTASK 0x00000000 #define GUI_16BITTASK 0x00000000
#else #else
#define GUI_16BITTASK 0x00000020 #define GUI_16BITTASK 0x00000020
#endif #endif
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetGUIThreadInfo( GetGUIThreadInfo(
__in DWORD idThread, _In_ DWORD idThread,
__inout PGUITHREADINFO pgui); _Inout_ PGUITHREADINFO pgui);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
BlockInput( BlockInput(
BOOL fBlockIt); BOOL fBlockIt);
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
#define USER_DEFAULT_SCREEN_DPI 96 #define USER_DEFAULT_SCREEN_DPI 96
skipping to change at line 11933 skipping to change at line 13513
BOOL BOOL
WINAPI WINAPI
SetProcessDPIAware( SetProcessDPIAware(
VOID); VOID);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
IsProcessDPIAware( IsProcessDPIAware(
VOID); VOID);
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* _WIN32_WINNT >= 0x0600 */
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetWindowModuleFileNameA( GetWindowModuleFileNameA(
__in HWND hwnd, _In_ HWND hwnd,
__out_ecount_part(cchFileNameMax, return) LPSTR pszFileName, _Out_writes_to_(cchFileNameMax, return) LPSTR pszFileName,
__in UINT cchFileNameMax); _In_ UINT cchFileNameMax);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetWindowModuleFileNameW( GetWindowModuleFileNameW(
__in HWND hwnd, _In_ HWND hwnd,
__out_ecount_part(cchFileNameMax, return) LPWSTR pszFileName, _Out_writes_to_(cchFileNameMax, return) LPWSTR pszFileName,
__in UINT cchFileNameMax); _In_ UINT cchFileNameMax);
#ifdef UNICODE #ifdef UNICODE
#define GetWindowModuleFileName GetWindowModuleFileNameW #define GetWindowModuleFileName GetWindowModuleFileNameW
#else #else
#define GetWindowModuleFileName GetWindowModuleFileNameA #define GetWindowModuleFileName GetWindowModuleFileNameA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NO_STATE_FLAGS #ifndef NO_STATE_FLAGS
#define STATE_SYSTEM_UNAVAILABLE 0x00000001 // Disabled #define STATE_SYSTEM_UNAVAILABLE 0x00000001 // Disabled
#define STATE_SYSTEM_SELECTED 0x00000002 #define STATE_SYSTEM_SELECTED 0x00000002
#define STATE_SYSTEM_FOCUSED 0x00000004 #define STATE_SYSTEM_FOCUSED 0x00000004
#define STATE_SYSTEM_PRESSED 0x00000008 #define STATE_SYSTEM_PRESSED 0x00000008
#define STATE_SYSTEM_CHECKED 0x00000010 #define STATE_SYSTEM_CHECKED 0x00000010
#define STATE_SYSTEM_MIXED 0x00000020 // 3-state checkbox or toolb ar button #define STATE_SYSTEM_MIXED 0x00000020 // 3-state checkbox or toolb ar button
#define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED #define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED
#define STATE_SYSTEM_READONLY 0x00000040 #define STATE_SYSTEM_READONLY 0x00000040
#define STATE_SYSTEM_HOTTRACKED 0x00000080 #define STATE_SYSTEM_HOTTRACKED 0x00000080
skipping to change at line 11993 skipping to change at line 13577
#define STATE_SYSTEM_ALERT_LOW 0x04000000 // This information is of lo w priority #define STATE_SYSTEM_ALERT_LOW 0x04000000 // This information is of lo w priority
#define STATE_SYSTEM_ALERT_MEDIUM 0x08000000 // This information is of me dium priority #define STATE_SYSTEM_ALERT_MEDIUM 0x08000000 // This information is of me dium priority
#define STATE_SYSTEM_ALERT_HIGH 0x10000000 // This information is of hi gh priority #define STATE_SYSTEM_ALERT_HIGH 0x10000000 // This information is of hi gh priority
#define STATE_SYSTEM_PROTECTED 0x20000000 // access to this is restric ted #define STATE_SYSTEM_PROTECTED 0x20000000 // access to this is restric ted
#define STATE_SYSTEM_VALID 0x3FFFFFFF #define STATE_SYSTEM_VALID 0x3FFFFFFF
#endif #endif
#define CCHILDREN_TITLEBAR 5 #define CCHILDREN_TITLEBAR 5
#define CCHILDREN_SCROLLBAR 5 #define CCHILDREN_SCROLLBAR 5
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Information about the global cursor. * Information about the global cursor.
*/ */
typedef struct tagCURSORINFO typedef struct tagCURSORINFO
{ {
DWORD cbSize; DWORD cbSize;
DWORD flags; DWORD flags;
HCURSOR hCursor; HCURSOR hCursor;
POINT ptScreenPos; POINT ptScreenPos;
} CURSORINFO, *PCURSORINFO, *LPCURSORINFO; } CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
#define CURSOR_SHOWING 0x00000001 #define CURSOR_SHOWING 0x00000001
#if(WINVER >= 0x0602)
#define CURSOR_SUPPRESSED 0x00000002
#endif /* WINVER >= 0x0602 */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetCursorInfo( GetCursorInfo(
__inout PCURSORINFO pci); _Inout_ PCURSORINFO pci);
/* /*
* Window information snapshot * Window information snapshot
*/ */
typedef struct tagWINDOWINFO typedef struct tagWINDOWINFO
{ {
DWORD cbSize; DWORD cbSize;
RECT rcWindow; RECT rcWindow;
RECT rcClient; RECT rcClient;
DWORD dwStyle; DWORD dwStyle;
skipping to change at line 12035 skipping to change at line 13625
ATOM atomWindowType; ATOM atomWindowType;
WORD wCreatorVersion; WORD wCreatorVersion;
} WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO; } WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO;
#define WS_ACTIVECAPTION 0x0001 #define WS_ACTIVECAPTION 0x0001
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetWindowInfo( GetWindowInfo(
__in HWND hwnd, _In_ HWND hwnd,
__inout PWINDOWINFO pwi); _Inout_ PWINDOWINFO pwi);
/* /*
* Titlebar information. * Titlebar information.
*/ */
typedef struct tagTITLEBARINFO typedef struct tagTITLEBARINFO
{ {
DWORD cbSize; DWORD cbSize;
RECT rcTitleBar; RECT rcTitleBar;
DWORD rgstate[CCHILDREN_TITLEBAR + 1]; DWORD rgstate[CCHILDREN_TITLEBAR + 1];
} TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO; } TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetTitleBarInfo( GetTitleBarInfo(
__in HWND hwnd, _In_ HWND hwnd,
__inout PTITLEBARINFO pti); _Inout_ PTITLEBARINFO pti);
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
typedef struct tagTITLEBARINFOEX typedef struct tagTITLEBARINFOEX
{ {
DWORD cbSize; DWORD cbSize;
RECT rcTitleBar; RECT rcTitleBar;
DWORD rgstate[CCHILDREN_TITLEBAR + 1]; DWORD rgstate[CCHILDREN_TITLEBAR + 1];
RECT rgrect[CCHILDREN_TITLEBAR + 1]; RECT rgrect[CCHILDREN_TITLEBAR + 1];
} TITLEBARINFOEX, *PTITLEBARINFOEX, *LPTITLEBARINFOEX; } TITLEBARINFOEX, *PTITLEBARINFOEX, *LPTITLEBARINFOEX;
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
skipping to change at line 12082 skipping to change at line 13672
HMENU hMenu; // real menu handle of bar, popup HMENU hMenu; // real menu handle of bar, popup
HWND hwndMenu; // hwnd of item submenu if one HWND hwndMenu; // hwnd of item submenu if one
BOOL fBarFocused:1; // bar, popup has the focus BOOL fBarFocused:1; // bar, popup has the focus
BOOL fFocused:1; // item has the focus BOOL fFocused:1; // item has the focus
} MENUBARINFO, *PMENUBARINFO, *LPMENUBARINFO; } MENUBARINFO, *PMENUBARINFO, *LPMENUBARINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetMenuBarInfo( GetMenuBarInfo(
__in HWND hwnd, _In_ HWND hwnd,
__in LONG idObject, _In_ LONG idObject,
__in LONG idItem, _In_ LONG idItem,
__inout PMENUBARINFO pmbi); _Inout_ PMENUBARINFO pmbi);
/* /*
* Scrollbar information * Scrollbar information
*/ */
typedef struct tagSCROLLBARINFO typedef struct tagSCROLLBARINFO
{ {
DWORD cbSize; DWORD cbSize;
RECT rcScrollBar; RECT rcScrollBar;
int dxyLineButton; int dxyLineButton;
int xyThumbTop; int xyThumbTop;
int xyThumbBottom; int xyThumbBottom;
int reserved; int reserved;
DWORD rgstate[CCHILDREN_SCROLLBAR + 1]; DWORD rgstate[CCHILDREN_SCROLLBAR + 1];
} SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO; } SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetScrollBarInfo( GetScrollBarInfo(
__in HWND hwnd, _In_ HWND hwnd,
__in LONG idObject, _In_ LONG idObject,
__inout PSCROLLBARINFO psbi); _Inout_ PSCROLLBARINFO psbi);
/* /*
* Combobox information * Combobox information
*/ */
typedef struct tagCOMBOBOXINFO typedef struct tagCOMBOBOXINFO
{ {
DWORD cbSize; DWORD cbSize;
RECT rcItem; RECT rcItem;
RECT rcButton; RECT rcButton;
DWORD stateButton; DWORD stateButton;
HWND hwndCombo; HWND hwndCombo;
HWND hwndItem; HWND hwndItem;
HWND hwndList; HWND hwndList;
} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO; } COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetComboBoxInfo( GetComboBoxInfo(
__in HWND hwndCombo, _In_ HWND hwndCombo,
__inout PCOMBOBOXINFO pcbi); _Inout_ PCOMBOBOXINFO pcbi);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* The "real" ancestor window * The "real" ancestor window
*/ */
#define GA_PARENT 1 #define GA_PARENT 1
#define GA_ROOT 2 #define GA_ROOT 2
#define GA_ROOTOWNER 3 #define GA_ROOTOWNER 3
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
GetAncestor( GetAncestor(
__in HWND hwnd, _In_ HWND hwnd,
__in UINT gaFlags); _In_ UINT gaFlags);
/* /*
* This gets the REAL child window at the point. If it is in the dead * This gets the REAL child window at the point. If it is in the dead
* space of a group box, it will try a sibling behind it. But static * space of a group box, it will try a sibling behind it. But static
* fields will get returned. In other words, it is kind of a cross between * fields will get returned. In other words, it is kind of a cross between
* ChildWindowFromPointEx and WindowFromPoint. * ChildWindowFromPointEx and WindowFromPoint.
*/ */
WINUSERAPI WINUSERAPI
HWND HWND
WINAPI WINAPI
RealChildWindowFromPoint( RealChildWindowFromPoint(
__in HWND hwndParent, _In_ HWND hwndParent,
__in POINT ptParentClientCoords); _In_ POINT ptParentClientCoords);
/* /*
* This gets the name of the window TYPE, not class. This allows us to * This gets the name of the window TYPE, not class. This allows us to
* recognize ThunderButton32 et al. * recognize ThunderButton32 et al.
*/ */
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
RealGetWindowClassA( RealGetWindowClassA(
__in HWND hwnd, _In_ HWND hwnd,
__out_ecount_part(cchClassNameMax, return) LPSTR ptszClassName, _Out_writes_to_(cchClassNameMax, return) LPSTR ptszClassName,
__in UINT cchClassNameMax); _In_ UINT cchClassNameMax);
/* /*
* This gets the name of the window TYPE, not class. This allows us to * This gets the name of the window TYPE, not class. This allows us to
* recognize ThunderButton32 et al. * recognize ThunderButton32 et al.
*/ */
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
RealGetWindowClassW( RealGetWindowClassW(
__in HWND hwnd, _In_ HWND hwnd,
__out_ecount_part(cchClassNameMax, return) LPWSTR ptszClassName, _Out_writes_to_(cchClassNameMax, return) LPWSTR ptszClassName,
__in UINT cchClassNameMax); _In_ UINT cchClassNameMax);
#ifdef UNICODE #ifdef UNICODE
#define RealGetWindowClass RealGetWindowClassW #define RealGetWindowClass RealGetWindowClassW
#else #else
#define RealGetWindowClass RealGetWindowClassA #define RealGetWindowClass RealGetWindowClassA
#endif // !UNICODE #endif // !UNICODE
/* /*
* Alt-Tab Switch window information. * Alt-Tab Switch window information.
*/ */
typedef struct tagALTTABINFO typedef struct tagALTTABINFO
skipping to change at line 12205 skipping to change at line 13801
int iRowFocus; int iRowFocus;
int cxItem; int cxItem;
int cyItem; int cyItem;
POINT ptStart; POINT ptStart;
} ALTTABINFO, *PALTTABINFO, *LPALTTABINFO; } ALTTABINFO, *PALTTABINFO, *LPALTTABINFO;
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetAltTabInfoA( GetAltTabInfoA(
__in_opt HWND hwnd, _In_opt_ HWND hwnd,
__in int iItem, _In_ int iItem,
__inout PALTTABINFO pati, _Inout_ PALTTABINFO pati,
__out_ecount_opt(cchItemText) LPSTR pszItemText, _Out_writes_opt_(cchItemText) LPSTR pszItemText,
__in UINT cchItemText); _In_ UINT cchItemText);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetAltTabInfoW( GetAltTabInfoW(
__in_opt HWND hwnd, _In_opt_ HWND hwnd,
__in int iItem, _In_ int iItem,
__inout PALTTABINFO pati, _Inout_ PALTTABINFO pati,
__out_ecount_opt(cchItemText) LPWSTR pszItemText, _Out_writes_opt_(cchItemText) LPWSTR pszItemText,
__in UINT cchItemText); _In_ UINT cchItemText);
#ifdef UNICODE #ifdef UNICODE
#define GetAltTabInfo GetAltTabInfoW #define GetAltTabInfo GetAltTabInfoW
#else #else
#define GetAltTabInfo GetAltTabInfoA #define GetAltTabInfo GetAltTabInfoA
#endif // !UNICODE #endif // !UNICODE
/* /*
* Listbox information. * Listbox information.
* Returns the number of items per row. * Returns the number of items per row.
*/ */
WINUSERAPI WINUSERAPI
DWORD DWORD
WINAPI WINAPI
GetListBoxInfo( GetListBoxInfo(
__in HWND hwnd); _In_ HWND hwnd);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* NOWINABLE */ #endif /* NOWINABLE */
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
LockWorkStation( LockWorkStation(
VOID); VOID);
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#if(_WIN32_WINNT >= 0x0500) #if(_WIN32_WINNT >= 0x0500)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
UserHandleGrantAccess( UserHandleGrantAccess(
__in HANDLE hUserHandle, _In_ HANDLE hUserHandle,
__in HANDLE hJob, _In_ HANDLE hJob,
__in BOOL bGrant); _In_ BOOL bGrant);
#endif /* _WIN32_WINNT >= 0x0500 */ #endif /* _WIN32_WINNT >= 0x0500 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
/* /*
* Raw Input Messages. * Raw Input Messages.
*/ */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
DECLARE_HANDLE(HRAWINPUT); DECLARE_HANDLE(HRAWINPUT);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* WM_INPUT wParam * WM_INPUT wParam
*/ */
/* /*
* Use this macro to get the input code from wParam. * Use this macro to get the input code from wParam.
*/ */
#define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff) #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff)
/* /*
skipping to change at line 12288 skipping to change at line 13899
* so that the system can perform clean ups. * so that the system can perform clean ups.
*/ */
#define RIM_INPUT 0 #define RIM_INPUT 0
/* /*
* The input is sink only. The app is expected * The input is sink only. The app is expected
* to behave nicely. * to behave nicely.
*/ */
#define RIM_INPUTSINK 1 #define RIM_INPUTSINK 1
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Raw Input data header * Raw Input data header
*/ */
typedef struct tagRAWINPUTHEADER { typedef struct tagRAWINPUTHEADER {
DWORD dwType; DWORD dwType;
DWORD dwSize; DWORD dwSize;
HANDLE hDevice; HANDLE hDevice;
WPARAM wParam; WPARAM wParam;
} RAWINPUTHEADER, *PRAWINPUTHEADER, *LPRAWINPUTHEADER; } RAWINPUTHEADER, *PRAWINPUTHEADER, *LPRAWINPUTHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Type of the raw input * Type of the raw input
*/ */
#define RIM_TYPEMOUSE 0 #define RIM_TYPEMOUSE 0
#define RIM_TYPEKEYBOARD 1 #define RIM_TYPEKEYBOARD 1
#define RIM_TYPEHID 2 #define RIM_TYPEHID 2
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Raw format of the mouse input * Raw format of the mouse input
*/ */
typedef struct tagRAWMOUSE { typedef struct tagRAWMOUSE {
/* /*
* Indicator flags. * Indicator flags.
*/ */
USHORT usFlags; USHORT usFlags;
/* /*
skipping to change at line 12347 skipping to change at line 13967
*/ */
LONG lLastY; LONG lLastY;
/* /*
* Device-specific additional information for the event. * Device-specific additional information for the event.
*/ */
ULONG ulExtraInformation; ULONG ulExtraInformation;
} RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE; } RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Define the mouse button state indicators. * Define the mouse button state indicators.
*/ */
#define RI_MOUSE_LEFT_BUTTON_DOWN 0x0001 // Left Button changed to down. #define RI_MOUSE_LEFT_BUTTON_DOWN 0x0001 // Left Button changed to down.
#define RI_MOUSE_LEFT_BUTTON_UP 0x0002 // Left Button changed to up. #define RI_MOUSE_LEFT_BUTTON_UP 0x0002 // Left Button changed to up.
#define RI_MOUSE_RIGHT_BUTTON_DOWN 0x0004 // Right Button changed to down. #define RI_MOUSE_RIGHT_BUTTON_DOWN 0x0004 // Right Button changed to down.
#define RI_MOUSE_RIGHT_BUTTON_UP 0x0008 // Right Button changed to up. #define RI_MOUSE_RIGHT_BUTTON_UP 0x0008 // Right Button changed to up.
#define RI_MOUSE_MIDDLE_BUTTON_DOWN 0x0010 // Middle Button changed to down. #define RI_MOUSE_MIDDLE_BUTTON_DOWN 0x0010 // Middle Button changed to down.
#define RI_MOUSE_MIDDLE_BUTTON_UP 0x0020 // Middle Button changed to up. #define RI_MOUSE_MIDDLE_BUTTON_UP 0x0020 // Middle Button changed to up.
skipping to change at line 12387 skipping to change at line 14010
* Define the mouse indicator flags. * Define the mouse indicator flags.
*/ */
#define MOUSE_MOVE_RELATIVE 0 #define MOUSE_MOVE_RELATIVE 0
#define MOUSE_MOVE_ABSOLUTE 1 #define MOUSE_MOVE_ABSOLUTE 1
#define MOUSE_VIRTUAL_DESKTOP 0x02 // the coordinates are mapped to the virt ual desktop #define MOUSE_VIRTUAL_DESKTOP 0x02 // the coordinates are mapped to the virt ual desktop
#define MOUSE_ATTRIBUTES_CHANGED 0x04 // requery for mouse attributes #define MOUSE_ATTRIBUTES_CHANGED 0x04 // requery for mouse attributes
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
#define MOUSE_MOVE_NOCOALESCE 0x08 // do not coalesce mouse moves #define MOUSE_MOVE_NOCOALESCE 0x08 // do not coalesce mouse moves
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Raw format of the keyboard input * Raw format of the keyboard input
*/ */
typedef struct tagRAWKEYBOARD { typedef struct tagRAWKEYBOARD {
/* /*
* The "make" scan code (key depression). * The "make" scan code (key depression).
*/ */
USHORT MakeCode; USHORT MakeCode;
/* /*
skipping to change at line 12417 skipping to change at line 14043
USHORT VKey; USHORT VKey;
UINT Message; UINT Message;
/* /*
* Device-specific additional information for the event. * Device-specific additional information for the event.
*/ */
ULONG ExtraInformation; ULONG ExtraInformation;
} RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD; } RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Define the keyboard overrun MakeCode. * Define the keyboard overrun MakeCode.
*/ */
#define KEYBOARD_OVERRUN_MAKE_CODE 0xFF #define KEYBOARD_OVERRUN_MAKE_CODE 0xFF
/* /*
* Define the keyboard input data Flags. * Define the keyboard input data Flags.
*/ */
#define RI_KEY_MAKE 0 #define RI_KEY_MAKE 0
#define RI_KEY_BREAK 1 #define RI_KEY_BREAK 1
#define RI_KEY_E0 2 #define RI_KEY_E0 2
#define RI_KEY_E1 4 #define RI_KEY_E1 4
#define RI_KEY_TERMSRV_SET_LED 8 #define RI_KEY_TERMSRV_SET_LED 8
#define RI_KEY_TERMSRV_SHADOW 0x10 #define RI_KEY_TERMSRV_SHADOW 0x10
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Raw format of the input from Human Input Devices * Raw format of the input from Human Input Devices
*/ */
typedef struct tagRAWHID { typedef struct tagRAWHID {
DWORD dwSizeHid; // byte size of each report DWORD dwSizeHid; // byte size of each report
DWORD dwCount; // number of input packed DWORD dwCount; // number of input packed
BYTE bRawData[1]; BYTE bRawData[1];
} RAWHID, *PRAWHID, *LPRAWHID; } RAWHID, *PRAWHID, *LPRAWHID;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* RAWINPUT data structure. * RAWINPUT data structure.
*/ */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagRAWINPUT { typedef struct tagRAWINPUT {
RAWINPUTHEADER header; RAWINPUTHEADER header;
union { union {
RAWMOUSE mouse; RAWMOUSE mouse;
RAWKEYBOARD keyboard; RAWKEYBOARD keyboard;
RAWHID hid; RAWHID hid;
} data; } data;
} RAWINPUT, *PRAWINPUT, *LPRAWINPUT; } RAWINPUT, *PRAWINPUT, *LPRAWINPUT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef _WIN64 #ifdef _WIN64
#define RAWINPUT_ALIGN(x) (((x) + sizeof(QWORD) - 1) & ~(sizeof(QWORD) - 1)) #define RAWINPUT_ALIGN(x) (((x) + sizeof(QWORD) - 1) & ~(sizeof(QWORD) - 1))
#else // _WIN64 #else // _WIN64
#define RAWINPUT_ALIGN(x) (((x) + sizeof(DWORD) - 1) & ~(sizeof(DWORD) - 1)) #define RAWINPUT_ALIGN(x) (((x) + sizeof(DWORD) - 1) & ~(sizeof(DWORD) - 1))
#endif // _WIN64 #endif // _WIN64
#define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(pt r) + (ptr)->header.dwSize))) #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(pt r) + (ptr)->header.dwSize)))
/* /*
* Flags for GetRawInputData * Flags for GetRawInputData
*/ */
#define RID_INPUT 0x10000003 #define RID_INPUT 0x10000003
#define RID_HEADER 0x10000005 #define RID_HEADER 0x10000005
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetRawInputData( GetRawInputData(
__in HRAWINPUT hRawInput, _In_ HRAWINPUT hRawInput,
__in UINT uiCommand, _In_ UINT uiCommand,
__out_bcount_part_opt(*pcbSize, return) LPVOID pData, _Out_writes_bytes_to_opt_(*pcbSize, return) LPVOID pData,
__inout PUINT pcbSize, _Inout_ PUINT pcbSize,
__in UINT cbSizeHeader); _In_ UINT cbSizeHeader);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Raw Input Device Information * Raw Input Device Information
*/ */
#define RIDI_PREPARSEDDATA 0x20000005 #define RIDI_PREPARSEDDATA 0x20000005
#define RIDI_DEVICENAME 0x20000007 // the return valus is the character length, not the byte size #define RIDI_DEVICENAME 0x20000007 // the return valus is the character length, not the byte size
#define RIDI_DEVICEINFO 0x2000000b #define RIDI_DEVICEINFO 0x2000000b
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagRID_DEVICE_INFO_MOUSE { typedef struct tagRID_DEVICE_INFO_MOUSE {
DWORD dwId; DWORD dwId;
DWORD dwNumberOfButtons; DWORD dwNumberOfButtons;
DWORD dwSampleRate; DWORD dwSampleRate;
BOOL fHasHorizontalWheel; BOOL fHasHorizontalWheel;
} RID_DEVICE_INFO_MOUSE, *PRID_DEVICE_INFO_MOUSE; } RID_DEVICE_INFO_MOUSE, *PRID_DEVICE_INFO_MOUSE;
typedef struct tagRID_DEVICE_INFO_KEYBOARD { typedef struct tagRID_DEVICE_INFO_KEYBOARD {
DWORD dwType; DWORD dwType;
DWORD dwSubType; DWORD dwSubType;
skipping to change at line 12528 skipping to change at line 14179
RID_DEVICE_INFO_MOUSE mouse; RID_DEVICE_INFO_MOUSE mouse;
RID_DEVICE_INFO_KEYBOARD keyboard; RID_DEVICE_INFO_KEYBOARD keyboard;
RID_DEVICE_INFO_HID hid; RID_DEVICE_INFO_HID hid;
}; };
} RID_DEVICE_INFO, *PRID_DEVICE_INFO, *LPRID_DEVICE_INFO; } RID_DEVICE_INFO, *PRID_DEVICE_INFO, *LPRID_DEVICE_INFO;
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetRawInputDeviceInfoA( GetRawInputDeviceInfoA(
__in_opt HANDLE hDevice, _In_opt_ HANDLE hDevice,
__in UINT uiCommand, _In_ UINT uiCommand,
__inout_bcount_part_opt(*pcbSize, *pcbSize) LPVOID pData, _Inout_updates_bytes_to_opt_(*pcbSize, *pcbSize) LPVOID pData,
__inout PUINT pcbSize); _Inout_ PUINT pcbSize);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetRawInputDeviceInfoW( GetRawInputDeviceInfoW(
__in_opt HANDLE hDevice, _In_opt_ HANDLE hDevice,
__in UINT uiCommand, _In_ UINT uiCommand,
__inout_bcount_part_opt(*pcbSize, *pcbSize) LPVOID pData, _Inout_updates_bytes_to_opt_(*pcbSize, *pcbSize) LPVOID pData,
__inout PUINT pcbSize); _Inout_ PUINT pcbSize);
#ifdef UNICODE #ifdef UNICODE
#define GetRawInputDeviceInfo GetRawInputDeviceInfoW #define GetRawInputDeviceInfo GetRawInputDeviceInfoW
#else #else
#define GetRawInputDeviceInfo GetRawInputDeviceInfoA #define GetRawInputDeviceInfo GetRawInputDeviceInfoA
#endif // !UNICODE #endif // !UNICODE
/* /*
* Raw Input Bulk Read: GetRawInputBuffer * Raw Input Bulk Read: GetRawInputBuffer
*/ */
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetRawInputBuffer( GetRawInputBuffer(
__out_bcount_opt(*pcbSize) PRAWINPUT pData, _Out_writes_bytes_opt_(*pcbSize) PRAWINPUT pData,
__inout PUINT pcbSize, _Inout_ PUINT pcbSize,
__in UINT cbSizeHeader); _In_ UINT cbSizeHeader);
/* /*
* Raw Input request APIs * Raw Input request APIs
*/ */
typedef struct tagRAWINPUTDEVICE { typedef struct tagRAWINPUTDEVICE {
USHORT usUsagePage; // Toplevel collection UsagePage USHORT usUsagePage; // Toplevel collection UsagePage
USHORT usUsage; // Toplevel collection Usage USHORT usUsage; // Toplevel collection Usage
DWORD dwFlags; DWORD dwFlags;
HWND hwndTarget; // Target hwnd. NULL = follows keyboard focus HWND hwndTarget; // Target hwnd. NULL = follows keyboard focus
} RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE; } RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE;
typedef CONST RAWINPUTDEVICE* PCRAWINPUTDEVICE; typedef CONST RAWINPUTDEVICE* PCRAWINPUTDEVICE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define RIDEV_REMOVE 0x00000001 #define RIDEV_REMOVE 0x00000001
#define RIDEV_EXCLUDE 0x00000010 #define RIDEV_EXCLUDE 0x00000010
#define RIDEV_PAGEONLY 0x00000020 #define RIDEV_PAGEONLY 0x00000020
#define RIDEV_NOLEGACY 0x00000030 #define RIDEV_NOLEGACY 0x00000030
#define RIDEV_INPUTSINK 0x00000100 #define RIDEV_INPUTSINK 0x00000100
#define RIDEV_CAPTUREMOUSE 0x00000200 // effective when mouse nolegacy is specified, otherwise it would be an error #define RIDEV_CAPTUREMOUSE 0x00000200 // effective when mouse nolegacy is specified, otherwise it would be an error
#define RIDEV_NOHOTKEYS 0x00000200 // effective for keyboard. #define RIDEV_NOHOTKEYS 0x00000200 // effective for keyboard.
#define RIDEV_APPKEYS 0x00000400 // effective for keyboard. #define RIDEV_APPKEYS 0x00000400 // effective for keyboard.
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define RIDEV_EXINPUTSINK 0x00001000 #define RIDEV_EXINPUTSINK 0x00001000
skipping to change at line 12599 skipping to change at line 14253
#define GIDC_ARRIVAL 1 #define GIDC_ARRIVAL 1
#define GIDC_REMOVAL 2 #define GIDC_REMOVAL 2
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if (_WIN32_WINNT >= 0x0601) #if (_WIN32_WINNT >= 0x0601)
#define GET_DEVICE_CHANGE_WPARAM(wParam) (LOWORD(wParam)) #define GET_DEVICE_CHANGE_WPARAM(wParam) (LOWORD(wParam))
#elif (_WIN32_WINNT >= 0x0501) #elif (_WIN32_WINNT >= 0x0501)
#define GET_DEVICE_CHANGE_LPARAM(lParam) (LOWORD(lParam)) #define GET_DEVICE_CHANGE_LPARAM(lParam) (LOWORD(lParam))
#endif /* (_WIN32_WINNT >= 0x0601) */ #endif /* (_WIN32_WINNT >= 0x0601) */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
RegisterRawInputDevices( RegisterRawInputDevices(
__in_ecount(uiNumDevices) PCRAWINPUTDEVICE pRawInputDevices, _In_reads_(uiNumDevices) PCRAWINPUTDEVICE pRawInputDevices,
__in UINT uiNumDevices, _In_ UINT uiNumDevices,
__in UINT cbSize); _In_ UINT cbSize);
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetRegisteredRawInputDevices( GetRegisteredRawInputDevices(
__out_ecount_opt( *puiNumDevices) PRAWINPUTDEVICE pRawInputDevices, _Out_writes_opt_( *puiNumDevices) PRAWINPUTDEVICE pRawInputDevices,
__inout PUINT puiNumDevices, _Inout_ PUINT puiNumDevices,
__in UINT cbSize); _In_ UINT cbSize);
typedef struct tagRAWINPUTDEVICELIST { typedef struct tagRAWINPUTDEVICELIST {
HANDLE hDevice; HANDLE hDevice;
DWORD dwType; DWORD dwType;
} RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST; } RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST;
WINUSERAPI WINUSERAPI
UINT UINT
WINAPI WINAPI
GetRawInputDeviceList( GetRawInputDeviceList(
__out_ecount_opt(*puiNumDevices) PRAWINPUTDEVICELIST pRawInputDeviceList, _Out_writes_opt_(*puiNumDevices) PRAWINPUTDEVICELIST pRawInputDeviceList,
__inout PUINT puiNumDevices, _Inout_ PUINT puiNumDevices,
__in UINT cbSize); _In_ UINT cbSize);
WINUSERAPI WINUSERAPI
LRESULT LRESULT
WINAPI WINAPI
DefRawInputProc( DefRawInputProc(
__in_ecount(nInput) PRAWINPUT* paRawInput, _In_reads_(nInput) PRAWINPUT* paRawInput,
__in INT nInput, _In_ INT nInput,
__in UINT cbSizeHeader); _In_ UINT cbSizeHeader);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0501 */
#if(WINVER >= 0x0602)
#define POINTER_DEVICE_PRODUCT_STRING_MAX 520
/*
* wParam values for WM_POINTERDEVICECHANGE
*/
#define PDC_ARRIVAL 0x001
#define PDC_REMOVAL 0x002
#define PDC_ORIENTATION_0 0x004
#define PDC_ORIENTATION_90 0x008
#define PDC_ORIENTATION_180 0x010
#define PDC_ORIENTATION_270 0x020
#define PDC_MODE_DEFAULT 0x040
#define PDC_MODE_CENTERED 0x080
#define PDC_MAPPING_CHANGE 0x100
#define PDC_RESOLUTION 0x200
#define PDC_ORIGIN 0x400
#define PDC_MODE_ASPECTRATIOPRESERVED 0x800
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef enum tagPOINTER_DEVICE_TYPE {
POINTER_DEVICE_TYPE_INTEGRATED_PEN = 0x00000001,
POINTER_DEVICE_TYPE_EXTERNAL_PEN = 0x00000002,
POINTER_DEVICE_TYPE_TOUCH = 0x00000003,
#if(WINVER >= 0x0603)
POINTER_DEVICE_TYPE_TOUCH_PAD = 0x00000004,
#endif /* WINVER >= 0x0603 */
POINTER_DEVICE_TYPE_MAX = 0xFFFFFFFF
} POINTER_DEVICE_TYPE;
typedef struct tagPOINTER_DEVICE_INFO {
DWORD displayOrientation;
HANDLE device;
POINTER_DEVICE_TYPE pointerDeviceType;
HMONITOR monitor;
ULONG startingCursorId;
USHORT maxActiveContacts;
WCHAR productString[POINTER_DEVICE_PRODUCT_STRING_MAX];
} POINTER_DEVICE_INFO;
typedef struct tagPOINTER_DEVICE_PROPERTY {
INT32 logicalMin;
INT32 logicalMax;
INT32 physicalMin;
INT32 physicalMax;
UINT32 unit;
UINT32 unitExponent;
USHORT usagePageId;
USHORT usageId;
} POINTER_DEVICE_PROPERTY;
typedef enum tagPOINTER_DEVICE_CURSOR_TYPE {
POINTER_DEVICE_CURSOR_TYPE_UNKNOWN = 0x00000000,
POINTER_DEVICE_CURSOR_TYPE_TIP = 0x00000001,
POINTER_DEVICE_CURSOR_TYPE_ERASER = 0x00000002,
POINTER_DEVICE_CURSOR_TYPE_MAX = 0xFFFFFFFF
} POINTER_DEVICE_CURSOR_TYPE;
typedef struct tagPOINTER_DEVICE_CURSOR_INFO {
UINT32 cursorId;
POINTER_DEVICE_CURSOR_TYPE cursor;
} POINTER_DEVICE_CURSOR_INFO;
WINUSERAPI
BOOL
WINAPI
GetPointerDevices(
_Inout_ UINT32* deviceCount,
_Out_writes_opt_(*deviceCount) POINTER_DEVICE_INFO *pointerDevices);
WINUSERAPI
BOOL
WINAPI
GetPointerDevice(
_In_ HANDLE device,
_Out_writes_(1) POINTER_DEVICE_INFO *pointerDevice);
WINUSERAPI
BOOL
WINAPI
GetPointerDeviceProperties(
_In_ HANDLE device,
_Inout_ UINT32* propertyCount,
_Out_writes_opt_(*propertyCount) POINTER_DEVICE_PROPERTY *pointerProperties)
;
WINUSERAPI
BOOL
WINAPI
RegisterPointerDeviceNotifications(
_In_ HWND window,
_In_ BOOL notifyRange);
WINUSERAPI
BOOL
WINAPI
GetPointerDeviceRects(
_In_ HANDLE device,
_Out_writes_(1) RECT* pointerDeviceRect,
_Out_writes_(1) RECT* displayRect);
WINUSERAPI
BOOL
WINAPI
GetPointerDeviceCursors(
_In_ HANDLE device,
_Inout_ UINT32* cursorCount,
_Out_writes_opt_(*cursorCount) POINTER_DEVICE_CURSOR_INFO *deviceCursors);
WINUSERAPI
BOOL
WINAPI
GetRawPointerDeviceData(
_In_ UINT32 pointerId,
_In_ UINT32 historyCount,
_In_ UINT32 propertiesCount,
_In_reads_(propertiesCount) POINTER_DEVICE_PROPERTY* pProperties,
_Out_writes_(historyCount * propertiesCount) LONG* pValues);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0602 */
#if(WINVER >= 0x0600) #if(WINVER >= 0x0600)
/* /*
* Message Filter * Message Filter
*/ */
#define MSGFLT_ADD 1 #define MSGFLT_ADD 1
#define MSGFLT_REMOVE 2 #define MSGFLT_REMOVE 2
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ChangeWindowMessageFilter( ChangeWindowMessageFilter(
__in UINT message, _In_ UINT message,
__in DWORD dwFlag); _In_ DWORD dwFlag);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0600 */ #endif /* WINVER >= 0x0600 */
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
/* /*
* Message filter info values (CHANGEFILTERSTRUCT.ExtStatus) * Message filter info values (CHANGEFILTERSTRUCT.ExtStatus)
*/ */
#define MSGFLTINFO_NONE (0) #define MSGFLTINFO_NONE (0)
#define MSGFLTINFO_ALREADYALLOWED_FORWND (1) #define MSGFLTINFO_ALREADYALLOWED_FORWND (1)
#define MSGFLTINFO_ALREADYDISALLOWED_FORWND (2) #define MSGFLTINFO_ALREADYDISALLOWED_FORWND (2)
#define MSGFLTINFO_ALLOWED_HIGHER (3) #define MSGFLTINFO_ALLOWED_HIGHER (3)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagCHANGEFILTERSTRUCT { typedef struct tagCHANGEFILTERSTRUCT {
DWORD cbSize; DWORD cbSize;
DWORD ExtStatus; DWORD ExtStatus;
} CHANGEFILTERSTRUCT, *PCHANGEFILTERSTRUCT; } CHANGEFILTERSTRUCT, *PCHANGEFILTERSTRUCT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Message filter action values (action parameter to ChangeWindowMessageFilterEx ) * Message filter action values (action parameter to ChangeWindowMessageFilterEx )
*/ */
#define MSGFLT_RESET (0) #define MSGFLT_RESET (0)
#define MSGFLT_ALLOW (1) #define MSGFLT_ALLOW (1)
#define MSGFLT_DISALLOW (2) #define MSGFLT_DISALLOW (2)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ChangeWindowMessageFilterEx( ChangeWindowMessageFilterEx(
__in HWND hwnd, // Window _In_ HWND hwnd, // Window
__in UINT message, // WM_ message _In_ UINT message, // WM_ message
__in DWORD action, // Message filter ac _In_ DWORD action, // Message filter ac
tion value tion value
__inout_opt PCHANGEFILTERSTRUCT pChangeFilterStruct); // Optional _Inout_opt_ PCHANGEFILTERSTRUCT pChangeFilterStruct); // Optional
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0601)
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
/* /*
* Gesture defines and functions * Gesture defines and functions
*/ */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Gesture information handle * Gesture information handle
*/ */
DECLARE_HANDLE(HGESTUREINFO); DECLARE_HANDLE(HGESTUREINFO);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Gesture flags - GESTUREINFO.dwFlags * Gesture flags - GESTUREINFO.dwFlags
*/ */
#define GF_BEGIN 0x00000001 #define GF_BEGIN 0x00000001
#define GF_INERTIA 0x00000002 #define GF_INERTIA 0x00000002
#define GF_END 0x00000004 #define GF_END 0x00000004
/* /*
* Gesture IDs * Gesture IDs
*/ */
#define GID_BEGIN 1 #define GID_BEGIN 1
#define GID_END 2 #define GID_END 2
#define GID_ZOOM 3 #define GID_ZOOM 3
#define GID_PAN 4 #define GID_PAN 4
#define GID_ROTATE 5 #define GID_ROTATE 5
#define GID_TWOFINGERTAP 6 #define GID_TWOFINGERTAP 6
#define GID_PRESSANDTAP 7 #define GID_PRESSANDTAP 7
#define GID_ROLLOVER GID_PRESSANDTAP #define GID_ROLLOVER GID_PRESSANDTAP
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Gesture information structure * Gesture information structure
* - Pass the HGESTUREINFO received in the WM_GESTURE message lParam into the * - Pass the HGESTUREINFO received in the WM_GESTURE message lParam into the
* GetGestureInfo function to retrieve this information. * GetGestureInfo function to retrieve this information.
* - If cbExtraArgs is non-zero, pass the HGESTUREINFO received in the WM_GEST URE * - If cbExtraArgs is non-zero, pass the HGESTUREINFO received in the WM_GEST URE
* message lParam into the GetGestureExtraArgs function to retrieve extended * message lParam into the GetGestureExtraArgs function to retrieve extended
* argument information. * argument information.
*/ */
typedef struct tagGESTUREINFO { typedef struct tagGESTUREINFO {
UINT cbSize; // size, in bytes, of this structure (includ ing variable length Args field) UINT cbSize; // size, in bytes, of this structure (includ ing variable length Args field)
skipping to change at line 12771 skipping to change at line 14586
#define GID_ROTATE_ANGLE_FROM_ARGUMENT(_arg_) ((((double)(_arg_) / 65535.0) * 4.0 * 3.14159265) - 2.0 * 3.14159265) #define GID_ROTATE_ANGLE_FROM_ARGUMENT(_arg_) ((((double)(_arg_) / 65535.0) * 4.0 * 3.14159265) - 2.0 * 3.14159265)
/* /*
* Gesture information retrieval * Gesture information retrieval
* - HGESTUREINFO is received by a window in the lParam of a WM_GESTURE messag e. * - HGESTUREINFO is received by a window in the lParam of a WM_GESTURE messag e.
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetGestureInfo( GetGestureInfo(
__in HGESTUREINFO hGestureInfo, _In_ HGESTUREINFO hGestureInfo,
__out PGESTUREINFO pGestureInfo); _Out_ PGESTUREINFO pGestureInfo);
/* /*
* Gesture extra arguments retrieval * Gesture extra arguments retrieval
* - HGESTUREINFO is received by a window in the lParam of a WM_GESTURE messag e. * - HGESTUREINFO is received by a window in the lParam of a WM_GESTURE messag e.
* - Size, in bytes, of the extra argument data is available in the cbExtraArg s * - Size, in bytes, of the extra argument data is available in the cbExtraArg s
* field of the GESTUREINFO structure retrieved using the GetGestureInfo fun ction. * field of the GESTUREINFO structure retrieved using the GetGestureInfo fun ction.
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetGestureExtraArgs( GetGestureExtraArgs(
__in HGESTUREINFO hGestureInfo, _In_ HGESTUREINFO hGestureInfo,
__in UINT cbExtraArgs, _In_ UINT cbExtraArgs,
__out_bcount(cbExtraArgs) PBYTE pExtraArgs); _Out_writes_bytes_(cbExtraArgs) PBYTE pExtraArgs);
/* /*
* Gesture information handle management * Gesture information handle management
* - If an application processes the WM_GESTURE message, then once it is done * - If an application processes the WM_GESTURE message, then once it is done
* with the associated HGESTUREINFO, the application is responsible for * with the associated HGESTUREINFO, the application is responsible for
* closing the handle using this function. Failure to do so may result in * closing the handle using this function. Failure to do so may result in
* process memory leaks. * process memory leaks.
* - If the message is instead passed to DefWindowProc, or is forwarded using * - If the message is instead passed to DefWindowProc, or is forwarded using
* one of the PostMessage or SendMessage class of API functions, the handle * one of the PostMessage or SendMessage class of API functions, the handle
* is transfered with the message and need not be closed by the application. * is transfered with the message and need not be closed by the application.
*/ */
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
CloseGestureInfoHandle( CloseGestureInfoHandle(
__in HGESTUREINFO hGestureInfo); _In_ HGESTUREINFO hGestureInfo);
/* /*
* Gesture configuration structure * Gesture configuration structure
* - Used in SetGestureConfig and GetGestureConfig * - Used in SetGestureConfig and GetGestureConfig
* - Note that any setting not included in either GESTURECONFIG.dwWant or * - Note that any setting not included in either GESTURECONFIG.dwWant or
* GESTURECONFIG.dwBlock will use the parent window's preferences or * GESTURECONFIG.dwBlock will use the parent window's preferences or
* system defaults. * system defaults.
*/ */
typedef struct tagGESTURECONFIG { typedef struct tagGESTURECONFIG {
DWORD dwID; // gesture ID DWORD dwID; // gesture ID
DWORD dwWant; // settings related to gesture ID that are t o be turned on DWORD dwWant; // settings related to gesture ID that are t o be turned on
DWORD dwBlock; // settings related to gesture ID that are t o be turned off DWORD dwBlock; // settings related to gesture ID that are t o be turned off
} GESTURECONFIG, *PGESTURECONFIG; } GESTURECONFIG, *PGESTURECONFIG;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Gesture configuration flags - GESTURECONFIG.dwWant or GESTURECONFIG.dwBlock * Gesture configuration flags - GESTURECONFIG.dwWant or GESTURECONFIG.dwBlock
*/ */
/* /*
* Common gesture configuration flags - set GESTURECONFIG.dwID to zero * Common gesture configuration flags - set GESTURECONFIG.dwID to zero
*/ */
#define GC_ALLGESTURES 0x00000001 #define GC_ALLGESTURES 0x00000001
/* /*
skipping to change at line 12859 skipping to change at line 14677
/* /*
* PressAndTap gesture configuration flags - set GESTURECONFIG.dwID to GID_PRESS ANDTAP * PressAndTap gesture configuration flags - set GESTURECONFIG.dwID to GID_PRESS ANDTAP
*/ */
#define GC_PRESSANDTAP 0x00000001 #define GC_PRESSANDTAP 0x00000001
#define GC_ROLLOVER GC_PRESSANDTAP #define GC_ROLLOVER GC_PRESSANDTAP
#define GESTURECONFIGMAXCOUNT 256 // Maximum number of ges tures that can be included #define GESTURECONFIGMAXCOUNT 256 // Maximum number of ges tures that can be included
// in a single call to S etGestureConfig / GetGestureConfig // in a single call to S etGestureConfig / GetGestureConfig
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
SetGestureConfig( SetGestureConfig(
__in HWND hwnd, // window for which conf _In_ HWND hwnd, // window for which conf
iguration is specified iguration is specified
__in DWORD dwReserved, // reserved, must be 0 _In_ DWORD dwReserved, // reserved, must be 0
__in UINT cIDs, // count of GESTURECONFI _In_ UINT cIDs, // count of GESTURECONFI
G structures G structures
__in_ecount(cIDs) PGESTURECONFIG pGestureConfig, // array of GESTURECONFI _In_reads_(cIDs) PGESTURECONFIG pGestureConfig, // array of GESTURECONFIG
G structures, dwIDs will be processed in the structures, dwIDs will be processed in the
// order specified and r epeated occurances will overwrite previous ones // order specified and r epeated occurances will overwrite previous ones
__in UINT cbSize); // sizeof(GESTURECONFIG) _In_ UINT cbSize); // sizeof(GESTURECONFIG)
#define GCF_INCLUDE_ANCESTORS 0x00000001 // If specified, GetGest ureConfig returns consolidated configuration #define GCF_INCLUDE_ANCESTORS 0x00000001 // If specified, GetGest ureConfig returns consolidated configuration
// for the specified win dow and it's parent window chain // for the specified win dow and it's parent window chain
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
GetGestureConfig( GetGestureConfig(
__in HWND hwnd, // window for which conf _In_ HWND hwnd, // window for which conf
iguration is required iguration is required
__in DWORD dwReserved, // reserved, must be 0 _In_ DWORD dwReserved, // reserved, must be 0
__in DWORD dwFlags, // see GCF_* flags _In_ DWORD dwFlags, // see GCF_* flags
__in PUINT pcIDs, // *pcIDs contains the s _In_ PUINT pcIDs, // *pcIDs contains the s
ize, in number of GESTURECONFIG structures, ize, in number of GESTURECONFIG structures,
// of the buffer pointed to by pGestureConfig // of the buffer pointed to by pGestureConfig
__inout_ecount(*pcIDs) PGESTURECONFIG pGestureConfig, _Inout_updates_(*pcIDs) PGESTURECONFIG pGestureConfig,
// pointer to buffer to receive the returned array of GESTURECONFIG structures // pointer to buffer to receive the returned array of GESTURECONFIG structures
__in UINT cbSize); // sizeof(GESTURECONFIG) _In_ UINT cbSize); // sizeof(GESTURECONFIG)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
/* /*
* GetSystemMetrics(SM_DIGITIZER) flag values * GetSystemMetrics(SM_DIGITIZER) flag values
*/ */
#define NID_INTEGRATED_TOUCH 0x00000001 #define NID_INTEGRATED_TOUCH 0x00000001
#define NID_EXTERNAL_TOUCH 0x00000002 #define NID_EXTERNAL_TOUCH 0x00000002
#define NID_INTEGRATED_PEN 0x00000004 #define NID_INTEGRATED_PEN 0x00000004
#define NID_EXTERNAL_PEN 0x00000008 #define NID_EXTERNAL_PEN 0x00000008
#define NID_MULTI_INPUT 0x00000040 #define NID_MULTI_INPUT 0x00000040
#define NID_READY 0x00000080 #define NID_READY 0x00000080
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
#define MAX_STR_BLOCKREASON 256 #define MAX_STR_BLOCKREASON 256
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ShutdownBlockReasonCreate( ShutdownBlockReasonCreate(
__in HWND hWnd, _In_ HWND hWnd,
__in LPCWSTR pwszReason); _In_ LPCWSTR pwszReason);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ShutdownBlockReasonQuery( ShutdownBlockReasonQuery(
__in HWND hWnd, _In_ HWND hWnd,
__out_ecount_opt(*pcchBuff) LPWSTR pwszBuff, _Out_writes_opt_(*pcchBuff) LPWSTR pwszBuff,
__inout DWORD *pcchBuff); _Inout_ DWORD *pcchBuff);
WINUSERAPI WINUSERAPI
BOOL BOOL
WINAPI WINAPI
ShutdownBlockReasonDestroy( ShutdownBlockReasonDestroy(
__in HWND hWnd); _In_ HWND hWnd);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0601)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/*
* Identifiers for message input source device type.
*/
typedef enum tagINPUT_MESSAGE_DEVICE_TYPE {
IMDT_UNAVAILABLE = 0x00000000, // not specified
IMDT_KEYBOARD = 0x00000001, // from keyboard
IMDT_MOUSE = 0x00000002, // from mouse
IMDT_TOUCH = 0x00000004, // from touch
IMDT_PEN = 0x00000008, // from pen
#if(WINVER >= 0x0603)
IMDT_TOUCHPAD = 0x00000010, // from touchpad
#endif /* WINVER >= 0x0603 */
} INPUT_MESSAGE_DEVICE_TYPE;
typedef enum tagINPUT_MESSAGE_ORIGIN_ID {
IMO_UNAVAILABLE = 0x00000000, // not specified
IMO_HARDWARE = 0x00000001, // from a hardware device or injected by a U
IAccess app
IMO_INJECTED = 0x00000002, // injected via SendInput() by a non-UIAcces
s app
IMO_SYSTEM = 0x00000004, // injected by the system
} INPUT_MESSAGE_ORIGIN_ID;
/*
* Input source structure.
*/
typedef struct tagINPUT_MESSAGE_SOURCE {
INPUT_MESSAGE_DEVICE_TYPE deviceType;
INPUT_MESSAGE_ORIGIN_ID originId;
} INPUT_MESSAGE_SOURCE;
/*
* API to determine the input source of the current messsage.
*/
WINUSERAPI
BOOL
WINAPI
GetCurrentInputMessageSource(
_Out_ INPUT_MESSAGE_SOURCE *inputMessageSource);
WINUSERAPI
BOOL
WINAPI
GetCIMSSM(
_Out_ INPUT_MESSAGE_SOURCE *inputMessageSource);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0601)
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/*
* AutoRotation state structure
*/
typedef enum tagAR_STATE {
AR_ENABLED = 0x0,
AR_DISABLED = 0x1,
AR_SUPPRESSED = 0x2,
AR_REMOTESESSION = 0x4,
AR_MULTIMON = 0x8,
AR_NOSENSOR = 0x10,
AR_NOT_SUPPORTED = 0x20,
AR_DOCKED = 0x40,
AR_LAPTOP = 0x80
} AR_STATE, *PAR_STATE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#ifndef MIDL_PASS
// Dont define this for MIDL compiler passes over winuser.h. Some of them
// dont include winnt.h (where DEFINE_ENUM_FLAG_OPERATORS is defined and
// get compile errors.
DEFINE_ENUM_FLAG_OPERATORS(AR_STATE);
#endif
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/*
* Orientation preference structure. This is used by applications to specify
* their orientation preferences to windows.
*/
typedef enum ORIENTATION_PREFERENCE {
ORIENTATION_PREFERENCE_NONE = 0x0,
ORIENTATION_PREFERENCE_LANDSCAPE = 0x1,
ORIENTATION_PREFERENCE_PORTRAIT = 0x2,
ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4,
ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 0x8
} ORIENTATION_PREFERENCE;
#ifndef MIDL_PASS
// Dont define this for MIDL compiler passes over winuser.h. Some of them
// dont include winnt.h (where DEFINE_ENUM_FLAG_OPERATORS is defined and
// get compile errors.
DEFINE_ENUM_FLAG_OPERATORS(ORIENTATION_PREFERENCE);
#endif
WINUSERAPI
BOOL
WINAPI
GetAutoRotationState(
_Out_ PAR_STATE pState);
WINUSERAPI
BOOL
WINAPI
GetDisplayAutoRotationPreferences(
_Out_ ORIENTATION_PREFERENCE *pOrientation);
WINUSERAPI
BOOL
WINAPI
GetDisplayAutoRotationPreferencesByProcessId(
_In_ DWORD dwProcessId,
_Out_ ORIENTATION_PREFERENCE *pOrientation,
_Out_ BOOL *fRotateScreen);
WINUSERAPI
BOOL
WINAPI
SetDisplayAutoRotationPreferences(
_In_ ORIENTATION_PREFERENCE orientation);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0601 */
#if(WINVER >= 0x0601)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINUSERAPI
BOOL
WINAPI
IsImmersiveProcess(
_In_ HANDLE hProcess);
WINUSERAPI
BOOL
WINAPI
SetProcessRestrictionExemption(
_In_ BOOL fEnableExemption);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0601 */
#if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
#if defined(ISOLATION_AWARE_ENABLED) && (ISOLATION_AWARE_ENABLED != 0) #if defined(ISOLATION_AWARE_ENABLED) && (ISOLATION_AWARE_ENABLED != 0)
#include "winuser.inl" #include "winuser.inl"
#endif /* ISOLATION_AWARE_ENABLED */ #endif /* ISOLATION_AWARE_ENABLED */
#endif /* RC */ #endif /* RC */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
 End of changes. 886 change blocks. 
1817 lines changed or deleted 3851 lines changed or added

This html diff was produced by rfcdiff 1.41.