/binding/win32/windows.d

http://github.com/wilkie/djehuty · D · 186 lines · 100 code · 19 blank · 67 comment · 14 complexity · 04d84ce46e2dcf4ced181ae292608720 MD5 · raw file

  1. /*
  2. * windows.d
  3. *
  4. * This module binds the Windows API and mimics windows.h.
  5. * The original header and copyright information for the file this module
  6. * was based upon are given below.
  7. *
  8. * Author: Dave Wilkinson
  9. * Originated: July 7th, 2009
  10. *
  11. */
  12. /*++ BUILD Version: 0001 Increment this if a change has global effects
  13. Copyright (c) Microsoft Corporation. All rights reserved.
  14. Module Name:
  15. windows.h
  16. Abstract:
  17. Master include file for Windows applications.
  18. --*/
  19. /* If defined, the following flags inhibit definition
  20. * of the indicated items.
  21. *
  22. * NOGDICAPMASKS - CC_*, LC_*, PC_*, CP_*, TC_*, RC_
  23. * NOVIRTUALKEYCODES - VK_*
  24. * NOWINMESSAGES - WM_*, EM_*, LB_*, CB_*
  25. * NOWINSTYLES - WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*
  26. * NOSYSMETRICS - SM_*
  27. * NOMENUS - MF_*
  28. * NOICONS - IDI_*
  29. * NOKEYSTATES - MK_*
  30. * NOSYSCOMMANDS - SC_*
  31. * NORASTEROPS - Binary and Tertiary raster ops
  32. * NOSHOWWINDOW - SW_*
  33. * OEMRESOURCE - OEM Resource values
  34. * NOATOM - Atom Manager routines
  35. * NOCLIPBOARD - Clipboard routines
  36. * NOCOLOR - Screen colors
  37. * NOCTLMGR - Control and Dialog routines
  38. * NODRAWTEXT - DrawText() and DT_*
  39. * NOGDI - All GDI defines and routines
  40. * NOKERNEL - All KERNEL defines and routines
  41. * NOUSER - All USER defines and routines
  42. * NONLS - All NLS defines and routines
  43. * NOMB - MB_* and MessageBox()
  44. * NOMEMMGR - GMEM_*, LMEM_*, GHND, LHND, associated routines
  45. * NOMETAFILE - typedef METAFILEPICT
  46. * NOMINMAX - Macros min(a,b) and max(a,b)
  47. * NOMSG - typedef MSG and associated routines
  48. * NOOPENFILE - OpenFile(), OemToAnsi, AnsiToOem, and OF_*
  49. * NOSCROLL - SB_* and scrolling routines
  50. * NOSERVICE - All Service Controller routines, SERVICE_ equates, etc.
  51. * NOSOUND - Sound driver routines
  52. * NOTEXTMETRIC - typedef TEXTMETRIC and associated routines
  53. * NOWH - SetWindowsHook and WH_*
  54. * NOWINOFFSETS - GWL_*, GCL_*, associated routines
  55. * NOCOMM - COMM driver routines
  56. * NOKANJI - Kanji support stuff.
  57. * NOHELP - Help engine interface.
  58. * NOPROFILER - Profiler interface.
  59. * NODEFERWINDOWPOS - DeferWindowPos routines
  60. * NOMCX - Modem Configuration Extensions
  61. */
  62. public import binding.win32.windef;
  63. public import binding.win32.winbase;
  64. public import binding.win32.wingdi;
  65. public import binding.win32.winuser;
  66. public import binding.win32.stralign;
  67. version(RC_INVOKED) {
  68. version(NOWINRES) {
  69. }
  70. else {
  71. public import binding.win32.winresrc;
  72. }
  73. }
  74. version(_WIN32NLS) {
  75. public import binding.win32.winnls;
  76. }
  77. version(_WIN32REG) {
  78. public import binding.win32.winreg;
  79. }
  80. version(INC_OLE2) {
  81. public import binding.win32.ole2;
  82. }
  83. version(_MAC) {
  84. public import binding.win32.winwlm;
  85. }
  86. else {
  87. version(NOSERVICE) {
  88. }
  89. else {
  90. public import binding.win32.winsvc;
  91. }
  92. version(NOMCX) {
  93. }
  94. else {
  95. public import binding.win32.mcx;
  96. }
  97. version(NOIME) {
  98. }
  99. else {
  100. public import binding.win32.imm;
  101. }
  102. version(_WIN32NLS) {
  103. }
  104. else {
  105. public import binding.win32.winnls;
  106. }
  107. version(_WIN32REG) {
  108. }
  109. else {
  110. public import binding.win32.winreg;
  111. }
  112. public import binding.win32.wincon;
  113. public import binding.win32.winver;
  114. public import binding.win32.winnetwk;
  115. }
  116. version(WIN32_LEAN_AND_MEAN) {
  117. }
  118. else {
  119. public import binding.win32.cderr;
  120. public import binding.win32.dde;
  121. public import binding.win32.ddeml;
  122. public import binding.win32.dlgs;
  123. public import binding.win32.shellapi;
  124. version(_MAC) {
  125. }
  126. else {
  127. public import binding.win32.lzexpand;
  128. public import binding.win32.mmsystem;
  129. public import binding.win32.nb30;
  130. public import binding.win32.rpc;
  131. public import binding.win32.winperf;
  132. public import binding.win32.winsock;
  133. }
  134. version(NO_CRYPT) {
  135. }
  136. else {
  137. public import binding.win32.wincrypt;
  138. public import binding.win32.winefs;
  139. public import binding.win32.winscard;
  140. }
  141. version(NO_GDI) {
  142. }
  143. else {
  144. version(_MAC) {
  145. }
  146. else {
  147. public import binding.win32.winspool;
  148. version(INC_OLE1) {
  149. public import binding.win32.ole;
  150. }
  151. else {
  152. version(INC_OLE2) {
  153. }
  154. else {
  155. public import binding.win32.ole2;
  156. }
  157. }
  158. }
  159. public import binding.win32.commdlg;
  160. }
  161. }