323 lines
7.3 KiB
C
323 lines
7.3 KiB
C
// --------------------------------------------------------------------------
|
|
// Module Name: LPCThemes.h
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// This file contains structs for PORT_MESSAGE appends which are specific to
|
|
// the theme services API.
|
|
//
|
|
// History: 2000-10-10 vtan created
|
|
// 2000-11-11 vtan collapse to single instance
|
|
// --------------------------------------------------------------------------
|
|
|
|
#ifndef _LPCThemes_
|
|
#define _LPCThemes_
|
|
|
|
#include <LPCGeneric.h>
|
|
|
|
static const WCHAR THEMES_PORT_NAME[] = L"\\ThemeApiPort";
|
|
static const WCHAR THEMES_CONNECTION_REQUEST[] = L"ThemeApiConnectionRequest";
|
|
static const WCHAR THEMES_START_EVENT_NAME[] = L"ThemesStartEvent";
|
|
|
|
enum
|
|
{
|
|
API_THEMES_THEMEHOOKSON = 1,
|
|
API_THEMES_THEMEHOOKSOFF,
|
|
API_THEMES_GETSTATUSFLAGS,
|
|
API_THEMES_GETCURRENTCHANGENUMBER,
|
|
API_THEMES_GETNEWCHANGENUMBER,
|
|
API_THEMES_SETGLOBALTHEME,
|
|
API_THEMES_GETGLOBALTHEME,
|
|
API_THEMES_CHECKTHEMESIGNATURE,
|
|
API_THEMES_LOADTHEME,
|
|
API_THEMES_MARKSECTION,
|
|
|
|
API_THEMES_USERLOGON = 1001,
|
|
API_THEMES_USERLOGOFF,
|
|
API_THEMES_SESSIONCREATE,
|
|
API_THEMES_SESSIONDESTROY,
|
|
API_THEMES_PING
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_THEMEHOOKSON_IN;
|
|
|
|
typedef struct
|
|
{
|
|
HRESULT hr;
|
|
} API_THEMES_THEMEHOOKSON_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_THEMEHOOKSOFF_IN;
|
|
|
|
typedef struct
|
|
{
|
|
HRESULT hr;
|
|
} API_THEMES_THEMEHOOKSOFF_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_GETSTATUSFLAGS_IN;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwFlags;
|
|
} API_THEMES_GETSTATUSFLAGS_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_GETCURRENTCHANGENUMBER_IN;
|
|
|
|
typedef struct
|
|
{
|
|
int iChangeNumber;
|
|
} API_THEMES_GETCURRENTCHANGENUMBER_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_GETNEWCHANGENUMBER_IN;
|
|
|
|
typedef struct
|
|
{
|
|
int iChangeNumber;
|
|
} API_THEMES_GETNEWCHANGENUMBER_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
HANDLE hSection;
|
|
} API_THEMES_SETGLOBALTHEME_IN;
|
|
|
|
typedef struct
|
|
{
|
|
HANDLE hSection;
|
|
DWORD dwAdd;
|
|
DWORD dwRemove;
|
|
} API_THEMES_MARKSECTION_IN;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_MARKSECTION_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
HRESULT hr;
|
|
} API_THEMES_SETGLOBALTHEME_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_GETGLOBALTHEME_IN;
|
|
|
|
typedef struct
|
|
{
|
|
HRESULT hr;
|
|
HANDLE hSection;
|
|
} API_THEMES_GETGLOBALTHEME_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
const WCHAR *pszName;
|
|
int cchName;
|
|
} API_THEMES_CHECKTHEMESIGNATURE_IN;
|
|
|
|
typedef struct
|
|
{
|
|
HRESULT hr;
|
|
} API_THEMES_CHECKTHEMESIGNATURE_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
const WCHAR *pszName;
|
|
int cchName;
|
|
const WCHAR *pszColor;
|
|
int cchColor;
|
|
const WCHAR *pszSize;
|
|
int cchSize;
|
|
HANDLE hSection;
|
|
} API_THEMES_LOADTHEME_IN;
|
|
|
|
typedef struct
|
|
{
|
|
HRESULT hr;
|
|
HANDLE hSection;
|
|
} API_THEMES_LOADTHEME_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_GETLASTERRORCONTEXT_IN;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_GETLASTERRORCONTEXT_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_GETERRORCONTEXTSECTION_IN;
|
|
|
|
typedef struct
|
|
{
|
|
HANDLE hSection;
|
|
} API_THEMES_GETERRORCONTEXTSECTION_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
HANDLE hToken;
|
|
} API_THEMES_USERLOGON_IN;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_USERLOGON_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_USERLOGOFF_IN;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_USERLOGOFF_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
void *pfnRegister;
|
|
void *pfnUnregister;
|
|
void *pfnClearStockObjects;
|
|
DWORD dwStackSizeReserve;
|
|
DWORD dwStackSizeCommit;
|
|
} API_THEMES_SESSIONCREATE_IN;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_SESSIONCREATE_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_SESSIONDESTROY_IN;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_SESSIONDESTROY_OUT;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_PING_IN;
|
|
|
|
typedef struct
|
|
{
|
|
} API_THEMES_PING_OUT;
|
|
|
|
typedef union
|
|
{
|
|
union
|
|
{
|
|
API_THEMES_THEMEHOOKSON_IN in;
|
|
API_THEMES_THEMEHOOKSON_OUT out;
|
|
} apiThemeHooksOn;
|
|
union
|
|
{
|
|
API_THEMES_THEMEHOOKSOFF_IN in;
|
|
API_THEMES_THEMEHOOKSOFF_OUT out;
|
|
} apiThemeHooksOff;
|
|
union
|
|
{
|
|
API_THEMES_GETSTATUSFLAGS_IN in;
|
|
API_THEMES_GETSTATUSFLAGS_OUT out;
|
|
} apiGetStatusFlags;
|
|
union
|
|
{
|
|
API_THEMES_GETCURRENTCHANGENUMBER_IN in;
|
|
API_THEMES_GETCURRENTCHANGENUMBER_OUT out;
|
|
} apiGetCurrentChangeNumber;
|
|
union
|
|
{
|
|
API_THEMES_GETNEWCHANGENUMBER_IN in;
|
|
API_THEMES_GETNEWCHANGENUMBER_OUT out;
|
|
} apiGetNewChangeNumber;
|
|
union
|
|
{
|
|
API_THEMES_SETGLOBALTHEME_IN in;
|
|
API_THEMES_SETGLOBALTHEME_OUT out;
|
|
} apiSetGlobalTheme;
|
|
union
|
|
{
|
|
API_THEMES_MARKSECTION_IN in;
|
|
API_THEMES_MARKSECTION_OUT out;
|
|
} apiMarkSection;
|
|
union
|
|
{
|
|
API_THEMES_GETGLOBALTHEME_IN in;
|
|
API_THEMES_GETGLOBALTHEME_OUT out;
|
|
} apiGetGlobalTheme;
|
|
union
|
|
{
|
|
API_THEMES_CHECKTHEMESIGNATURE_IN in;
|
|
API_THEMES_CHECKTHEMESIGNATURE_OUT out;
|
|
} apiCheckThemeSignature;
|
|
union
|
|
{
|
|
API_THEMES_LOADTHEME_IN in;
|
|
API_THEMES_LOADTHEME_OUT out;
|
|
} apiLoadTheme;
|
|
union
|
|
{
|
|
API_THEMES_USERLOGON_IN in;
|
|
API_THEMES_USERLOGON_OUT out;
|
|
} apiUserLogon;
|
|
union
|
|
{
|
|
API_THEMES_USERLOGOFF_IN in;
|
|
API_THEMES_USERLOGOFF_OUT out;
|
|
} apiUserLogoff;
|
|
union
|
|
{
|
|
API_THEMES_SESSIONCREATE_IN in;
|
|
API_THEMES_SESSIONCREATE_OUT out;
|
|
} apiSessionCreate;
|
|
union
|
|
{
|
|
API_THEMES_SESSIONDESTROY_IN in;
|
|
API_THEMES_SESSIONDESTROY_OUT out;
|
|
} apiSessionDestroy;
|
|
union
|
|
{
|
|
API_THEMES_PING_IN in;
|
|
API_THEMES_PING_OUT out;
|
|
} apiPing;
|
|
} API_THEMES_SPECIFIC;
|
|
|
|
typedef struct
|
|
{
|
|
API_GENERIC apiGeneric;
|
|
API_THEMES_SPECIFIC apiSpecific;
|
|
} API_THEMES, *PAPI_THEMES;
|
|
|
|
typedef struct
|
|
{
|
|
PORT_MESSAGE portMessage;
|
|
API_THEMES apiThemes;
|
|
} THEMESAPI_PORT_MESSAGE, *PTHEMESAPI_PORT_MESSAGE;
|
|
|
|
EXTERN_C DWORD WINAPI ThemeWaitForServiceReady (DWORD dwTimeout);
|
|
EXTERN_C BOOL WINAPI ThemeWatchForStart (void);
|
|
EXTERN_C BOOL WINAPI ThemeUserLogon (HANDLE hToken);
|
|
EXTERN_C BOOL WINAPI ThemeUserLogoff (void);
|
|
EXTERN_C BOOL WINAPI ThemeUserTSReconnect (void);
|
|
EXTERN_C BOOL WINAPI ThemeUserStartShell (void);
|
|
|
|
typedef DWORD (WINAPI * PFNTHEMEWAITFORSERVICEREADY) (DWORD dwTimeout);
|
|
typedef BOOL (WINAPI * PFNTHEMEWATCHFORSTART) (void);
|
|
typedef HANDLE (WINAPI * PFNTHEMEUSERLOGON) (HANDLE hToken);
|
|
typedef HANDLE (WINAPI * PFNTHEMEUSERLOGOFF) (void);
|
|
typedef HANDLE (WINAPI * PFNTHEMEUSERTSRECONNECT) (void);
|
|
typedef HANDLE (WINAPI * PFNTHEMEUSERSTARTSHELL) (void);
|
|
|
|
#define ORDINAL_THEMEWAITFORSERVICEREADY 1
|
|
#define ORDINAL_THEMEWATCHFORSTART 2
|
|
#define ORDINAL_THEMEUSERLOGON 3
|
|
#define ORDINAL_THEMEUSERLOGFF 4
|
|
#define ORDINAL_THEMEUSERTSRECONNECT 5
|
|
#define ORDINAL_THEMEUSERSTARTSHELL 6
|
|
|
|
#endif /* _LPCThemes_ */
|
|
|