root/trunk/win32/dde.d

Revision 218, 6.6 kB (checked in by WeirdCat, 1 year ago)

warnings and errors fixed

Line 
1 /***********************************************************************\
2 *                                 dde.d                                 *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                           by Stewart Gordon                           *
8 *                                                                       *
9 *                       Placed into public domain                       *
10 \***********************************************************************/
11 module win32.dde;
12 pragma(lib, "user32.lib");
13
14 private import win32.windef;
15
16 enum : uint {
17     WM_DDE_FIRST     = 0x03E0,
18     WM_DDE_INITIATE  = WM_DDE_FIRST,
19     WM_DDE_TERMINATE,
20     WM_DDE_ADVISE,
21     WM_DDE_UNADVISE,
22     WM_DDE_ACK,
23     WM_DDE_DATA,
24     WM_DDE_REQUEST,
25     WM_DDE_POKE,
26     WM_DDE_EXECUTE,
27     WM_DDE_LAST      = WM_DDE_EXECUTE
28 }
29
30 struct DDEACK {
31     ubyte bAppReturnCode;
32     ubyte _bf;
33
34     ubyte reserved() { return cast(ubyte) (_bf & 0x3F); }
35     bool  fBusy()    { return cast(bool)  (_bf & 0x40); }
36     bool  fAck()     { return cast(bool)  (_bf & 0x80); }
37
38     ubyte reserved(ubyte r) {
39         _bf = cast(ubyte) ((_bf & ~0x3F) | (r & 0x3F));
40         return cast(ubyte)(r & 0x3F);
41     }
42
43     bool fBusy(bool f) { _bf = cast(ubyte) ((_bf & ~0x40) | (f << 6)); return f; }
44     bool fAck(bool f)  { _bf = cast(ubyte) ((_bf & ~0x80) | (f << 7)); return f; }
45 }
46
47 struct DDEADVISE {
48     ushort _bf;
49     short  cfFormat;
50
51     ushort reserved()  { return cast(ushort) (_bf & 0x3FFF); }
52     bool   fDeferUpd() { return cast(bool)   (_bf & 0x4000); }
53     bool   fAckReq()   { return cast(bool)   (_bf & 0x8000); }
54
55     ushort reserved(ushort r) {
56         _bf = cast(ushort) ((_bf & ~0x3FFF) | (r & 0x3FFF));
57         return cast(ushort)(r & 0x3FFF);
58     }
59
60     bool   fDeferUpd(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; }
61     bool   fAckReq(bool f)   { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; }
62 }
63
64 struct DDEDATA {
65     ushort _bf;
66     short  cfFormat;
67     byte   _Value;
68
69     ushort unused()    { return cast(ushort) (_bf & 0x0FFF); }
70     bool   fResponse() { return cast(bool)   (_bf & 0x1000); }
71     bool   fRelease()  { return cast(bool)   (_bf & 0x2000); }
72     bool   reserved()  { return cast(bool)   (_bf & 0x4000); }
73     bool   fAckReq()   { return cast(bool)   (_bf & 0x8000); }
74
75     byte*  Value() { return &_Value; }
76
77     ushort unused(ushort r) {
78         _bf = cast(ushort) ((_bf & ~0x0FFF) | (r & 0x0FFF));
79         return cast(ushort)(r & 0x0FFF);
80     }
81
82     bool   fResponse(bool f) { _bf = cast(ushort) ((_bf & ~0x1000) | (f << 12)); return f; }
83     bool   fRelease(bool f)  { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; }
84     bool   reserved(bool f)  { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; }
85     bool   fAckReq(bool f)   { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; }
86 }
87
88 struct DDEPOKE {
89     ushort _bf;
90     short  cfFormat;
91     byte   _Value;
92
93     ushort unused()    { return cast(ushort) (_bf & 0x1FFF); }
94     bool   fRelease()  { return cast(bool)   (_bf & 0x2000); }
95     ubyte  fReserved() { return cast(ubyte)  ((_bf & 0xC000) >>> 14); }
96
97     byte*  Value() { return &_Value; }
98
99     ushort unused(ushort u) {
100         _bf = cast(ushort) ((_bf & ~0x1FFF) | (u & 0x1FFF));
101         return cast(ushort)(u & 0x1FFF);
102     }
103
104     bool   fRelease(bool f)   { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; }
105     ubyte  fReserved(ubyte r) { _bf = cast(ushort) ((_bf & ~0xC000) | (r << 14)); return r; }
106 }
107
108 deprecated struct DDELN {
109     ushort _bf;
110     short  cfFormat;
111
112     ushort unused()    { return cast(ushort) (_bf & 0x1FFF); }
113     bool   fRelease()  { return cast(bool)   (_bf & 0x2000); }
114     bool   fDeferUpd() { return cast(bool)   (_bf & 0x4000); }
115     bool   fAckReq()   { return cast(bool)   (_bf & 0x8000); }
116
117     ushort unused(ushort u) {
118         _bf = cast(ushort)((_bf & ~0x1FFF) | (u & 0x1FFF));
119         return cast(ushort)(u & 0x1FFF);
120     }
121
122     bool   fRelease(bool f)  { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; }
123     bool   fDeferUpd(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; }
124     bool   fAckReq(bool f)   { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; }
125 }
126
127 deprecated struct DDEUP {
128     ushort _bf;
129     short  cfFormat;
130     byte   _rgb;
131
132     ushort unused()    { return cast(ushort) (_bf & 0x0FFF); }
133     bool   fAck()      { return cast(bool)   (_bf & 0x1000); }
134     bool   fRelease()  { return cast(bool)   (_bf & 0x2000); }
135     bool   fReserved() { return cast(bool)   (_bf & 0x4000); }
136     bool   fAckReq()   { return cast(bool)   (_bf & 0x8000); }
137
138     byte*  rgb() { return &_rgb; }
139
140     ushort unused(ushort r) {
141         _bf = cast(ushort) ((_bf & ~0x0FFF) | (r & 0x0FFF));
142         return cast(ushort)(r & 0x0FFF);
143     }
144
145     bool   fAck(bool f)      { _bf = cast(ushort) ((_bf & ~0x1000) | (f << 12)); return f; }
146     bool   fRelease(bool f)  { _bf = cast(ushort) ((_bf & ~0x2000) | (f << 13)); return f; }
147     bool   fReserved(bool f) { _bf = cast(ushort) ((_bf & ~0x4000) | (f << 14)); return f; }
148     bool   fAckReq(bool f)   { _bf = cast(ushort) ((_bf & ~0x8000) | (f << 15)); return f; }
149 }
150
151 extern (Windows) {
152     BOOL DdeSetQualityOfService(HWND, SECURITY_QUALITY_OF_SERVICE*,
153       PSECURITY_QUALITY_OF_SERVICE);
154     BOOL ImpersonateDdeClientWindow(HWND, HWND);
155     LPARAM PackDDElParam(UINT, UINT_PTR, UINT_PTR);
156     BOOL UnpackDDElParam(UINT, LPARAM, PUINT_PTR, PUINT_PTR);
157     BOOL FreeDDElParam(UINT, LPARAM);
158     LPARAM ReuseDDElParam(LPARAM, UINT, UINT, UINT_PTR, UINT_PTR);
159 }
160
161 debug (WindowsUnitTest) {
162     unittest {
163         DDEACK ddeack;
164
165         with (ddeack) {
166             reserved = 10;
167             assert (_bf == 0x0A);
168             fBusy = true;
169             assert (_bf == 0x4A);
170             fAck = true;
171             assert (_bf == 0xCA);
172
173             assert (reserved == 10);
174             assert (fBusy == true);
175             assert (fAck == true);
176
177             reserved = 43;
178             assert (_bf == 0xEB);
179             fBusy = false;
180             assert (_bf == 0xAB);
181             fAck = false;
182             assert (_bf == 0x2B);
183
184             assert (reserved == 43);
185             assert (fBusy == false);
186             assert (fAck == false);
187         }
188
189         DDEPOKE ddepoke;
190
191         with (ddepoke) {
192             unused = 3456;
193             assert (_bf == 0x0D80);
194             fRelease = true;
195             assert (_bf == 0x2D80);
196             fReserved = 2;
197             assert (_bf == 0xAD80);
198
199             assert (unused == 3456);
200             assert (fRelease == true);
201             assert (fReserved == 2);
202
203             unused = 2109;
204             assert (_bf == 0xa83d);
205             fRelease = false;
206             assert (_bf == 0x883d);
207             fReserved = 1;
208             assert (_bf == 0x483d);
209
210             assert (unused == 2109);
211             assert (fRelease == false);
212             assert (fReserved == 1);
213         }
214     }
215 }
Note: See TracBrowser for help on using the browser.