Artifact df09b120755ba58cca61ec35afaf0a0cec4ef151:
- File
src/win32/lmmsg.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 20 6c 6d 6d 73 lmms 0070: 67 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 g.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla 0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W 01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f Placed into 0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20 public domain 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a *..\******* 0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e /..module win32. 02b0: 6c 6d 6d 73 67 3b 0d 0a 70 72 61 67 6d 61 28 6c lmmsg;..pragma(l 02c0: 69 62 2c 20 22 6e 65 74 61 70 69 33 32 22 29 3b ib, "netapi32"); 02d0: 0d 0a 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f ....private impo 02e0: 72 74 20 77 69 6e 33 32 2e 6c 6d 63 6f 6e 73 2c rt win32.lmcons, 02f0: 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 2c 20 77 win32.windef, w 0300: 69 6e 33 32 2e 77 33 32 61 70 69 3b 0d 0a 0d 0a in32.w32api;.... 0310: 73 74 61 74 69 63 20 61 73 73 65 72 74 20 28 5f static assert (_ 0320: 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 WIN32_WINNT >= 0 0330: 78 35 30 31 2c 0d 0a 09 22 77 69 6e 33 32 2e 6c x501,..."win32.l 0340: 6d 6d 73 67 20 69 73 20 61 76 61 69 6c 61 62 6c mmsg is availabl 0350: 65 20 6f 6e 6c 79 20 69 66 20 76 65 72 73 69 6f e only if versio 0360: 6e 20 57 69 6e 64 6f 77 73 58 50 2c 20 57 69 6e n WindowsXP, Win 0370: 64 6f 77 73 32 30 30 33 20 22 0d 0a 09 22 6f 72 dows2003 "..."or 0380: 20 57 69 6e 64 6f 77 73 56 69 73 74 61 20 69 73 WindowsVista is 0390: 20 73 65 74 22 29 3b 0d 0a 0d 0a 63 6f 6e 73 74 set");....const 03a0: 20 4d 53 47 4e 41 4d 45 5f 4e 4f 54 5f 46 4f 52 MSGNAME_NOT_FOR 03b0: 57 41 52 44 45 44 20 20 3d 20 30 3b 0d 0a 63 6f WARDED = 0;..co 03c0: 6e 73 74 20 4d 53 47 4e 41 4d 45 5f 46 4f 52 57 nst MSGNAME_FORW 03d0: 41 52 44 45 44 5f 54 4f 20 20 20 3d 20 34 3b 0d ARDED_TO = 4;. 03e0: 0a 63 6f 6e 73 74 20 4d 53 47 4e 41 4d 45 5f 46 .const MSGNAME_F 03f0: 4f 52 57 41 52 44 45 44 5f 46 52 4f 4d 20 3d 20 ORWARDED_FROM = 0400: 31 36 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 4d 53 16;....struct MS 0410: 47 5f 49 4e 46 4f 5f 30 20 7b 0d 0a 09 4c 50 57 G_INFO_0 {...LPW 0420: 53 54 52 20 6d 73 67 69 30 5f 6e 61 6d 65 3b 0d STR msgi0_name;. 0430: 0a 7d 0d 0a 61 6c 69 61 73 20 4d 53 47 5f 49 4e .}..alias MSG_IN 0440: 46 4f 5f 30 2a 20 50 4d 53 47 5f 49 4e 46 4f 5f FO_0* PMSG_INFO_ 0450: 30 2c 20 4c 50 4d 53 47 5f 49 4e 46 4f 5f 30 3b 0, LPMSG_INFO_0; 0460: 0d 0a 0d 0a 73 74 72 75 63 74 20 4d 53 47 5f 49 ....struct MSG_I 0470: 4e 46 4f 5f 31 20 7b 0d 0a 09 4c 50 57 53 54 52 NFO_1 {...LPWSTR 0480: 20 6d 73 67 69 31 5f 6e 61 6d 65 3b 0d 0a 09 44 msgi1_name;...D 0490: 57 4f 52 44 20 6d 73 67 69 31 5f 66 6f 72 77 61 WORD msgi1_forwa 04a0: 72 64 5f 66 6c 61 67 3b 0d 0a 09 4c 50 57 53 54 rd_flag;...LPWST 04b0: 52 20 6d 73 67 69 31 5f 66 6f 72 77 61 72 64 3b R msgi1_forward; 04c0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 4d 53 47 5f 49 ..}..alias MSG_I 04d0: 4e 46 4f 5f 31 2a 20 50 4d 53 47 5f 49 4e 46 4f NFO_1* PMSG_INFO 04e0: 5f 31 2c 20 4c 50 4d 53 47 5f 49 4e 46 4f 5f 31 _1, LPMSG_INFO_1 04f0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e ;....extern (Win 0500: 64 6f 77 73 29 20 7b 0d 0a 09 4e 45 54 5f 41 50 dows) {...NET_AP 0510: 49 5f 53 54 41 54 55 53 20 4e 65 74 4d 65 73 73 I_STATUS NetMess 0520: 61 67 65 42 75 66 66 65 72 53 65 6e 64 28 4c 50 ageBufferSend(LP 0530: 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 CWSTR, LPCWSTR, 0540: 4c 50 43 57 53 54 52 2c 20 50 42 59 54 45 2c 0d LPCWSTR, PBYTE,. 0550: 0a 09 20 20 44 57 4f 52 44 29 3b 0d 0a 09 4e 45 .. DWORD);...NE 0560: 54 5f 41 50 49 5f 53 54 41 54 55 53 20 4e 65 74 T_API_STATUS Net 0570: 4d 65 73 73 61 67 65 4e 61 6d 65 41 64 64 28 4c MessageNameAdd(L 0580: 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 29 PCWSTR, LPCWSTR) 0590: 3b 0d 0a 09 4e 45 54 5f 41 50 49 5f 53 54 41 54 ;...NET_API_STAT 05a0: 55 53 20 4e 65 74 4d 65 73 73 61 67 65 4e 61 6d US NetMessageNam 05b0: 65 44 65 6c 28 4c 50 43 57 53 54 52 2c 20 4c 50 eDel(LPCWSTR, LP 05c0: 43 57 53 54 52 29 3b 0d 0a 09 4e 45 54 5f 41 50 CWSTR);...NET_AP 05d0: 49 5f 53 54 41 54 55 53 20 4e 65 74 4d 65 73 73 I_STATUS NetMess 05e0: 61 67 65 4e 61 6d 65 45 6e 75 6d 28 4c 50 43 57 ageNameEnum(LPCW 05f0: 53 54 52 2c 20 44 57 4f 52 44 2c 20 50 42 59 54 STR, DWORD, PBYT 0600: 45 2a 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 E*, DWORD, PDWOR 0610: 44 2c 0d 0a 09 20 20 50 44 57 4f 52 44 2c 20 50 D,... PDWORD, P 0620: 44 57 4f 52 44 29 3b 0d 0a 09 4e 45 54 5f 41 50 DWORD);...NET_AP 0630: 49 5f 53 54 41 54 55 53 20 4e 65 74 4d 65 73 73 I_STATUS NetMess 0640: 61 67 65 4e 61 6d 65 47 65 74 49 6e 66 6f 28 4c ageNameGetInfo(L 0650: 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c PCWSTR, LPCWSTR, 0660: 20 44 57 4f 52 44 2c 20 50 42 59 54 45 2a 29 3b DWORD, PBYTE*); 0670: 0d 0a 7d 0d 0a ..}..