Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

362 lines
8.8 KiB

  1. // --------------------------------------------------------------------------
  2. // Module Name: LPCThemes.h
  3. //
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // This file contains structs for PORT_MESSAGE appends which are specific to
  7. // the theme services API.
  8. //
  9. // History: 2000-10-10 vtan created
  10. // 2000-11-11 vtan collapse to single instance
  11. // --------------------------------------------------------------------------
  12. #ifndef _LPCThemes_
  13. #define _LPCThemes_
  14. #include <LPCGeneric.h>
  15. static const WCHAR THEMES_PORT_NAME[] = L"\\ThemeApiPort";
  16. static const WCHAR THEMES_CONNECTION_REQUEST[] = L"ThemeApiConnectionRequest";
  17. static const WCHAR THEMES_START_EVENT_NAME[] = L"ThemesStartEvent";
  18. enum
  19. {
  20. API_THEMES_THEMEHOOKSON = 1,
  21. API_THEMES_THEMEHOOKSOFF,
  22. API_THEMES_GETSTATUSFLAGS,
  23. API_THEMES_GETCURRENTCHANGENUMBER,
  24. API_THEMES_GETNEWCHANGENUMBER,
  25. API_THEMES_SETGLOBALTHEME,
  26. API_THEMES_GETGLOBALTHEME,
  27. API_THEMES_CHECKTHEMESIGNATURE,
  28. API_THEMES_LOADTHEME,
  29. API_THEMES_MARKSECTION,
  30. API_THEMES_PROCESSLOADTHEME,
  31. API_THEMES_PROCESSASSIGNSECTION,
  32. API_THEMES_USERLOGON = 1001,
  33. API_THEMES_USERLOGOFF,
  34. API_THEMES_SESSIONCREATE,
  35. API_THEMES_SESSIONDESTROY,
  36. API_THEMES_PING
  37. };
  38. typedef struct
  39. {
  40. } API_THEMES_THEMEHOOKSON_IN;
  41. typedef struct
  42. {
  43. HRESULT hr;
  44. } API_THEMES_THEMEHOOKSON_OUT;
  45. typedef struct
  46. {
  47. } API_THEMES_THEMEHOOKSOFF_IN;
  48. typedef struct
  49. {
  50. HRESULT hr;
  51. } API_THEMES_THEMEHOOKSOFF_OUT;
  52. typedef struct
  53. {
  54. } API_THEMES_GETSTATUSFLAGS_IN;
  55. typedef struct
  56. {
  57. DWORD dwFlags;
  58. } API_THEMES_GETSTATUSFLAGS_OUT;
  59. typedef struct
  60. {
  61. } API_THEMES_GETCURRENTCHANGENUMBER_IN;
  62. typedef struct
  63. {
  64. int iChangeNumber;
  65. } API_THEMES_GETCURRENTCHANGENUMBER_OUT;
  66. typedef struct
  67. {
  68. } API_THEMES_GETNEWCHANGENUMBER_IN;
  69. typedef struct
  70. {
  71. int iChangeNumber;
  72. } API_THEMES_GETNEWCHANGENUMBER_OUT;
  73. typedef struct
  74. {
  75. HANDLE hSection;
  76. } API_THEMES_SETGLOBALTHEME_IN;
  77. typedef struct
  78. {
  79. HANDLE hSection;
  80. DWORD dwAdd;
  81. DWORD dwRemove;
  82. } API_THEMES_MARKSECTION_IN;
  83. typedef struct
  84. {
  85. } API_THEMES_MARKSECTION_OUT;
  86. typedef struct
  87. {
  88. HRESULT hr;
  89. } API_THEMES_SETGLOBALTHEME_OUT;
  90. typedef struct
  91. {
  92. } API_THEMES_GETGLOBALTHEME_IN;
  93. typedef struct
  94. {
  95. HRESULT hr;
  96. HANDLE hSection;
  97. } API_THEMES_GETGLOBALTHEME_OUT;
  98. typedef struct
  99. {
  100. const WCHAR *pszName;
  101. int cchName;
  102. } API_THEMES_CHECKTHEMESIGNATURE_IN;
  103. typedef struct
  104. {
  105. HRESULT hr;
  106. } API_THEMES_CHECKTHEMESIGNATURE_OUT;
  107. typedef struct
  108. {
  109. const WCHAR *pszName;
  110. int cchName;
  111. const WCHAR *pszColor;
  112. int cchColor;
  113. const WCHAR *pszSize;
  114. int cchSize;
  115. HANDLE hSection;
  116. } API_THEMES_LOADTHEME_IN;
  117. typedef struct
  118. {
  119. HRESULT hr;
  120. HANDLE hSection;
  121. } API_THEMES_LOADTHEME_OUT;
  122. typedef struct
  123. {
  124. const WCHAR *pszName; // full path of msstyles file
  125. int cchName; // count of chars of pszName, including NULL.
  126. const WCHAR *pszColor; // color variant name
  127. int cchColor; // count of chars of pszColor, including NULL.
  128. const WCHAR *pszSize; // size variant name
  129. int cchSize; // count of chars of pszSize, including NULL.
  130. } API_THEMES_PROCESSLOADTHEME_IN;
  131. typedef struct
  132. {
  133. HRESULT hr;
  134. HANDLE hSection;
  135. } API_THEMES_PROCESSLOADTHEME_OUT;
  136. typedef struct
  137. {
  138. HRESULT hrLoad;
  139. HANDLE hSection;
  140. ULONG dwHash;
  141. } API_THEMES_PROCESSASSIGNSECTION_IN;
  142. typedef struct
  143. {
  144. HRESULT hr;
  145. } API_THEMES_PROCESSASSIGNSECTION_OUT;
  146. typedef struct
  147. {
  148. } API_THEMES_GETLASTERRORCONTEXT_IN;
  149. typedef struct
  150. {
  151. } API_THEMES_GETLASTERRORCONTEXT_OUT;
  152. typedef struct
  153. {
  154. } API_THEMES_GETERRORCONTEXTSECTION_IN;
  155. typedef struct
  156. {
  157. HANDLE hSection;
  158. } API_THEMES_GETERRORCONTEXTSECTION_OUT;
  159. typedef struct
  160. {
  161. HANDLE hToken;
  162. } API_THEMES_USERLOGON_IN;
  163. typedef struct
  164. {
  165. } API_THEMES_USERLOGON_OUT;
  166. typedef struct
  167. {
  168. } API_THEMES_USERLOGOFF_IN;
  169. typedef struct
  170. {
  171. } API_THEMES_USERLOGOFF_OUT;
  172. typedef struct
  173. {
  174. void *pfnRegister;
  175. void *pfnUnregister;
  176. void *pfnClearStockObjects;
  177. DWORD dwStackSizeReserve;
  178. DWORD dwStackSizeCommit;
  179. } API_THEMES_SESSIONCREATE_IN;
  180. typedef struct
  181. {
  182. } API_THEMES_SESSIONCREATE_OUT;
  183. typedef struct
  184. {
  185. } API_THEMES_SESSIONDESTROY_IN;
  186. typedef struct
  187. {
  188. } API_THEMES_SESSIONDESTROY_OUT;
  189. typedef struct
  190. {
  191. } API_THEMES_PING_IN;
  192. typedef struct
  193. {
  194. } API_THEMES_PING_OUT;
  195. typedef union
  196. {
  197. union
  198. {
  199. API_THEMES_THEMEHOOKSON_IN in;
  200. API_THEMES_THEMEHOOKSON_OUT out;
  201. } apiThemeHooksOn;
  202. union
  203. {
  204. API_THEMES_THEMEHOOKSOFF_IN in;
  205. API_THEMES_THEMEHOOKSOFF_OUT out;
  206. } apiThemeHooksOff;
  207. union
  208. {
  209. API_THEMES_GETSTATUSFLAGS_IN in;
  210. API_THEMES_GETSTATUSFLAGS_OUT out;
  211. } apiGetStatusFlags;
  212. union
  213. {
  214. API_THEMES_GETCURRENTCHANGENUMBER_IN in;
  215. API_THEMES_GETCURRENTCHANGENUMBER_OUT out;
  216. } apiGetCurrentChangeNumber;
  217. union
  218. {
  219. API_THEMES_GETNEWCHANGENUMBER_IN in;
  220. API_THEMES_GETNEWCHANGENUMBER_OUT out;
  221. } apiGetNewChangeNumber;
  222. union
  223. {
  224. API_THEMES_SETGLOBALTHEME_IN in;
  225. API_THEMES_SETGLOBALTHEME_OUT out;
  226. } apiSetGlobalTheme;
  227. union
  228. {
  229. API_THEMES_MARKSECTION_IN in;
  230. API_THEMES_MARKSECTION_OUT out;
  231. } apiMarkSection;
  232. union
  233. {
  234. API_THEMES_GETGLOBALTHEME_IN in;
  235. API_THEMES_GETGLOBALTHEME_OUT out;
  236. } apiGetGlobalTheme;
  237. union
  238. {
  239. API_THEMES_CHECKTHEMESIGNATURE_IN in;
  240. API_THEMES_CHECKTHEMESIGNATURE_OUT out;
  241. } apiCheckThemeSignature;
  242. union
  243. {
  244. API_THEMES_LOADTHEME_IN in;
  245. API_THEMES_LOADTHEME_OUT out;
  246. } apiLoadTheme;
  247. union
  248. {
  249. API_THEMES_PROCESSLOADTHEME_IN in;
  250. API_THEMES_PROCESSLOADTHEME_OUT out;
  251. } apiProcessLoadTheme;
  252. union
  253. {
  254. API_THEMES_PROCESSASSIGNSECTION_IN in;
  255. API_THEMES_PROCESSASSIGNSECTION_OUT out;
  256. } apiProcessAssignSection;
  257. union
  258. {
  259. API_THEMES_USERLOGON_IN in;
  260. API_THEMES_USERLOGON_OUT out;
  261. } apiUserLogon;
  262. union
  263. {
  264. API_THEMES_USERLOGOFF_IN in;
  265. API_THEMES_USERLOGOFF_OUT out;
  266. } apiUserLogoff;
  267. union
  268. {
  269. API_THEMES_SESSIONCREATE_IN in;
  270. API_THEMES_SESSIONCREATE_OUT out;
  271. } apiSessionCreate;
  272. union
  273. {
  274. API_THEMES_SESSIONDESTROY_IN in;
  275. API_THEMES_SESSIONDESTROY_OUT out;
  276. } apiSessionDestroy;
  277. union
  278. {
  279. API_THEMES_PING_IN in;
  280. API_THEMES_PING_OUT out;
  281. } apiPing;
  282. } API_THEMES_SPECIFIC;
  283. typedef struct
  284. {
  285. API_GENERIC apiGeneric;
  286. API_THEMES_SPECIFIC apiSpecific;
  287. } API_THEMES, *PAPI_THEMES;
  288. typedef struct
  289. {
  290. PORT_MESSAGE portMessage;
  291. API_THEMES apiThemes;
  292. } THEMESAPI_PORT_MESSAGE, *PTHEMESAPI_PORT_MESSAGE;
  293. EXTERN_C DWORD WINAPI ThemeWaitForServiceReady (DWORD dwTimeout);
  294. EXTERN_C BOOL WINAPI ThemeWatchForStart (void);
  295. EXTERN_C BOOL WINAPI ThemeUserLogon (HANDLE hToken);
  296. EXTERN_C BOOL WINAPI ThemeUserLogoff (void);
  297. EXTERN_C BOOL WINAPI ThemeUserTSReconnect (void);
  298. EXTERN_C BOOL WINAPI ThemeUserStartShell (void);
  299. typedef DWORD (WINAPI * PFNTHEMEWAITFORSERVICEREADY) (DWORD dwTimeout);
  300. typedef BOOL (WINAPI * PFNTHEMEWATCHFORSTART) (void);
  301. typedef HANDLE (WINAPI * PFNTHEMEUSERLOGON) (HANDLE hToken);
  302. typedef HANDLE (WINAPI * PFNTHEMEUSERLOGOFF) (void);
  303. typedef HANDLE (WINAPI * PFNTHEMEUSERTSRECONNECT) (void);
  304. typedef HANDLE (WINAPI * PFNTHEMEUSERSTARTSHELL) (void);
  305. #define ORDINAL_THEMEWAITFORSERVICEREADY 1
  306. #define ORDINAL_THEMEWATCHFORSTART 2
  307. #define ORDINAL_THEMEUSERLOGON 3
  308. #define ORDINAL_THEMEUSERLOGFF 4
  309. #define ORDINAL_THEMEUSERTSRECONNECT 5
  310. #define ORDINAL_THEMEUSERSTARTSHELL 6
  311. #endif /* _LPCThemes_ */