File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                w32api.d                               *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *             Translated from MinGW API for MS-Windows 4.0              *
4e2933c620 2015-04-21        kinaba: *                           by Stewart Gordon                           *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.w32api;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum __W32API_VERSION = 3.17;
9b639cf2d6 2015-05-05        kinaba: enum __W32API_MAJOR_VERSION = 3;
9b639cf2d6 2015-05-05        kinaba: enum __W32API_MINOR_VERSION = 17;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: /*	These version identifiers are used to specify the minimum version of Windows that an
9b639cf2d6 2015-05-05        kinaba:  *	application will support.
4e2933c620 2015-04-21        kinaba:  *
9b639cf2d6 2015-05-05        kinaba:  *	Previously the minimum Windows 9x and Windows NT versions could be specified.  However, since
9b639cf2d6 2015-05-05        kinaba:  *	Windows 9x is no longer supported, either by Microsoft or by DMD, this distinction has been
9b639cf2d6 2015-05-05        kinaba:  *	removed in order to simplify the bindings.
4e2933c620 2015-04-21        kinaba:  */
9b639cf2d6 2015-05-05        kinaba:  version (Windows10) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x604;
9b639cf2d6 2015-05-05        kinaba: } else version (Windows8_1) {	// also Windows2012R2
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x603;
9b639cf2d6 2015-05-05        kinaba: } else version (Windows8) {	// also Windows2012
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x602;
9b639cf2d6 2015-05-05        kinaba: } else version (Windows7) {	// also Windows2008R2
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x601;
9b639cf2d6 2015-05-05        kinaba: } else version (WindowsVista) {	// also Windows2008
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x600;
9b639cf2d6 2015-05-05        kinaba: } else version (Windows2003) {	// also WindowsHomeServer, WindowsXP64
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x502;
4e2933c620 2015-04-21        kinaba: } else version (WindowsXP) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x501;
9b639cf2d6 2015-05-05        kinaba: } else version (Windows2000) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x500;
9b639cf2d6 2015-05-05        kinaba: } else {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_WINNT = 0x501;
9b639cf2d6 2015-05-05        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: version (IE10) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0xA00;
9b639cf2d6 2015-05-05        kinaba: } else version (IE9) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x900;
9b639cf2d6 2015-05-05        kinaba: } else version (IE8) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x800;
9b639cf2d6 2015-05-05        kinaba: } else version (IE7) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x700;
9b639cf2d6 2015-05-05        kinaba: } else version (IE602) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x603;
9b639cf2d6 2015-05-05        kinaba: } else version (IE601) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x601;
9b639cf2d6 2015-05-05        kinaba: } else version (IE6) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x600;
9b639cf2d6 2015-05-05        kinaba: } else version (IE56) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x560;
9b639cf2d6 2015-05-05        kinaba: } else version (IE501) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x501;
9b639cf2d6 2015-05-05        kinaba: } else version (IE5) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x500;
9b639cf2d6 2015-05-05        kinaba: } else version (IE401) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x401;
9b639cf2d6 2015-05-05        kinaba: } else version (IE4) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x400;
9b639cf2d6 2015-05-05        kinaba: } else version (IE3) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x300;
9b639cf2d6 2015-05-05        kinaba: } else static if (_WIN32_WINNT >= 0x410) {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0x400;
4e2933c620 2015-04-21        kinaba: } else {
9b639cf2d6 2015-05-05        kinaba: 	enum uint _WIN32_IE = 0;
9b639cf2d6 2015-05-05        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: debug (WindowsUnitTest) {
9b639cf2d6 2015-05-05        kinaba: 	unittest {
9b639cf2d6 2015-05-05        kinaba: 		printf("Windows NT version: %03x\n", _WIN32_WINNT);
9b639cf2d6 2015-05-05        kinaba: 		printf("IE version:         %03x\n", _WIN32_IE);
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: version (Unicode) {
9b639cf2d6 2015-05-05        kinaba: 	enum bool _WIN32_UNICODE = true;
9b639cf2d6 2015-05-05        kinaba: 	package template DECLARE_AW(string name) {
9b639cf2d6 2015-05-05        kinaba: 		mixin("alias " ~ name ~ "W " ~ name ~ ";");
9b639cf2d6 2015-05-05        kinaba: 	}
4e2933c620 2015-04-21        kinaba: } else {
9b639cf2d6 2015-05-05        kinaba: 	enum bool _WIN32_UNICODE = false;
9b639cf2d6 2015-05-05        kinaba: 	package template DECLARE_AW(string name) {
9b639cf2d6 2015-05-05        kinaba: 		mixin("alias " ~ name ~ "A " ~ name ~ ";");
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }