⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shell.h

📁 用于查询PC机上的USB端口是否有设备挂接上
💻 H
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
 *
 *  (C) Copyright MICROSOFT Corp., 1988-1990
 *
 *  Title:      SHELL.H - Public services for SHELL
 *
 *  Version:    4.00
 *
 *  Date:       30-Nov-1988
 *
 *  Author:     ARR
 *
 *----------------------------------------------------------------------------
 *
 *  Change log:
 *
 *     DATE     REV                 DESCRIPTION
 *  ----------- --- ----------------------------------------------------------
 *  19-Sep-1988 RAL Original
 *  12-Oct-1988 RAL Converted to use VxD_Service macros
 *  29-Nov-1988 ARR Redo split from VMCTRL
 *
 *****************************************************************************/

#ifndef _SHELL_H
#define _SHELL_H

#ifndef Not_VxD

/*XLATOFF*/
#define SHELL_Service   Declare_Service
#pragma warning (disable:4003)      // turn off not enough params warning
/*XLATON*/

/*MACROS*/
Begin_Service_Table(SHELL)

SHELL_Service   (SHELL_Get_Version, LOCAL)
SHELL_Service   (SHELL_Resolve_Contention, LOCAL)
SHELL_Service   (SHELL_Event, LOCAL)
SHELL_Service   (SHELL_SYSMODAL_Message, LOCAL)
SHELL_Service   (SHELL_Message, LOCAL)
/*ENDMACROS*/

#ifndef WIN30COMPAT
/*
 *  Following specific to SHELL version >= 3.10
 */
/*MACROS*/
SHELL_Service   (SHELL_GetVMInfo, LOCAL)
/*ENDMACROS*/

#endif  // WIN30COMPAT

#ifndef WIN31COMPAT
/*
 *  Following specific to SHELL version >= 4.00
 */
/*MACROS*/
SHELL_Service   (_SHELL_PostMessage, LOCAL)
SHELL_Service   (_SHELL_ShellExecute)
SHELL_Service   (_SHELL_PostShellMessage)
SHELL_Service   (SHELL_DispatchRing0AppyEvents, LOCAL)  /* INIT ONLY */
SHELL_Service   (SHELL_Hook_Properties, LOCAL)
SHELL_Service   (SHELL_Unhook_Properties, LOCAL)
SHELL_Service   (SHELL_Update_User_Activity, LOCAL)
SHELL_Service   (_SHELL_QueryAppyTimeAvailable, LOCAL)
SHELL_Service   (_SHELL_CallAtAppyTime, LOCAL)
SHELL_Service   (_SHELL_CancelAppyTimeEvent)
SHELL_Service   (_SHELL_BroadcastSystemMessage, LOCAL)
SHELL_Service   (_SHELL_HookSystemBroadcast, LOCAL)
SHELL_Service   (_SHELL_UnhookSystemBroadcast, LOCAL)
SHELL_Service   (_SHELL_LocalAllocEx, LOCAL)
SHELL_Service   (_SHELL_LocalFree, LOCAL)
SHELL_Service   (_SHELL_LoadLibrary, LOCAL)
SHELL_Service   (_SHELL_FreeLibrary, LOCAL)
SHELL_Service   (_SHELL_GetProcAddress, LOCAL)
SHELL_Service   (_SHELL_CallDll, LOCAL)
SHELL_Service	(_SHELL_SuggestSingleMSDOSMode)
SHELL_Service	(SHELL_CheckHotkeyAllowed)
SHELL_Service	(_SHELL_GetDOSAppInfo)
/*ENDMACROS*/

/*
 *  Following specific to SHELL version >= 4.10
 */

#ifdef WIN41SERVICES
/*MACROS*/
SHELL_Service   (_SHELL_Update_User_Activity_Ex, LOCAL)
/*ENDMACROS*/
#endif

#endif  // WIN31COMPAT

/*MACROS*/
End_Service_Table(SHELL)
/*ENDMACROS*/

#ifndef WIN31COMPAT
// HookSystemBroadCast call order definitions
#define SBH_CALL_ORDER_DEFAULT		0
#define SBH_CALL_ORDER_REGISTRY		0x30000000
#define SBH_CALL_ORDER_CONFIGMG		0x40000000
#define SBH_CALL_ORDER_PCI		0x40000001 // Must be after CONFIGMG
#define SBH_CALL_ORDER_NTKERN		0x50000000

// _Shell_Update_User_Activity_Ex definitions (must match NT's ES_*)
//
// Note that the shell variables are global (across all threads). Only
// NTKERN can pass the SUUAE_CONTINUOUS* flags. IF ANYBODY ELSE PASSES A
// CONTIGUOUS FLAGS, THE MACHINE WILL STOP SUSPENDING CORRECTLY (ie the
// counting is done in NTKERN not SHELL). If you want to set the state for a
// while, better use NtSetThreadExecutionState which will track the thread
// state for you.
//
// Also note that SHELL_Update_User_Activity is a slightly quicker version of
// _SHELL_Update_User_Activity_Ex(SUUAE_SYSTEM_REQUIRED|SUUAE_DISPLAY_REQUIRED)
#define	SUUAE_SYSTEM_REQUIRED_BIT   0x00000000
#define	SUUAE_SYSTEM_REQUIRED       (1 << SUUAE_SYSTEM_REQUIRED_BIT)
#define	SUUAE_DISPLAY_REQUIRED_BIT  0x00000001
#define	SUUAE_DISPLAY_REQUIRED      (1 << SUUAE_DISPLAY_REQUIRED_BIT)
#define	SUUAE_LOW_LATENCY_BIT       0x00000003
#define	SUUAE_LOW_LATENCY           (1 << SUUAE_LOW_LATENCY_BIT)
#define	SUUAE_CONTINUOUS_CHECK_BIT  29
#define	SUUAE_CONTINUOUS_CHECK      (1 << SUUAE_CONTINUOUS_CHECK_BIT)
#define	SUUAE_CONTINUOUS_ADD_BIT    30
#define	SUUAE_CONTINUOUS_ADD        (1 << SUUAE_CONTINUOUS_ADD_BIT)
#define	SUUAE_CONTINUOUS_REMOVE     0
#define	SUUAE_CONTINUOUS_BIT        31
#define	SUUAE_CONTINUOUS            (1 << SUUAE_CONTINUOUS_BIT)
#endif  // WIN31COMPAT

struct _SHELL_SUUAE_INFO {
	ULONG		ssiTimeLastActiveDisplay;
	ULONG		ssiTimeLastActiveSystem;
	BYTE		ssiHoldDisplay;
	BYTE		ssiHoldSystem;
	BYTE		ssiLowLatency;
};

typedef	struct _SHELL_SUUAE_INFO	SHELL_SUUAE_INFO;
typedef	SHELL_SUUAE_INFO		*PSHELL_SUUAE_INFO;


//  BeginDoc
//
//  Windows Message Box Flags used on SHELL_SYSMODAL_Message and
//  SHELL_Message services
//
#define MB_OK                   0x00
#define MB_OKCANCEL             0x01
#define MB_ABORTRETRYIGNORE     0x02
#define MB_YESNOCANCEL          0x03
#define MB_YESNO                0x04
#define MB_RETRYCANCEL          0x05
#define MB_ICONHAND             0x10
#define MB_ICONEXCLAMATION      0x30
#define MB_ICONASTERISK         0x40
#define MB_DEFBUTTON1           0x00
#define MB_DEFBUTTON2           0x100
#define MB_DEFBUTTON3           0x200
#define MB_APPLMODAL            0x00
#define MB_SYSTEMMODAL          0x1000
#define MB_NOFOCUS              0x8000
/*
 *  Following bits are WIN386 SHELL extensions
 */
#define MB_ASAP                 0x80000000  // Message is timely, put
                                            //  up as soon as possible
/*
 * The following flag bits are 3.10 extensions
 */
#define MB_NOWINDOW             0x40000000  // DO NOT switch to Windows
                                            // to do this message, do it
                                            // in full screen mode always.
                                            // ONLY FOR SHELL_SYSMODAL_Message

#define MB_HANGSYS              0x20000000  // Hang with ints disabled.
                                            // This is for especially
                                            // severe errors (like parity
                                            // errors).
                                            // ONLY FOR SHELL_SYSMODAL_Message

#ifndef WIN31COMPAT

/*
 * The following flag bits are 4.0 extensions
 */

/*
 * MB_APPYTIME, if passed to SHELL_Sysmodal_Message, means that the service
 * is being called at 'Appy-time and that a GUI dialog box should be attempted.
 *
 * It is an error to pass the bit to SHELL_Message.
 */
#define MB_APPYTIME             0x10000000

#endif /* WIN31COMPAT */

/*
 *  Windows Message Box Return codes used on SHELL_SYSMODAL_Message and
 *  SHELL_Message services
 */
#define IDOK                    1
#define IDCANCEL                2
#define IDABORT                 3
#define IDRETRY                 4
#define IDIGNORE                5
#define IDYES                   6
#define IDNO                    7

//  EndDoc

/*
 *  On SHELL_Event, the wParam in EAX occupies the low 16 bits of EAX. The High 16
 *  bits contain extra flags
 */
#define SE_WP_PrtScBoost        0x00100000      // Boost the SYS VM during Print screen
#define SE_WP_PrtScBoostBit     20              //
                                                //
#define SE_WP_DispUpdBoost      0x00200000      // Boost the SYS VM during updates
#define SE_WP_DispUpdBoostBit   21

#ifndef WIN31COMPAT
/*
 *  Scheduling values for SHELL_PostMessage.
 *
 *  These bits go into the upper word of the uMsg argument.
 *
 *  All bits not explicitly mentioned are reserved and must be zero.
 */
#define SPM_UM_DoNotWaitForCrit     0x00020000
#define SPM_UM_DoNotWaitForCritBit  17

#define SPM_UM_AlwaysSchedule       0x00080000
#define SPM_UM_AlwaysScheduleBit    19

#endif /* WIN31COMPAT */

//  BeginDoc

/*
 *  Bits of returned EAX flags for SHELL_GetVMInfo service
 */
#define SGVMI_Windowed    0x00000004            // Is Windowed
#define SGVMI_ALTTABdis   0x00000020            // Alt+Tab is reserved
#define SGVMI_ALTESCdis   0x00000040            // Alt+Esc is reserved
#define SGVMI_ALTSPACEdis 0x00000080            // Alt+Space is reserved
#define SGVMI_ALTENTERdis 0x00000100            // Alt+Enter is reserved
#define SGVMI_ALTPRTSCdis 0x00000200            // Alt+PrtSc is reserved
#define SGVMI_PRTSCdis    0x00000400            // PrtSc is reserved
#define SGVMI_CTRLESCdis  0x00000800            // Ctrl+Esc is reserved
#define SGVMI_HasHotKey   0x00004000            // Has a shortcut key
#define SGVMI_Polling     0x00001000            // Polling detection Enab
#define SGVMI_FastPaste   0x00020000            // Allow Fast paste Enab
#define SGVMI_NoHMA       0x00002000            // No HMA

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -