📄 umx.h
字号:
#ifdef UNICODE
#define UMS_GETSEL UMS_GETSELW
#define PUMS_GETSEL PUMS_GETSELW
#else // !UNICODE
#define UMS_GETSEL UMS_GETSELA
#define PUMS_GETSEL PUMS_GETSELA
#endif // UNICODE
//
// The UMS_GETSELCOUNT structure is filled in by the User Manager
// when it handles the UM_GETSELCOUNT message. This is used to
// return the number of selected items to the extension. This could
// be more than 1 for the user listbox.
//
// dwItems - The number of selected items in the listbox.
//
typedef struct _UMS_GETSELCOUNT
{
DWORD dwItems;
} UMS_GETSELCOUNT, * PUMS_GETSELCOUNT;
//
// The UMS_GETCURFOCUS structure is filled in by the User Manager
// when it handles the UM_GETCURFOCUS message. This is used to
// return the current focus of the User Manager application.
//
// szFocus - The domain name or server name of the current
// focus. Server names can be distinguished
// by the leading backslashes, or by dwFocusType.
//
// dwFocusType - This is the type of focus, either
// UM_FOCUS_TYPE_DOMAIN (and szFocus is a domain name)
// UM_FOCUS_TYPE_WINNT (and szFocus is a server name)
// UM_FOCUS_TYPE_LM (and szFocus is a server name)
// UM_FOCUS_TYPE_UNKNOWN
//
// szFocusPDC - This is the PDC of the domain of focus, and is valid
// only if focus is set to UM_FOCUS_TYPE_DOMAIN.
//
// psidFocus - This points to the SID of the domain of focus. It
// may be NULL. Note that this pointer will not be
// valid forever, the extension should copy the SID
// immediately if it intends to use it.
//
#define UM_FOCUS_TYPE_DOMAIN 1
#define UM_FOCUS_TYPE_WINNT 2
#define UM_FOCUS_TYPE_LM 3
#define UM_FOCUS_TYPE_UNKNOWN 4
typedef struct _UMS_GETCURFOCUSA
{
CHAR szFocus[MAX_PATH];
DWORD dwFocusType;
CHAR szFocusPDC[MAX_PATH];
PVOID psidFocus; // actually a SID pointer
} UMS_GETCURFOCUSA, * PUMS_GETCURFOCUSA;
typedef struct _UMS_GETCURFOCUSW
{
WCHAR szFocus[MAX_PATH];
DWORD dwFocusType;
WCHAR szFocusPDC[MAX_PATH];
PVOID psidFocus; // actually a SID pointer
} UMS_GETCURFOCUSW, * PUMS_GETCURFOCUSW;
#ifdef UNICODE
#define UMS_GETCURFOCUS UMS_GETCURFOCUSW
#define PUMS_GETCURFOCUS PUMS_GETCURFOCUSW
#else // UNICODE
#define UMS_GETCURFOCUS UMS_GETCURFOCUSA
#define PUMS_GETCURFOCUS PUMS_GETCURFOCUSA
#endif // UNICODE
//
// The UMS_GETOPTIONS[2] structure is filled in by the User Manager
// when it handles the UM_GETOPTIONS[2] message. This is used to
// return the current option settings of the User Manager application.
//
// fSaveSettingsOnExit - Should User Manager settings be saved on exit?
//
// fConfirmation - Should permanent and/or dangerous actions be
// confirmed?
//
// fSortByFullName - Should the main user listbox be sorted by
// fullname rather than by user name?
//
// fMiniUserManager - (UMS_GETOPTIONS2 only) Is this the User Manager
// rather than the User Manager for Domains?
//
// fLowSpeedConnection - (UMS_GETOPTIONS2 only) Is the User Manager
// optimized for use across a slow network link?
//
typedef struct _UMS_GETOPTIONS
{
BOOL fSaveSettingsOnExit;
BOOL fConfirmation;
BOOL fSortByFullName;
} UMS_GETOPTIONS, * PUMS_GETOPTIONS;
typedef struct _UMS_GETOPTIONS2
{
BOOL fSaveSettingsOnExit;
BOOL fConfirmation;
BOOL fSortByFullName;
BOOL fMiniUserManager;
BOOL fLowSpeedConnection;
} UMS_GETOPTIONS2, * PUMS_GETOPTIONS2;
//
// These are the names of the extension entrypoints.
//
#define SZ_UME_UNLOADMENU "UMEUnloadMenu"
#define SZ_UME_INITIALIZEMENU "UMEInitializeMenu"
#define SZ_UME_REFRESH "UMERefresh"
#define SZ_UME_MENUACTION "UMEMenuAction"
#define SZ_UME_LOADMENUW "UMELoadMenuW"
#define SZ_UME_GETEXTENDEDERRORSTRINGW "UMEGetExtendedErrorStringW"
#define SZ_UME_CREATEW "UMECreateW"
#define SZ_UME_DELETEW "UMEDeleteW"
#define SZ_UME_RENAMEW "UMERenameW"
#define SZ_UME_LOADMENUA "UMELoadMenuA"
#define SZ_UME_GETEXTENDEDERRORSTRINGA "UMEGetExtendedErrorStringA"
#define SZ_UME_CREATEA "UMECreateA"
#define SZ_UME_DELETEA "UMEDeleteA"
#define SZ_UME_RENAMEA "UMERenameA"
#ifdef UNICODE
#define SZ_UME_LOADMENU SZ_UME_LOADMENUW
#define SZ_UME_GETEXTENDEDERRORSTRING SZ_UME_GETEXTENDEDERRORSTRINGW
#define SZ_UME_CREATE SZ_UME_CREATEW
#define SZ_UME_DELETE SZ_UME_DELETEW
#define SZ_UME_RENAME SZ_UME_RENAMEW
#else // !UNICODE
#define SZ_UME_LOADMENU SZ_UME_LOADMENUA
#define SZ_UME_GETEXTENDEDERRORSTRING SZ_UME_GETEXTENDEDERRORSTRINGA
#define SZ_UME_CREATE SZ_UME_CREATEA
#define SZ_UME_DELETE SZ_UME_DELETEA
#define SZ_UME_RENAME SZ_UME_RENAMEA
#endif // UNICODE
//
// Typedefs for the extension entrypoints.
//
typedef DWORD (PASCAL * PUMX_LOADMENUW)( HWND hWnd,
PUMS_LOADMENUW pumsload );
typedef DWORD (PASCAL * PUMX_LOADMENUA)( HWND hWnd,
PUMS_LOADMENUA pumsload );
typedef LPWSTR (PASCAL * PUMX_GETEXTENDEDERRORSTRINGW)( VOID );
typedef LPSTR (PASCAL * PUMX_GETEXTENDEDERRORSTRINGA)( VOID );
typedef VOID (PASCAL * PUMX_UNLOADMENU)( VOID );
typedef VOID (PASCAL * PUMX_INITIALIZEMENU)( VOID );
typedef VOID (PASCAL * PUMX_REFRESH)( HWND hwndParent );
typedef VOID (PASCAL * PUMX_MENUACTION)( HWND hwndParent,
DWORD dwEventId );
typedef VOID (PASCAL * PUMX_CREATEW)( HWND hwndParent,
PUMS_GETSELW pumsSelection );
typedef VOID (PASCAL * PUMX_CREATEA)( HWND hwndParent,
PUMS_GETSELA pumsSelection );
typedef VOID (PASCAL * PUMX_DELETEW)( HWND hwndParent,
PUMS_GETSELW pumsSelection );
typedef VOID (PASCAL * PUMX_DELETEA)( HWND hwndParent,
PUMS_GETSELA pumsSelection );
typedef VOID (PASCAL * PUMX_RENAMEW)( HWND hwndParent,
PUMS_GETSELW pumsSelection,
LPWSTR pchNewName );
typedef VOID (PASCAL * PUMX_RENAMEA)( HWND hwndParent,
PUMS_GETSELA pumsSelection,
LPSTR pchNewName );
#ifdef UNICODE
#define PUMX_LOADMENU PUMX_LOADMENUW
#define PUMX_GETEXTENDEDERRORSTRING PUMX_GETEXTENDEDERRORSTRINGW
#define PUMX_CREATE PUMX_CREATEW
#define PUMX_DELETE PUMX_DELETEW
#define PUMX_RENAME PUMX_RENAMEW
#else // !UNICODE
#define PUMX_LOADMENU PUMX_LOADMENUA
#define PUMX_GETEXTENDEDERRORSTRING PUMX_GETEXTENDEDERRORSTRINGA
#define PUMX_CREATE PUMX_CREATEA
#define PUMX_DELETE PUMX_DELETEA
#define PUMX_RENAME PUMX_RENAMEA
#endif // UNICODE
//
// Prototypes for the extension entrypoints.
//
DWORD PASCAL UMELoadMenuA( HWND hwndMessage,
PUMS_LOADMENUA pumsload );
DWORD PASCAL UMELoadMenuW( HWND hwndMessage,
PUMS_LOADMENUW pumsload );
LPSTR PASCAL UMEGetExtendedErrorStringA( VOID );
LPWSTR PASCAL UMEGetExtendedErrorStringW( VOID );
VOID PASCAL UMEUnloadMenu( VOID );
VOID PASCAL UMEInitializeMenu( VOID );
VOID PASCAL UMERefresh( HWND hwndParent );
VOID PASCAL UMEMenuAction( HWND hwndParent,
DWORD dwEventId );
VOID PASCAL UMECreateA( HWND hwndParent,
PUMS_GETSELA pumsSelection );
VOID PASCAL UMECreateW( HWND hwndParent,
PUMS_GETSELW pumsSelection );
VOID PASCAL UMEDeleteA( HWND hwndParent,
PUMS_GETSELA pumsSelection );
VOID PASCAL UMEDeleteW( HWND hwndParent,
PUMS_GETSELW pumsSelection );
VOID PASCAL UMERenameA( HWND hwndParent,
PUMS_GETSELA pumsSelection,
LPSTR pchNewName );
VOID PASCAL UMERenameW( HWND hwndParent,
PUMS_GETSELW pumsSelection,
LPWSTR pchNewName );
#pragma option pop /*P_O_Pop*/
#endif // _UMX_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -