1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 /****************************************************************************/
7 /* RWS - beta version 0.80 */
8 /****************************************************************************/
11 // Remote Workplace Server - main header
13 /****************************************************************************/
15 #ifndef RWS_H_INCLUDED
16 #define RWS_H_INCLUDED
22 /****************************************************************************/
23 /* Server Request Structures */
24 /****************************************************************************/
26 // These structures are created & initialized in shared memory by
27 // RwsClient and are passed to RwsServer. On return, the client app
28 // can access any data they contain.
30 // Every request to RwsServer starts with one of these
31 typedef struct _RWSHDR
33 ULONG Size
; // total size of the request block
34 USHORT MsgId
; // used by RwsDispatch
35 USHORT Flags
; // used by RwsDispatch & RwsFreeMem
36 struct _RWSHDR
* PrevHdr
; // not used
37 USHORT Rc
; // return code from server
38 USHORT Cnt
; // argument count
39 ULONG Id
; // for use by application
41 typedef RWSHDR
* PRWSHDR
;
43 // Every request to RwsServer has at least two of these in a linked list.
44 // The first immediately follows RWSHDR and describes the type of call;
45 // the second describes the return value. Additional structs describe
46 // each of the arguments; the last in the chain has a zero in pnext.
47 // Note: in case you were wondering, "DSC" is short for descriptor
48 typedef struct _RWSDSC
50 struct _RWSDSC
*pnext
;
51 ULONG value
; // data actually passed to or returned by procedure
52 ULONG type
; // describes how RWS should handle this argument
53 USHORT flags
; // currently, identifies this as an arg/rtn/proc
54 USHORT rc
; // error code generated while handling this item
55 USHORT cbgive
; // size of the give (input) buffer
56 USHORT cbget
; // size of the get (output) buffer
57 VOID
* pget
; // pointer to the get buffer
58 } RWSDSC
; // note: the give buffer immediately follows
59 typedef RWSDSC
* PRWSDSC
; // this structure (i.e. it's at &RWSDSC[1])
62 /****************************************************************************/
63 /* Client Request Structures */
64 /****************************************************************************/
66 // These structures describe the layout of the stack when an app calls
67 // RwsCall or RwsBuild. They can be used with RwsCallIndirect and
68 // RwsBuildIndirect to avoid pushing a large number of arguments onto
71 // header structure - required
72 typedef struct _RWSBLD
81 typedef RWSBLD
* PRWSBLD
;
83 // argument structures - as needed
84 typedef struct _RWSARG
90 typedef RWSARG
* PRWSARG
;
93 /****************************************************************************/
94 /* Exported Procedures used by Clients */
95 /****************************************************************************/
97 // These functions' va list is equivalent to an array of zero or more
98 // RWSARG structures (i.e. {ULONG type, ULONG size, ULONG value}...)
100 ULONG _System
RwsCall( PRWSHDR
* ppHdr
, ULONG callType
, ULONG callValue
,
101 ULONG rtnType
, ULONG rtnSize
, ULONG argCnt
, ...);
102 ULONG _System
RwsCallIndirect( PRWSBLD pBld
);
103 ULONG _System
RwsCallAsync( HWND hwnd
, PRWSHDR
* ppHdr
,
104 ULONG callType
, ULONG callValue
,
105 ULONG rtnType
, ULONG rtnSize
,
107 ULONG _System
RwsCallIndirectAsync( HWND hwnd
, PRWSBLD pBld
);
108 ULONG _System
RwsBuild( PRWSHDR
* ppHdr
, ULONG callType
, ULONG callValue
,
109 ULONG rtnType
, ULONG rtnSize
, ULONG argCnt
, ...);
110 ULONG _System
RwsBuildIndirect( PRWSBLD pBld
);
111 ULONG _System
RwsQueryVersion( PULONG pulReserved
);
112 ULONG _System
RwsClientInit( BOOL fRegister
);
113 ULONG _System
RwsClientTerminate( void);
114 ULONG _System
RwsDispatch( PRWSHDR pHdr
);
115 ULONG _System
RwsDispatchStatus( PBOOL pfReady
);
116 ULONG _System
RwsCancelDispatch( HWND hNotify
, ULONG idNotify
);
117 ULONG _System
RwsNotify( HWND hNotify
, ULONG idNotify
);
118 ULONG _System
RwsDispatchAsync( HWND hwnd
, PRWSHDR pHdr
);
119 ULONG _System
RwsFreeMem( PRWSHDR pHdr
);
120 ULONG _System
RwsGetResult( PRWSHDR pHdr
, ULONG ndxArg
, PULONG pSize
);
121 ULONG _System
RwsGetArgPtr( PRWSHDR pHdr
, ULONG ndxArg
, PRWSDSC
* ppArg
);
122 ULONG _System
RwsGetServerMsgID( PULONG pulMsgID
);
123 ULONG _System
RwsGetRcString( ULONG rc
, ULONG cbBuf
, char * pszBuf
);
124 ULONG _System
RwsGetTimeout( PULONG pulSecs
, PULONG pulUser
);
125 ULONG _System
RwsSetTimeout( ULONG ulSecs
);
128 /****************************************************************************/
130 // == Ordinals for functions exported by RWSCLIxx ==
132 #define ORD_RWSCLIENTINIT 2
133 #define ORD_RWSCALL 3
134 #define ORD_RWSCALLINDIRECT 4
135 #define ORD_RWSCALLASYNC 5
136 #define ORD_RWSCALLINDIRECTASYNC 6
137 #define ORD_RWSBUILD 7
138 #define ORD_RWSBUILDINDIRECT 8
139 #define ORD_RWSDISPATCH 9
140 #define ORD_RWSDISPATCHASYNC 10
141 #define ORD_RWSFREEMEM 11
142 #define ORD_RWSGETRESULT 12
143 #define ORD_RWSGETARGPTR 13
144 #define ORD_RWSGETSERVERMSGID 14
145 #define ORD_RWSGETRCSTRING 15
146 #define ORD_RWSGETTIMEOUT 16
147 #define ORD_RWSSETTIMEOUT 17
148 #define ORD_RWSCLIENTTERMINATE 18
149 #define ORD_RWSQUERYVERSION 19
150 #define ORD_RWSDISPATCHSTATUS 20
151 #define ORD_RWSCANCELDISPATCH 21
152 #define ORD_RWSNOTIFY 22
154 /****************************************************************************/
156 // == RwsCommand values ==
158 #define RWSCMD_POPUPMENU 1
159 #define RWSCMD_OPEN 2
160 #define RWSCMD_LOCATE 3
161 #define RWSCMD_LISTOBJECTS 4
162 #define RWSCMD_OPENUSING 5
163 #define RWSCMD_DELETE 6
165 #define RWSCMD_FIRST 1
166 #define RWSCMD_LAST 6
168 // == Flags used by specific commands ==
170 #define LISTOBJ_STANDARD 0x00000000 // abstract & transient objects
171 #define LISTOBJ_FILESHADOWS 0x00000001 // handles of shadowed files
172 #define LISTOBJ_ALL 0x00000002 // all objects - NOT recommended
173 #define LISTOBJ_MASK 0x00000003
174 #define LISTOBJ_OVERFLOW 0x80000000 // buffer overflow
176 // == WM_CONTROL Notifications used with RwsNotify() ==
178 // WM_CONTROL msgs will be posted to hNotify in this format:
179 // mp1 = MPFROM2SHORT( idNotify, RWSN_*)
180 // mp2 - depends on RWSN_ code:
181 // RWSN_ENTER mp2 = 0
182 // RWSN_EXIT mp2 = rc returned by RwsDispatch()
183 // RWSN_BLOCKED mp2 = 0
184 // RWSN_CANCEL mp2 = (RwsDispatch will now exit) ? TRUE : FALSE
188 #define RWSN_BLOCKED 3
189 #define RWSN_CANCEL 4
191 /****************************************************************************/
192 /* Macros & #defines */
193 /****************************************************************************/
195 // == Name & Version stuff ==
197 #define RWSVERSION "0.80" // current version for text
198 #define RWSVERSIONNBR "08" // current version for files
200 // RWSFULLVERSION for RWS v0.80 GA, oo v1.1, FPos v0.80, & Iconomize v0.80
202 #define RWSFULLVERSION 0x08000100 // fussy version
204 #define RWSSRVSTEM "RWSSRV" // server name stem
205 #define RWSCLISTEM "RWSCLI" // client name stem
206 #define RWSCLASSSTEM "RWS" // WPS class name stem
208 #define RWSSRVNAME RWSSRVSTEM RWSVERSIONNBR // server name
209 #define RWSCLINAME RWSCLISTEM RWSVERSIONNBR // client name
210 #define RWSCLASSNAME RWSCLASSSTEM RWSVERSIONNBR // class name
212 #define RWSSRVMOD RWSSRVNAME // server module name
213 #define RWSCLIMOD RWSCLINAME // client module name
214 #define RWSSRVDLL RWSSRVMOD ".DLL" // server dll name
215 #define RWSCLIDLL RWSCLIMOD ".DLL" // client dll name
218 /****************************************************************************/
220 // == Address macros ==
222 // use these to calculate the address of a structure or buffer
223 // which immediately follows the referenced structure
225 // takes a ptr to RWSHDR, returns a ptr to the RWSDSC for the procedure
226 #define CALCPROCPTR(p) ((PRWSDSC)(PVOID)(&((PRWSHDR)p)[1]))
228 // takes a ptr to RWSHDR, returns a ptr to the RWSDSC for the return value
229 #define CALCRTNPTR(p) (CALCPROCPTR(p)->pnext)
231 // takes a ptr to RWSDSC, returns a ptr to the give buffer which follows it
232 #define CALCGIVEPTR(p) ((PBYTE)(PVOID)(&((PRWSDSC)p)[1]))
234 // takes a ptr to RWSBLD, returns a ptr to the first RWSARG following it
235 #define CALCARGPTR(p) ((PRWSARG)(PVOID)(&((PRWSBLD)p)[1]))
238 /****************************************************************************/
240 // == Error Handler macros ==
242 // error macros that make it easy to break out of a function bracketed by
243 // a do{...}while(FALSE) loop - they assume 'rc' has already been defined
245 // used to set an error code
246 #define ERRNBR(x) {rc = (x); break;}
248 // used to evaluate the error code returned by a function
249 #define ERRRTN(x) {rc = (x); if (rc) break;}
252 /****************************************************************************/
256 #define RWSMAXARGS 16 // this only applies to methods & functions
257 #define RWSSTRINGSIZE CCHMAXPATH // the default string buffer size
258 #define RWSMEMSIZE 0x10000 // the amount of gettable shared
259 // memory each client allocates
261 // arranges character sequences so they're recognizable
262 // when viewed as a DWORD (e.g. 'INIT' becomes 0x494e4954)
263 #define READABLEULONG(a,b,c,d) ((ULONG)((((ULONG)(a))<<24) | \
264 (((ULONG)(b))<<16) | \
265 (((ULONG)(c))<<8) | \
269 /****************************************************************************/
270 /* Type Descriptor Primitives */
271 /****************************************************************************/
273 // These describe the data the client will GIVE to the server and what it
274 // will GET back from the server. GIVEP/GETP identify Primary categories;
275 // GIVEQ/GETQ identify Qualifiers, i.e. subcategories and/or special handling.
277 // Client apps have little reason to use these - they should use the RWS*_
278 // macros listed in the "RWSDSC Type Descriptors" section below.
280 /****************************************************************************/
282 // == Argument/Return Descriptors ==
285 #define GIVE_ASIS 0 // dword
286 #define GIVE_VOID 1 // nothing (rtn only)
287 #define GIVE_PSTR 2 // ptr to string
288 #define GIVE_PBUF 3 // ptr to fixed lth buf
289 #define GIVE_PPVOID 4 // ptr to pvoid or ulong
290 #define GIVE_PULONG GIVE_PPVOID // a synonym for those who need one
291 #define GIVE_CONV 5 // none - value derived by conversion
292 #define GIVE_COPYSTR 6 // none - value derived by strcpy into alloc
293 #define GIVE_COPYBUF 7 // none - value derived by memcpy into alloc
296 #define GET_ASIS 0 // no action needed
297 #define GET_VOID 1 // nothing (rtn only)
298 #define GET_CONV 2 // value converted into buf
299 #define GET_PPSTR 3 // strcpy *value into buf
300 #define GET_PPBUF 4 // memcpy *value into buf
301 #define GET_PSTR 5 // strcpy value into buf (rtn only)
302 #define GET_PBUF 6 // memcpy value into buf (rtn only)
303 #define GET_COPYICON 7 // copy icon handle to client process (rtn only)
304 #define GET_COPYMINI 8 // copy mini-icon to client process (rtn only)
306 // GIVEQ()/GETQ() values
307 // used only by GIVE_CONV & GET_CONV
308 #define CONV_OBJPATH 1 // object from/to f/q name (or from obj ID)
309 #define CONV_OBJFQTITLE 2 // object from/to f/q title (or from obj ID)
310 #define CONV_OBJHNDL 3 // object from/to hobj
311 #define CONV_OBJHWND 4 // object from/to hwnd
312 #define CONV_OBJPREC 5 // object from/to pminirecordcore
313 #define CONV_OBJNAME 6 // object to name
314 #define CONV_OBJTITLE 7 // object to title
315 #define CONV_OBJID 8 // object to object ID
316 #define CONV_OBJFLDR 9 // object to folder containing object
317 #define CONV_SHDFQTITLE 10 // original obj from shadow f/q title or obj ID
318 #define CONV_SHDHNDL 11 // original obj from shadow hobj
319 #define CONV_SHDPREC 12 // original obj from shadow pminirecordcore
320 #define CONV_CLSNAME 13 // class from/to classname
321 #define CONV_CLSOBJ 14 // class from object
322 #define CONV_CLSOBJPATH 15 // class from object's f/q name or obj ID
323 #define CONV_CLSOBJFQTITLE 16 // class from object's f/q title or obj ID
324 #define CONV_CLSOBJHNDL 17 // class from object's hobj
325 #define CONV_CLSOBJHWND 18 // class from object's hwnd
326 #define CONV_CLSOBJPREC 19 // class from object's pminirecordcore
327 #define CONV_CLSSHDFQTITLE 20 // class from object from shadow f/q title
328 #define CONV_CLSSHDHNDL 21 // class from object from shadow hobj
329 #define CONV_CLSSHDPREC 22 // class from object from shadow pminirecordcore
330 #define CONV_SOMID 23 // somid to/from string
331 #define CONV_OBJICON 24 // object to icon
332 #define CONV_OBJMINI 25 // object to mini-icon
333 #define CONV_CLSICON 26 // class to icon
334 #define CONV_CLSMINI 27 // class to mini-icon
335 #define CONV_SOMCLSMGR 28 // SOM Class Manager object (input ignored)
336 #define CONV_PREVIOUS 29 // reuse previous arg's object (RWSC_* only)
339 // used only by GET_(P)PSTR & GET_(P)PBUF
340 #define COPY_CNTRTN 40 // nbr of bytes to copy is in return
341 #define COPY_CNTARG1 41 // nbr of bytes to copy is in Arg1
342 #define COPY_CNTARG2 42 // nbr of bytes to copy is in Arg2
343 #define COPY_CNTARG3 43 // nbr of bytes to copy is in Arg3
344 #define COPY_CNTARG4 44 // nbr of bytes to copy is in Arg4
345 #define COPY_CNTARG5 45 // nbr of bytes to copy is in Arg5
346 #define COPY_CNTARG6 46 // nbr of bytes to copy is in Arg6
347 #define COPY_CNTARG7 47 // nbr of bytes to copy is in Arg7
348 #define COPY_CNTARG8 48 // nbr of bytes to copy is in Arg8
349 #define COPY_CNTARG9 49 // nbr of bytes to copy is in Arg9
350 #define COPY_CNTULONG 50 // copy cnt is in ulong at start of buf
351 #define COPY_CNTUSHORT 51 // copy cnt is in ushort at start of buf
352 #define COPY_CNTULZERO 52 // copy array of ulongs, last one is zero
354 #define COPY_MASK 63 // mask off memory bits
355 #define COPY_CNTFIRST COPY_CNTRTN
356 #define COPY_CNTLAST COPY_CNTULZERO
358 // GIVEQ()/GETQ() flags
359 // used by GIVE_COPYSTR & GIVE_COPYBUF to alloc object/SOM memory
360 // used by GET_(P)PSTR & GET_(P)PBUF to free object/SOM memory
361 // also used to free somId's used as input args
362 #define COPY_OBJMEM 64 // alloc/free object memory
363 #define FREE_OBJMEM COPY_OBJMEM
364 #define COPY_SOMMEM 128 // alloc/free som memory
365 #define FREE_SOMMEM COPY_SOMMEM
366 #define COPY_MEMMASK 192 // mask off copy bits
368 // note: since CONV_* & COPY_* are used in different contexts, their
369 // values could overlap; for now they don't as a safety precaution
372 /****************************************************************************/
374 // == Procedure Descriptors ==
377 #define PROC_MNAM 1 // method by pointer to name
378 #define PROC_MPFN 2 // method by pointer to function
379 #define PROC_KORD 3 // SOM kernel function by ordinal
380 #define PROC_KPFN 4 // SOM kernel function by pointer to function
381 #define PROC_CONV 5 // data conversion only
382 #define PROC_CMD 6 // built-in command
385 #define PRTN_BOOL 0 // non-zero return indicates success
386 #define PRTN_ZERO 1 // zero return indicates success
387 #define PRTN_IGNORE 2 // return doesn't indicate outcome
388 #define PRTN_LASTGIVEQ PRTN_IGNORE // applies to methods & functions
389 #define PRTN_NA 3 // not applicable (PROC_CONV & PROC_CMD)
392 // == RWSDSC Flag values ==
394 #define DSC_PROC 1 // procedure
395 #define DSC_RTN 2 // return
396 #define DSC_ARG 3 // arg
397 #define DSC_CONV 4 // convert
400 /****************************************************************************/
402 // == Structure/Macros to access the Type Descriptors ==
404 typedef struct _RWSTYPE
412 #define TORWSTYPE(a,b,c,d) ((ULONG)(((ULONG)a) | (((ULONG)b)<<8) | \
413 (((ULONG)c)<<16) | (((ULONG)d)<<24)))
415 #define GIVEP(arg) (((RWSTYPE*)(PVOID)(&arg))->givep)
416 #define GIVEQ(arg) (((RWSTYPE*)(PVOID)(&arg))->giveq)
417 #define GETP(arg) (((RWSTYPE*)(PVOID)(&arg))->getp)
418 #define GETQ(arg) (((RWSTYPE*)(PVOID)(&arg))->getq)
421 /****************************************************************************/
422 /* RWSDSC Type Descriptors */
423 /****************************************************************************/
425 // Client apps should use the following macros rather than the
426 // Type Descriptor Primitives listed above.
428 /****************************************************************************/
432 #define RWSP_MNAM TORWSTYPE( PROC_MNAM, PRTN_BOOL, 0, 0)
433 #define RWSP_MNAMZ TORWSTYPE( PROC_MNAM, PRTN_ZERO, 0, 0)
434 #define RWSP_MNAMI TORWSTYPE( PROC_MNAM, PRTN_IGNORE, 0, 0)
435 #define RWSP_MPFN TORWSTYPE( PROC_MPFN, PRTN_BOOL, 0, 0)
436 #define RWSP_MPFNZ TORWSTYPE( PROC_MPFN, PRTN_ZERO, 0, 0)
437 #define RWSP_MPFNI TORWSTYPE( PROC_MPFN, PRTN_IGNORE, 0, 0)
438 #define RWSP_KORD TORWSTYPE( PROC_KORD, PRTN_BOOL, 0, 0)
439 #define RWSP_KORDZ TORWSTYPE( PROC_KORD, PRTN_ZERO, 0, 0)
440 #define RWSP_KORDI TORWSTYPE( PROC_KORD, PRTN_IGNORE, 0, 0)
441 #define RWSP_KPFN TORWSTYPE( PROC_KPFN, PRTN_BOOL, 0, 0)
442 #define RWSP_KPFNZ TORWSTYPE( PROC_KPFN, PRTN_ZERO, 0, 0)
443 #define RWSP_KPFNI TORWSTYPE( PROC_KPFN, PRTN_IGNORE, 0, 0)
444 #define RWSP_CONV TORWSTYPE( PROC_CONV, PRTN_NA, 0, 0)
445 #define RWSP_CMD TORWSTYPE( PROC_CMD, PRTN_NA, 0, 0)
448 /****************************************************************************/
450 // == In-only Arguments ==
452 #define RWSI_ASIS TORWSTYPE( GIVE_ASIS, 0, GET_ASIS, 0)
453 #define RWSI_PSTR TORWSTYPE( GIVE_PSTR, 0, GET_ASIS, 0)
454 #define RWSI_PBUF TORWSTYPE( GIVE_PBUF, 0, GET_ASIS, 0)
455 #define RWSI_PPVOID TORWSTYPE( GIVE_PPVOID, 0, GET_ASIS, 0)
456 #define RWSI_PULONG TORWSTYPE( GIVE_PPVOID, 0, GET_ASIS, 0)
457 #define RWSI_OPATH TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_ASIS, 0)
458 #define RWSI_OFTITLE TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_ASIS, 0)
459 #define RWSI_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_ASIS, 0)
460 #define RWSI_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_ASIS, 0)
461 #define RWSI_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_ASIS, 0)
462 #define RWSI_SFTITLE TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_ASIS, 0)
463 #define RWSI_SHNDL TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_ASIS, 0)
464 #define RWSI_SPREC TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_ASIS, 0)
465 #define RWSI_CNAME TORWSTYPE( GIVE_CONV, CONV_CLSNAME, GET_ASIS, 0)
466 #define RWSI_COBJ TORWSTYPE( GIVE_CONV, CONV_CLSOBJ, GET_ASIS, 0)
467 #define RWSI_COPATH TORWSTYPE( GIVE_CONV, CONV_CLSOBJPATH, GET_ASIS, 0)
468 #define RWSI_COFTITLE TORWSTYPE( GIVE_CONV, CONV_CLSOBJFQTITLE,GET_ASIS, 0)
469 #define RWSI_COHNDL TORWSTYPE( GIVE_CONV, CONV_CLSOBJHNDL, GET_ASIS, 0)
470 #define RWSI_COHWND TORWSTYPE( GIVE_CONV, CONV_CLSOBJHWND, GET_ASIS, 0)
471 #define RWSI_COPREC TORWSTYPE( GIVE_CONV, CONV_CLSOBJPREC, GET_ASIS, 0)
472 #define RWSI_CSFTITLE TORWSTYPE( GIVE_CONV, CONV_CLSSHDFQTITLE,GET_ASIS, 0)
473 #define RWSI_CSHNDL TORWSTYPE( GIVE_CONV, CONV_CLSSHDHNDL, GET_ASIS, 0)
474 #define RWSI_CSPREC TORWSTYPE( GIVE_CONV, CONV_CLSSHDPREC, GET_ASIS, 0)
475 #define RWSI_SOMID TORWSTYPE( GIVE_CONV, CONV_SOMID, GET_ASIS, 0)
476 #define RWSI_SOMIDFREE TORWSTYPE( GIVE_CONV, CONV_SOMID, GET_ASIS, FREE_SOMMEM)
477 #define RWSI_SOMCLSMGR TORWSTYPE( GIVE_CONV, CONV_SOMCLSMGR, GET_ASIS, 0)
478 #define RWSI_POBJSTR TORWSTYPE( GIVE_COPYSTR, COPY_OBJMEM, GET_ASIS, 0)
479 #define RWSI_PSOMSTR TORWSTYPE( GIVE_COPYSTR, COPY_SOMMEM, GET_ASIS, 0)
480 #define RWSI_POBJBUF TORWSTYPE( GIVE_COPYBUF, COPY_OBJMEM, GET_ASIS, 0)
481 #define RWSI_PSOMBUF TORWSTYPE( GIVE_COPYBUF, COPY_SOMMEM, GET_ASIS, 0)
484 /****************************************************************************/
486 // == In/Out Arguments ==
488 #define RWSO_PPSTR TORWSTYPE( GIVE_PPVOID, 0, GET_PPSTR, 0)
489 #define RWSO_PPBUF TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, 0)
490 #define RWSO_PPBUFCNTRTN TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTRTN )
491 #define RWSO_PPBUFCNTARG1 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG1)
492 #define RWSO_PPBUFCNTARG2 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG2)
493 #define RWSO_PPBUFCNTARG3 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG3)
494 #define RWSO_PPBUFCNTARG4 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG4)
495 #define RWSO_PPBUFCNTARG5 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG5)
496 #define RWSO_PPBUFCNTARG6 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG6)
497 #define RWSO_PPBUFCNTARG7 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG7)
498 #define RWSO_PPBUFCNTARG8 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG8)
499 #define RWSO_PPBUFCNTARG9 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG9)
500 #define RWSO_PPBUFCNTULONG TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTULONG)
501 #define RWSO_PPBUFCNTUSHORT TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTUSHORT)
502 #define RWSO_PPBUFCNTULZERO TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTULZERO)
503 #define RWSO_PPSTROBJFREE TORWSTYPE( GIVE_PPVOID, 0, GET_PPSTR, FREE_OBJMEM)
504 #define RWSO_PPSTRSOMFREE TORWSTYPE( GIVE_PPVOID, 0, GET_PPSTR, FREE_SOMMEM)
505 #define RWSO_PPBUFOBJFREE TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, FREE_OBJMEM)
506 #define RWSO_PPBUFSOMFREE TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, FREE_SOMMEM)
507 #define RWSO_OPATH TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJPATH)
508 #define RWSO_OFTITLE TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJFQTITLE)
509 #define RWSO_ONAME TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJNAME)
510 #define RWSO_OTITLE TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJTITLE)
511 #define RWSO_OHNDL TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJHNDL)
512 #define RWSO_OHWND TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJHWND)
513 #define RWSO_OPREC TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJPREC)
514 #define RWSO_OID TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJID)
515 #define RWSO_OFLDR TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJFLDR)
516 #define RWSO_OICON TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJICON)
517 #define RWSO_OMINI TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJMINI)
518 #define RWSO_CICON TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_CLSICON)
519 #define RWSO_CMINI TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_CLSMINI)
520 #define RWSO_CNAME TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_CLSNAME)
521 #define RWSO_SOMID TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_SOMID)
522 #define RWSO_SOMIDFREE TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_SOMID+FREE_SOMMEM)
525 /****************************************************************************/
529 #define RWSR_ASIS TORWSTYPE( GIVE_VOID, 0, GET_ASIS, 0)
530 #define RWSR_VOID TORWSTYPE( GIVE_VOID, 0, GET_VOID, 0)
531 #define RWSR_OPATH TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJPATH)
532 #define RWSR_OFTITLE TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJFQTITLE)
533 #define RWSR_ONAME TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJNAME)
534 #define RWSR_OTITLE TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJTITLE)
535 #define RWSR_OHNDL TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJHNDL)
536 #define RWSR_OHWND TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJHWND)
537 #define RWSR_OPREC TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJPREC)
538 #define RWSR_OID TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJID)
539 #define RWSR_OFLDR TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJFLDR)
540 #define RWSR_OICON TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJICON)
541 #define RWSR_OMINI TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJMINI)
542 #define RWSR_CICON TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_CLSICON)
543 #define RWSR_CMINI TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_CLSMINI)
544 #define RWSR_CNAME TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_CLSNAME)
545 #define RWSR_SOMID TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_SOMID)
546 #define RWSR_SOMIDFREE TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_SOMID+FREE_SOMMEM)
547 #define RWSR_COPYICON TORWSTYPE( GIVE_VOID, 0, GET_COPYICON, 0)
548 #define RWSR_COPYMINI TORWSTYPE( GIVE_VOID, 0, GET_COPYMINI, 0)
549 #define RWSR_PSTR TORWSTYPE( GIVE_VOID, 0, GET_PSTR, 0)
550 #define RWSR_PBUF TORWSTYPE( GIVE_VOID, 0, GET_PBUF, 0)
551 #define RWSR_PBUFCNTARG1 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG1)
552 #define RWSR_PBUFCNTARG2 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG2)
553 #define RWSR_PBUFCNTARG3 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG3)
554 #define RWSR_PBUFCNTARG4 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG4)
555 #define RWSR_PBUFCNTARG5 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG5)
556 #define RWSR_PBUFCNTARG6 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG6)
557 #define RWSR_PBUFCNTARG7 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG7)
558 #define RWSR_PBUFCNTARG8 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG8)
559 #define RWSR_PBUFCNTARG9 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG9)
560 #define RWSR_PBUFCNTULONG TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTULONG)
561 #define RWSR_PBUFCNTUSHORT TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTUSHORT)
562 #define RWSR_PBUFCNTULZERO TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTULZERO)
563 #define RWSR_PPSTR TORWSTYPE( GIVE_VOID, 0, GET_PPSTR, 0)
564 #define RWSR_PPBUF TORWSTYPE( GIVE_VOID, 0, GET_PPBUF, 0)
565 #define RWSR_PSTROBJFREE TORWSTYPE( GIVE_VOID, 0, GET_PSTR, FREE_OBJMEM)
566 #define RWSR_PBUFOBJFREE TORWSTYPE( GIVE_VOID, 0, GET_PBUF, FREE_OBJMEM)
567 #define RWSR_PPSTROBJFREE TORWSTYPE( GIVE_VOID, 0, GET_PPSTR, FREE_OBJMEM)
568 #define RWSR_PPBUFOBJFREE TORWSTYPE( GIVE_VOID, 0, GET_PPBUF, FREE_OBJMEM)
569 #define RWSR_PSTRSOMFREE TORWSTYPE( GIVE_VOID, 0, GET_PSTR, FREE_SOMMEM)
570 #define RWSR_PBUFSOMFREE TORWSTYPE( GIVE_VOID, 0, GET_PBUF, FREE_SOMMEM)
571 #define RWSR_PPSTRSOMFREE TORWSTYPE( GIVE_VOID, 0, GET_PPSTR, FREE_SOMMEM)
572 #define RWSR_PPBUFSOMFREE TORWSTYPE( GIVE_VOID, 0, GET_PPBUF, FREE_SOMMEM)
575 /****************************************************************************/
577 // == Data Conversion ==
579 #define RWSC_OPATH_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_ASIS, 0)
580 #define RWSC_OPATH_OTITLE TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJTITLE)
581 #define RWSC_OPATH_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJHNDL)
582 #define RWSC_OPATH_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJHWND)
583 #define RWSC_OPATH_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJPREC)
584 #define RWSC_OPATH_OID TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJID)
585 #define RWSC_OPATH_OICON TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJICON)
586 #define RWSC_OPATH_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJMINI)
587 #define RWSC_OPATH_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_CLSOBJ)
588 #define RWSC_OPATH_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_CLSNAME)
589 #define RWSC_OPATH_CICON TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_CLSICON)
590 #define RWSC_OPATH_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_CLSMINI)
592 #define RWSC_OFTITLE_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_ASIS, 0)
593 #define RWSC_OFTITLE_ONAME TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJNAME)
594 #define RWSC_OFTITLE_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJHNDL)
595 #define RWSC_OFTITLE_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJHWND)
596 #define RWSC_OFTITLE_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJPREC)
597 #define RWSC_OFTITLE_OID TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJID)
598 #define RWSC_OFTITLE_OICON TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJICON)
599 #define RWSC_OFTITLE_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJMINI)
600 #define RWSC_OFTITLE_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_CLSOBJ)
601 #define RWSC_OFTITLE_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_CLSNAME)
602 #define RWSC_OFTITLE_CICON TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_CLSICON)
603 #define RWSC_OFTITLE_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_CLSMINI)
605 #define RWSC_OHNDL_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_ASIS, 0)
606 #define RWSC_OHNDL_OPATH TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJPATH)
607 #define RWSC_OHNDL_OFTITLE TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJFQTITLE)
608 #define RWSC_OHNDL_ONAME TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJNAME)
609 #define RWSC_OHNDL_OTITLE TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJTITLE)
610 #define RWSC_OHNDL_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJHWND)
611 #define RWSC_OHNDL_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJPREC)
612 #define RWSC_OHNDL_OID TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJID)
613 #define RWSC_OHNDL_OFLDR TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJFLDR)
614 #define RWSC_OHNDL_OICON TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJICON)
615 #define RWSC_OHNDL_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJMINI)
616 #define RWSC_OHNDL_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_CLSOBJ)
617 #define RWSC_OHNDL_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_CLSNAME)
618 #define RWSC_OHNDL_CICON TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_CLSICON)
619 #define RWSC_OHNDL_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_CLSMINI)
621 #define RWSC_OHWND_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_ASIS, 0)
622 #define RWSC_OHWND_OPATH TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJPATH)
623 #define RWSC_OHWND_OFTITLE TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJFQTITLE)
624 #define RWSC_OHWND_ONAME TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJNAME)
625 #define RWSC_OHWND_OTITLE TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJTITLE)
626 #define RWSC_OHWND_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJHNDL)
627 #define RWSC_OHWND_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJPREC)
628 #define RWSC_OHWND_OID TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJID)
629 #define RWSC_OHWND_OFLDR TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJFLDR)
630 #define RWSC_OHWND_OICON TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJICON)
631 #define RWSC_OHWND_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJMINI)
632 #define RWSC_OHWND_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_CLSOBJ)
633 #define RWSC_OHWND_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_CLSNAME)
634 #define RWSC_OHWND_CICON TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_CLSICON)
635 #define RWSC_OHWND_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_CLSMINI)
637 #define RWSC_OPREC_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_ASIS, 0)
638 #define RWSC_OPREC_OPATH TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJPATH)
639 #define RWSC_OPREC_OFTITLE TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJFQTITLE)
640 #define RWSC_OPREC_ONAME TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJNAME)
641 #define RWSC_OPREC_OTITLE TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJTITLE)
642 #define RWSC_OPREC_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJHNDL)
643 #define RWSC_OPREC_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJHWND)
644 #define RWSC_OPREC_OID TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJID)
645 #define RWSC_OPREC_OFLDR TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJFLDR)
646 #define RWSC_OPREC_OICON TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJICON)
647 #define RWSC_OPREC_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJMINI)
648 #define RWSC_OPREC_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_CLSOBJ)
649 #define RWSC_OPREC_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_CLSNAME)
650 #define RWSC_OPREC_CICON TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_CLSICON)
651 #define RWSC_OPREC_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_CLSMINI)
653 #define RWSC_SFTITLE_OBJ TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_ASIS, 0)
654 #define RWSC_SFTITLE_OPATH TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJPATH)
655 #define RWSC_SFTITLE_OFTITLE TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJFQTITLE)
656 #define RWSC_SFTITLE_ONAME TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJNAME)
657 #define RWSC_SFTITLE_OHNDL TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJHNDL)
658 #define RWSC_SFTITLE_OHWND TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJHWND)
659 #define RWSC_SFTITLE_OPREC TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJPREC)
660 #define RWSC_SFTITLE_OID TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJID)
661 #define RWSC_SFTITLE_OFLDR TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJFLDR)
662 #define RWSC_SFTITLE_OICON TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJICON)
663 #define RWSC_SFTITLE_OMINI TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJMINI)
664 #define RWSC_SFTITLE_CLASS TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_CLSOBJ)
665 #define RWSC_SFTITLE_CNAME TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_CLSNAME)
666 #define RWSC_SFTITLE_CICON TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_CLSICON)
667 #define RWSC_SFTITLE_CMINI TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_CLSMINI)
669 #define RWSC_SHNDL_OBJ TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_ASIS, 0)
670 #define RWSC_SHNDL_OPATH TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJPATH)
671 #define RWSC_SHNDL_OFTITLE TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJFQTITLE)
672 #define RWSC_SHNDL_ONAME TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJNAME)
673 #define RWSC_SHNDL_OTITLE TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJTITLE)
674 #define RWSC_SHNDL_OHNDL TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJHNDL)
675 #define RWSC_SHNDL_OHWND TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJHWND)
676 #define RWSC_SHNDL_OPREC TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJPREC)
677 #define RWSC_SHNDL_OID TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJID)
678 #define RWSC_SHNDL_OFLDR TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJFLDR)
679 #define RWSC_SHNDL_OICON TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJICON)
680 #define RWSC_SHNDL_OMINI TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJMINI)
681 #define RWSC_SHNDL_CLASS TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_CLSOBJ)
682 #define RWSC_SHNDL_CNAME TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_CLSNAME)
683 #define RWSC_SHNDL_CICON TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_CLSICON)
684 #define RWSC_SHNDL_CMINI TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_CLSMINI)
686 #define RWSC_SPREC_OBJ TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_ASIS, 0)
687 #define RWSC_SPREC_OPATH TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJPATH)
688 #define RWSC_SPREC_OFTITLE TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJFQTITLE)
689 #define RWSC_SPREC_ONAME TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJNAME)
690 #define RWSC_SPREC_OTITLE TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJTITLE)
691 #define RWSC_SPREC_OHNDL TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJHNDL)
692 #define RWSC_SPREC_OHWND TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJHWND)
693 #define RWSC_SPREC_OPREC TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJPREC)
694 #define RWSC_SPREC_OID TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJID)
695 #define RWSC_SPREC_OFLDR TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJFLDR)
696 #define RWSC_SPREC_OICON TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJICON)
697 #define RWSC_SPREC_OMINI TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJMINI)
698 #define RWSC_SPREC_CLASS TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_CLSOBJ)
699 #define RWSC_SPREC_CNAME TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_CLSNAME)
700 #define RWSC_SPREC_CICON TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_CLSICON)
701 #define RWSC_SPREC_CMINI TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_CLSMINI)
703 #define RWSC_PREV_OPATH TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJPATH)
704 #define RWSC_PREV_OFTITLE TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJFQTITLE)
705 #define RWSC_PREV_ONAME TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJNAME)
706 #define RWSC_PREV_OTITLE TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJTITLE)
707 #define RWSC_PREV_OHNDL TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJHNDL)
708 #define RWSC_PREV_OHWND TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJHWND)
709 #define RWSC_PREV_OPREC TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJPREC)
710 #define RWSC_PREV_OID TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJID)
711 #define RWSC_PREV_OFLDR TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJFLDR)
712 #define RWSC_PREV_OICON TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJICON)
713 #define RWSC_PREV_OMINI TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJMINI)
714 #define RWSC_PREV_CLASS TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_CLSOBJ)
715 #define RWSC_PREV_CNAME TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_CLSNAME)
716 #define RWSC_PREV_CICON TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_CLSICON)
717 #define RWSC_PREV_CMINI TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_CLSMINI)
719 #define RWSC_OBJ_OPATH TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJPATH)
720 #define RWSC_OBJ_OFTITLE TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJFQTITLE)
721 #define RWSC_OBJ_ONAME TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJNAME)
722 #define RWSC_OBJ_OTITLE TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJTITLE)
723 #define RWSC_OBJ_OHNDL TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJHNDL)
724 #define RWSC_OBJ_OHWND TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJHWND)
725 #define RWSC_OBJ_OPREC TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJPREC)
726 #define RWSC_OBJ_OID TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJID)
727 #define RWSC_OBJ_OFLDR TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJFLDR)
728 #define RWSC_OBJ_OICON TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJICON)
729 #define RWSC_OBJ_OMINI TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJMINI)
730 #define RWSC_OBJ_CLASS TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSOBJ)
731 #define RWSC_OBJ_CNAME TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSNAME)
732 #define RWSC_OBJ_CICON TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSICON)
733 #define RWSC_OBJ_CMINI TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSMINI)
735 #define RWSC_CLASS_CNAME TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSNAME)
736 #define RWSC_CLASS_CICON TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSICON)
737 #define RWSC_CLASS_CMINI TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSMINI)
738 #define RWSC_CNAME_CLASS TORWSTYPE( GIVE_CONV, CONV_CLSNAME, GET_ASIS, 0)
739 #define RWSC_CNAME_CICON TORWSTYPE( GIVE_CONV, CONV_CLSNAME, GET_CONV, CONV_CLSICON)
740 #define RWSC_CNAME_CMINI TORWSTYPE( GIVE_CONV, CONV_CLSNAME, GET_CONV, CONV_CLSMINI)
742 #define RWSC_NULL_SOMCLSMGR TORWSTYPE( GIVE_CONV, CONV_SOMCLSMGR, GET_ASIS, 0)
744 #define RWSC_ADDR_PSTR TORWSTYPE( GIVE_ASIS, 0, GET_PSTR, 0)
745 #define RWSC_ADDR_PBUF TORWSTYPE( GIVE_ASIS, 0, GET_PBUF, 0)
747 /****************************************************************************/
753 #endif // RWS_H_INCLUDED
755 /****************************************************************************/