зеркало из https://github.com/mozilla/pjs.git
789 строки
43 KiB
C
789 строки
43 KiB
C
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is Remote Workplace Server - Project headers.
|
|
*
|
|
* The Initial Developer of the Original Code is Richard L. Walsh.
|
|
*
|
|
* Portions created by the Initial Developer are Copyright (C) 2004-2007
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
/****************************************************************************/
|
|
/* RWS - beta version 0.80 */
|
|
/****************************************************************************/
|
|
|
|
// RWS.H
|
|
// Remote Workplace Server - main header
|
|
|
|
/****************************************************************************/
|
|
|
|
#ifndef RWS_H_INCLUDED
|
|
#define RWS_H_INCLUDED
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/****************************************************************************/
|
|
/* Server Request Structures */
|
|
/****************************************************************************/
|
|
|
|
// These structures are created & initialized in shared memory by
|
|
// RwsClient and are passed to RwsServer. On return, the client app
|
|
// can access any data they contain.
|
|
|
|
// Every request to RwsServer starts with one of these
|
|
typedef struct _RWSHDR
|
|
{
|
|
ULONG Size; // total size of the request block
|
|
USHORT MsgId; // used by RwsDispatch
|
|
USHORT Flags; // used by RwsDispatch & RwsFreeMem
|
|
struct _RWSHDR * PrevHdr; // not used
|
|
USHORT Rc; // return code from server
|
|
USHORT Cnt; // argument count
|
|
ULONG Id; // for use by application
|
|
} RWSHDR;
|
|
typedef RWSHDR* PRWSHDR;
|
|
|
|
// Every request to RwsServer has at least two of these in a linked list.
|
|
// The first immediately follows RWSHDR and describes the type of call;
|
|
// the second describes the return value. Additional structs describe
|
|
// each of the arguments; the last in the chain has a zero in pnext.
|
|
// Note: in case you were wondering, "DSC" is short for descriptor
|
|
typedef struct _RWSDSC
|
|
{
|
|
struct _RWSDSC *pnext;
|
|
ULONG value; // data actually passed to or returned by procedure
|
|
ULONG type; // describes how RWS should handle this argument
|
|
USHORT flags; // currently, identifies this as an arg/rtn/proc
|
|
USHORT rc; // error code generated while handling this item
|
|
USHORT cbgive; // size of the give (input) buffer
|
|
USHORT cbget; // size of the get (output) buffer
|
|
VOID * pget; // pointer to the get buffer
|
|
} RWSDSC; // note: the give buffer immediately follows
|
|
typedef RWSDSC* PRWSDSC; // this structure (i.e. it's at &RWSDSC[1])
|
|
|
|
|
|
/****************************************************************************/
|
|
/* Client Request Structures */
|
|
/****************************************************************************/
|
|
|
|
// These structures describe the layout of the stack when an app calls
|
|
// RwsCall or RwsBuild. They can be used with RwsCallIndirect and
|
|
// RwsBuildIndirect to avoid pushing a large number of arguments onto
|
|
// the stack
|
|
|
|
// header structure - required
|
|
typedef struct _RWSBLD
|
|
{
|
|
PRWSHDR* ppHdr;
|
|
ULONG callType;
|
|
ULONG callValue;
|
|
ULONG rtnType;
|
|
ULONG rtnSize;
|
|
ULONG argCnt;
|
|
} RWSBLD;
|
|
typedef RWSBLD* PRWSBLD;
|
|
|
|
// argument structures - as needed
|
|
typedef struct _RWSARG
|
|
{
|
|
ULONG type;
|
|
ULONG size;
|
|
ULONG value;
|
|
} RWSARG;
|
|
typedef RWSARG* PRWSARG;
|
|
|
|
|
|
/****************************************************************************/
|
|
/* Exported Procedures used by Clients */
|
|
/****************************************************************************/
|
|
|
|
// These functions' va list is equivalent to an array of zero or more
|
|
// RWSARG structures (i.e. {ULONG type, ULONG size, ULONG value}...)
|
|
|
|
ULONG _System RwsCall( PRWSHDR* ppHdr, ULONG callType, ULONG callValue,
|
|
ULONG rtnType, ULONG rtnSize, ULONG argCnt, ...);
|
|
ULONG _System RwsCallIndirect( PRWSBLD pBld);
|
|
ULONG _System RwsCallAsync( HWND hwnd, PRWSHDR* ppHdr,
|
|
ULONG callType, ULONG callValue,
|
|
ULONG rtnType, ULONG rtnSize,
|
|
ULONG argCnt, ...);
|
|
ULONG _System RwsCallIndirectAsync( HWND hwnd, PRWSBLD pBld);
|
|
ULONG _System RwsBuild( PRWSHDR* ppHdr, ULONG callType, ULONG callValue,
|
|
ULONG rtnType, ULONG rtnSize, ULONG argCnt, ...);
|
|
ULONG _System RwsBuildIndirect( PRWSBLD pBld);
|
|
ULONG _System RwsQueryVersion( PULONG pulReserved);
|
|
ULONG _System RwsClientInit( BOOL fRegister);
|
|
ULONG _System RwsClientTerminate( void);
|
|
ULONG _System RwsDispatch( PRWSHDR pHdr);
|
|
ULONG _System RwsDispatchStatus( PBOOL pfReady);
|
|
ULONG _System RwsCancelDispatch( HWND hNotify, ULONG idNotify);
|
|
ULONG _System RwsNotify( HWND hNotify, ULONG idNotify);
|
|
ULONG _System RwsDispatchAsync( HWND hwnd, PRWSHDR pHdr);
|
|
ULONG _System RwsFreeMem( PRWSHDR pHdr);
|
|
ULONG _System RwsGetResult( PRWSHDR pHdr, ULONG ndxArg, PULONG pSize);
|
|
ULONG _System RwsGetArgPtr( PRWSHDR pHdr, ULONG ndxArg, PRWSDSC* ppArg);
|
|
ULONG _System RwsGetServerMsgID( PULONG pulMsgID);
|
|
ULONG _System RwsGetRcString( ULONG rc, ULONG cbBuf, char * pszBuf);
|
|
ULONG _System RwsGetTimeout( PULONG pulSecs, PULONG pulUser);
|
|
ULONG _System RwsSetTimeout( ULONG ulSecs);
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Ordinals for functions exported by RWSCLIxx ==
|
|
|
|
#define ORD_RWSCLIENTINIT 2
|
|
#define ORD_RWSCALL 3
|
|
#define ORD_RWSCALLINDIRECT 4
|
|
#define ORD_RWSCALLASYNC 5
|
|
#define ORD_RWSCALLINDIRECTASYNC 6
|
|
#define ORD_RWSBUILD 7
|
|
#define ORD_RWSBUILDINDIRECT 8
|
|
#define ORD_RWSDISPATCH 9
|
|
#define ORD_RWSDISPATCHASYNC 10
|
|
#define ORD_RWSFREEMEM 11
|
|
#define ORD_RWSGETRESULT 12
|
|
#define ORD_RWSGETARGPTR 13
|
|
#define ORD_RWSGETSERVERMSGID 14
|
|
#define ORD_RWSGETRCSTRING 15
|
|
#define ORD_RWSGETTIMEOUT 16
|
|
#define ORD_RWSSETTIMEOUT 17
|
|
#define ORD_RWSCLIENTTERMINATE 18
|
|
#define ORD_RWSQUERYVERSION 19
|
|
#define ORD_RWSDISPATCHSTATUS 20
|
|
#define ORD_RWSCANCELDISPATCH 21
|
|
#define ORD_RWSNOTIFY 22
|
|
|
|
/****************************************************************************/
|
|
|
|
// == RwsCommand values ==
|
|
|
|
#define RWSCMD_POPUPMENU 1
|
|
#define RWSCMD_OPEN 2
|
|
#define RWSCMD_LOCATE 3
|
|
#define RWSCMD_LISTOBJECTS 4
|
|
#define RWSCMD_OPENUSING 5
|
|
#define RWSCMD_DELETE 6
|
|
|
|
#define RWSCMD_FIRST 1
|
|
#define RWSCMD_LAST 6
|
|
|
|
// == Flags used by specific commands ==
|
|
|
|
#define LISTOBJ_STANDARD 0x00000000 // abstract & transient objects
|
|
#define LISTOBJ_FILESHADOWS 0x00000001 // handles of shadowed files
|
|
#define LISTOBJ_ALL 0x00000002 // all objects - NOT recommended
|
|
#define LISTOBJ_MASK 0x00000003
|
|
#define LISTOBJ_OVERFLOW 0x80000000 // buffer overflow
|
|
|
|
// == WM_CONTROL Notifications used with RwsNotify() ==
|
|
|
|
// WM_CONTROL msgs will be posted to hNotify in this format:
|
|
// mp1 = MPFROM2SHORT( idNotify, RWSN_*)
|
|
// mp2 - depends on RWSN_ code:
|
|
// RWSN_ENTER mp2 = 0
|
|
// RWSN_EXIT mp2 = rc returned by RwsDispatch()
|
|
// RWSN_BLOCKED mp2 = 0
|
|
// RWSN_CANCEL mp2 = (RwsDispatch will now exit) ? TRUE : FALSE
|
|
|
|
#define RWSN_ENTER 1
|
|
#define RWSN_EXIT 2
|
|
#define RWSN_BLOCKED 3
|
|
#define RWSN_CANCEL 4
|
|
|
|
/****************************************************************************/
|
|
/* Macros & #defines */
|
|
/****************************************************************************/
|
|
|
|
// == Name & Version stuff ==
|
|
|
|
#define RWSVERSION "0.80" // current version for text
|
|
#define RWSVERSIONNBR "08" // current version for files
|
|
|
|
// RWSFULLVERSION for RWS v0.80 GA, oo v1.1, FPos v0.80, & Iconomize v0.80
|
|
// is 0x08000100
|
|
#define RWSFULLVERSION 0x08000100 // fussy version
|
|
|
|
#define RWSSRVSTEM "RWSSRV" // server name stem
|
|
#define RWSCLISTEM "RWSCLI" // client name stem
|
|
#define RWSCLASSSTEM "RWS" // WPS class name stem
|
|
|
|
#define RWSSRVNAME RWSSRVSTEM RWSVERSIONNBR // server name
|
|
#define RWSCLINAME RWSCLISTEM RWSVERSIONNBR // client name
|
|
#define RWSCLASSNAME RWSCLASSSTEM RWSVERSIONNBR // class name
|
|
|
|
#define RWSSRVMOD RWSSRVNAME // server module name
|
|
#define RWSCLIMOD RWSCLINAME // client module name
|
|
#define RWSSRVDLL RWSSRVMOD ".DLL" // server dll name
|
|
#define RWSCLIDLL RWSCLIMOD ".DLL" // client dll name
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Address macros ==
|
|
|
|
// use these to calculate the address of a structure or buffer
|
|
// which immediately follows the referenced structure
|
|
|
|
// takes a ptr to RWSHDR, returns a ptr to the RWSDSC for the procedure
|
|
#define CALCPROCPTR(p) ((PRWSDSC)(PVOID)(&((PRWSHDR)p)[1]))
|
|
|
|
// takes a ptr to RWSHDR, returns a ptr to the RWSDSC for the return value
|
|
#define CALCRTNPTR(p) (CALCPROCPTR(p)->pnext)
|
|
|
|
// takes a ptr to RWSDSC, returns a ptr to the give buffer which follows it
|
|
#define CALCGIVEPTR(p) ((PBYTE)(PVOID)(&((PRWSDSC)p)[1]))
|
|
|
|
// takes a ptr to RWSBLD, returns a ptr to the first RWSARG following it
|
|
#define CALCARGPTR(p) ((PRWSARG)(PVOID)(&((PRWSBLD)p)[1]))
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Error Handler macros ==
|
|
|
|
// error macros that make it easy to break out of a function bracketed by
|
|
// a do{...}while(FALSE) loop - they assume 'rc' has already been defined
|
|
|
|
// used to set an error code
|
|
#define ERRNBR(x) {rc = (x); break;}
|
|
|
|
// used to evaluate the error code returned by a function
|
|
#define ERRRTN(x) {rc = (x); if (rc) break;}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Miscellanea ==
|
|
|
|
#define RWSMAXARGS 16 // this only applies to methods & functions
|
|
#define RWSSTRINGSIZE CCHMAXPATH // the default string buffer size
|
|
#define RWSMEMSIZE 0x10000 // the amount of gettable shared
|
|
// memory each client allocates
|
|
|
|
// arranges character sequences so they're recognizable
|
|
// when viewed as a DWORD (e.g. 'INIT' becomes 0x494e4954)
|
|
#define READABLEULONG(a,b,c,d) ((ULONG)((((ULONG)(a))<<24) | \
|
|
(((ULONG)(b))<<16) | \
|
|
(((ULONG)(c))<<8) | \
|
|
((ULONG)(d))))
|
|
|
|
|
|
/****************************************************************************/
|
|
/* Type Descriptor Primitives */
|
|
/****************************************************************************/
|
|
|
|
// These describe the data the client will GIVE to the server and what it
|
|
// will GET back from the server. GIVEP/GETP identify Primary categories;
|
|
// GIVEQ/GETQ identify Qualifiers, i.e. subcategories and/or special handling.
|
|
//
|
|
// Client apps have little reason to use these - they should use the RWS*_
|
|
// macros listed in the "RWSDSC Type Descriptors" section below.
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Argument/Return Descriptors ==
|
|
|
|
// GIVEP() values
|
|
#define GIVE_ASIS 0 // dword
|
|
#define GIVE_VOID 1 // nothing (rtn only)
|
|
#define GIVE_PSTR 2 // ptr to string
|
|
#define GIVE_PBUF 3 // ptr to fixed lth buf
|
|
#define GIVE_PPVOID 4 // ptr to pvoid or ulong
|
|
#define GIVE_PULONG GIVE_PPVOID // a synonym for those who need one
|
|
#define GIVE_CONV 5 // none - value derived by conversion
|
|
#define GIVE_COPYSTR 6 // none - value derived by strcpy into alloc
|
|
#define GIVE_COPYBUF 7 // none - value derived by memcpy into alloc
|
|
|
|
// GETP() values
|
|
#define GET_ASIS 0 // no action needed
|
|
#define GET_VOID 1 // nothing (rtn only)
|
|
#define GET_CONV 2 // value converted into buf
|
|
#define GET_PPSTR 3 // strcpy *value into buf
|
|
#define GET_PPBUF 4 // memcpy *value into buf
|
|
#define GET_PSTR 5 // strcpy value into buf (rtn only)
|
|
#define GET_PBUF 6 // memcpy value into buf (rtn only)
|
|
#define GET_COPYICON 7 // copy icon handle to client process (rtn only)
|
|
#define GET_COPYMINI 8 // copy mini-icon to client process (rtn only)
|
|
|
|
// GIVEQ()/GETQ() values
|
|
// used only by GIVE_CONV & GET_CONV
|
|
#define CONV_OBJPATH 1 // object from/to f/q name (or from obj ID)
|
|
#define CONV_OBJFQTITLE 2 // object from/to f/q title (or from obj ID)
|
|
#define CONV_OBJHNDL 3 // object from/to hobj
|
|
#define CONV_OBJHWND 4 // object from/to hwnd
|
|
#define CONV_OBJPREC 5 // object from/to pminirecordcore
|
|
#define CONV_OBJNAME 6 // object to name
|
|
#define CONV_OBJTITLE 7 // object to title
|
|
#define CONV_OBJID 8 // object to object ID
|
|
#define CONV_OBJFLDR 9 // object to folder containing object
|
|
#define CONV_SHDFQTITLE 10 // original obj from shadow f/q title or obj ID
|
|
#define CONV_SHDHNDL 11 // original obj from shadow hobj
|
|
#define CONV_SHDPREC 12 // original obj from shadow pminirecordcore
|
|
#define CONV_CLSNAME 13 // class from/to classname
|
|
#define CONV_CLSOBJ 14 // class from object
|
|
#define CONV_CLSOBJPATH 15 // class from object's f/q name or obj ID
|
|
#define CONV_CLSOBJFQTITLE 16 // class from object's f/q title or obj ID
|
|
#define CONV_CLSOBJHNDL 17 // class from object's hobj
|
|
#define CONV_CLSOBJHWND 18 // class from object's hwnd
|
|
#define CONV_CLSOBJPREC 19 // class from object's pminirecordcore
|
|
#define CONV_CLSSHDFQTITLE 20 // class from object from shadow f/q title
|
|
#define CONV_CLSSHDHNDL 21 // class from object from shadow hobj
|
|
#define CONV_CLSSHDPREC 22 // class from object from shadow pminirecordcore
|
|
#define CONV_SOMID 23 // somid to/from string
|
|
#define CONV_OBJICON 24 // object to icon
|
|
#define CONV_OBJMINI 25 // object to mini-icon
|
|
#define CONV_CLSICON 26 // class to icon
|
|
#define CONV_CLSMINI 27 // class to mini-icon
|
|
#define CONV_SOMCLSMGR 28 // SOM Class Manager object (input ignored)
|
|
#define CONV_PREVIOUS 29 // reuse previous arg's object (RWSC_* only)
|
|
|
|
// GETQ() values
|
|
// used only by GET_(P)PSTR & GET_(P)PBUF
|
|
#define COPY_CNTRTN 40 // nbr of bytes to copy is in return
|
|
#define COPY_CNTARG1 41 // nbr of bytes to copy is in Arg1
|
|
#define COPY_CNTARG2 42 // nbr of bytes to copy is in Arg2
|
|
#define COPY_CNTARG3 43 // nbr of bytes to copy is in Arg3
|
|
#define COPY_CNTARG4 44 // nbr of bytes to copy is in Arg4
|
|
#define COPY_CNTARG5 45 // nbr of bytes to copy is in Arg5
|
|
#define COPY_CNTARG6 46 // nbr of bytes to copy is in Arg6
|
|
#define COPY_CNTARG7 47 // nbr of bytes to copy is in Arg7
|
|
#define COPY_CNTARG8 48 // nbr of bytes to copy is in Arg8
|
|
#define COPY_CNTARG9 49 // nbr of bytes to copy is in Arg9
|
|
#define COPY_CNTULONG 50 // copy cnt is in ulong at start of buf
|
|
#define COPY_CNTUSHORT 51 // copy cnt is in ushort at start of buf
|
|
#define COPY_CNTULZERO 52 // copy array of ulongs, last one is zero
|
|
|
|
#define COPY_MASK 63 // mask off memory bits
|
|
#define COPY_CNTFIRST COPY_CNTRTN
|
|
#define COPY_CNTLAST COPY_CNTULZERO
|
|
|
|
// GIVEQ()/GETQ() flags
|
|
// used by GIVE_COPYSTR & GIVE_COPYBUF to alloc object/SOM memory
|
|
// used by GET_(P)PSTR & GET_(P)PBUF to free object/SOM memory
|
|
// also used to free somId's used as input args
|
|
#define COPY_OBJMEM 64 // alloc/free object memory
|
|
#define FREE_OBJMEM COPY_OBJMEM
|
|
#define COPY_SOMMEM 128 // alloc/free som memory
|
|
#define FREE_SOMMEM COPY_SOMMEM
|
|
#define COPY_MEMMASK 192 // mask off copy bits
|
|
|
|
// note: since CONV_* & COPY_* are used in different contexts, their
|
|
// values could overlap; for now they don't as a safety precaution
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Procedure Descriptors ==
|
|
|
|
// GIVEP() values
|
|
#define PROC_MNAM 1 // method by pointer to name
|
|
#define PROC_MPFN 2 // method by pointer to function
|
|
#define PROC_KORD 3 // SOM kernel function by ordinal
|
|
#define PROC_KPFN 4 // SOM kernel function by pointer to function
|
|
#define PROC_CONV 5 // data conversion only
|
|
#define PROC_CMD 6 // built-in command
|
|
|
|
// GIVEQ() values
|
|
#define PRTN_BOOL 0 // non-zero return indicates success
|
|
#define PRTN_ZERO 1 // zero return indicates success
|
|
#define PRTN_IGNORE 2 // return doesn't indicate outcome
|
|
#define PRTN_LASTGIVEQ PRTN_IGNORE // applies to methods & functions
|
|
#define PRTN_NA 3 // not applicable (PROC_CONV & PROC_CMD)
|
|
|
|
|
|
// == RWSDSC Flag values ==
|
|
|
|
#define DSC_PROC 1 // procedure
|
|
#define DSC_RTN 2 // return
|
|
#define DSC_ARG 3 // arg
|
|
#define DSC_CONV 4 // convert
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Structure/Macros to access the Type Descriptors ==
|
|
|
|
typedef struct _RWSTYPE
|
|
{
|
|
BYTE givep;
|
|
BYTE giveq;
|
|
BYTE getp;
|
|
BYTE getq;
|
|
} RWSTYPE;
|
|
|
|
#define TORWSTYPE(a,b,c,d) ((ULONG)(((ULONG)a) | (((ULONG)b)<<8) | \
|
|
(((ULONG)c)<<16) | (((ULONG)d)<<24)))
|
|
|
|
#define GIVEP(arg) (((RWSTYPE*)(PVOID)(&arg))->givep)
|
|
#define GIVEQ(arg) (((RWSTYPE*)(PVOID)(&arg))->giveq)
|
|
#define GETP(arg) (((RWSTYPE*)(PVOID)(&arg))->getp)
|
|
#define GETQ(arg) (((RWSTYPE*)(PVOID)(&arg))->getq)
|
|
|
|
|
|
/****************************************************************************/
|
|
/* RWSDSC Type Descriptors */
|
|
/****************************************************************************/
|
|
|
|
// Client apps should use the following macros rather than the
|
|
// Type Descriptor Primitives listed above.
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Procedures ==
|
|
|
|
#define RWSP_MNAM TORWSTYPE( PROC_MNAM, PRTN_BOOL, 0, 0)
|
|
#define RWSP_MNAMZ TORWSTYPE( PROC_MNAM, PRTN_ZERO, 0, 0)
|
|
#define RWSP_MNAMI TORWSTYPE( PROC_MNAM, PRTN_IGNORE, 0, 0)
|
|
#define RWSP_MPFN TORWSTYPE( PROC_MPFN, PRTN_BOOL, 0, 0)
|
|
#define RWSP_MPFNZ TORWSTYPE( PROC_MPFN, PRTN_ZERO, 0, 0)
|
|
#define RWSP_MPFNI TORWSTYPE( PROC_MPFN, PRTN_IGNORE, 0, 0)
|
|
#define RWSP_KORD TORWSTYPE( PROC_KORD, PRTN_BOOL, 0, 0)
|
|
#define RWSP_KORDZ TORWSTYPE( PROC_KORD, PRTN_ZERO, 0, 0)
|
|
#define RWSP_KORDI TORWSTYPE( PROC_KORD, PRTN_IGNORE, 0, 0)
|
|
#define RWSP_KPFN TORWSTYPE( PROC_KPFN, PRTN_BOOL, 0, 0)
|
|
#define RWSP_KPFNZ TORWSTYPE( PROC_KPFN, PRTN_ZERO, 0, 0)
|
|
#define RWSP_KPFNI TORWSTYPE( PROC_KPFN, PRTN_IGNORE, 0, 0)
|
|
#define RWSP_CONV TORWSTYPE( PROC_CONV, PRTN_NA, 0, 0)
|
|
#define RWSP_CMD TORWSTYPE( PROC_CMD, PRTN_NA, 0, 0)
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == In-only Arguments ==
|
|
|
|
#define RWSI_ASIS TORWSTYPE( GIVE_ASIS, 0, GET_ASIS, 0)
|
|
#define RWSI_PSTR TORWSTYPE( GIVE_PSTR, 0, GET_ASIS, 0)
|
|
#define RWSI_PBUF TORWSTYPE( GIVE_PBUF, 0, GET_ASIS, 0)
|
|
#define RWSI_PPVOID TORWSTYPE( GIVE_PPVOID, 0, GET_ASIS, 0)
|
|
#define RWSI_PULONG TORWSTYPE( GIVE_PPVOID, 0, GET_ASIS, 0)
|
|
#define RWSI_OPATH TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_ASIS, 0)
|
|
#define RWSI_OFTITLE TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_ASIS, 0)
|
|
#define RWSI_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_ASIS, 0)
|
|
#define RWSI_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_ASIS, 0)
|
|
#define RWSI_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_ASIS, 0)
|
|
#define RWSI_SFTITLE TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_ASIS, 0)
|
|
#define RWSI_SHNDL TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_ASIS, 0)
|
|
#define RWSI_SPREC TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_ASIS, 0)
|
|
#define RWSI_CNAME TORWSTYPE( GIVE_CONV, CONV_CLSNAME, GET_ASIS, 0)
|
|
#define RWSI_COBJ TORWSTYPE( GIVE_CONV, CONV_CLSOBJ, GET_ASIS, 0)
|
|
#define RWSI_COPATH TORWSTYPE( GIVE_CONV, CONV_CLSOBJPATH, GET_ASIS, 0)
|
|
#define RWSI_COFTITLE TORWSTYPE( GIVE_CONV, CONV_CLSOBJFQTITLE,GET_ASIS, 0)
|
|
#define RWSI_COHNDL TORWSTYPE( GIVE_CONV, CONV_CLSOBJHNDL, GET_ASIS, 0)
|
|
#define RWSI_COHWND TORWSTYPE( GIVE_CONV, CONV_CLSOBJHWND, GET_ASIS, 0)
|
|
#define RWSI_COPREC TORWSTYPE( GIVE_CONV, CONV_CLSOBJPREC, GET_ASIS, 0)
|
|
#define RWSI_CSFTITLE TORWSTYPE( GIVE_CONV, CONV_CLSSHDFQTITLE,GET_ASIS, 0)
|
|
#define RWSI_CSHNDL TORWSTYPE( GIVE_CONV, CONV_CLSSHDHNDL, GET_ASIS, 0)
|
|
#define RWSI_CSPREC TORWSTYPE( GIVE_CONV, CONV_CLSSHDPREC, GET_ASIS, 0)
|
|
#define RWSI_SOMID TORWSTYPE( GIVE_CONV, CONV_SOMID, GET_ASIS, 0)
|
|
#define RWSI_SOMIDFREE TORWSTYPE( GIVE_CONV, CONV_SOMID, GET_ASIS, FREE_SOMMEM)
|
|
#define RWSI_SOMCLSMGR TORWSTYPE( GIVE_CONV, CONV_SOMCLSMGR, GET_ASIS, 0)
|
|
#define RWSI_POBJSTR TORWSTYPE( GIVE_COPYSTR, COPY_OBJMEM, GET_ASIS, 0)
|
|
#define RWSI_PSOMSTR TORWSTYPE( GIVE_COPYSTR, COPY_SOMMEM, GET_ASIS, 0)
|
|
#define RWSI_POBJBUF TORWSTYPE( GIVE_COPYBUF, COPY_OBJMEM, GET_ASIS, 0)
|
|
#define RWSI_PSOMBUF TORWSTYPE( GIVE_COPYBUF, COPY_SOMMEM, GET_ASIS, 0)
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == In/Out Arguments ==
|
|
|
|
#define RWSO_PPSTR TORWSTYPE( GIVE_PPVOID, 0, GET_PPSTR, 0)
|
|
#define RWSO_PPBUF TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, 0)
|
|
#define RWSO_PPBUFCNTRTN TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTRTN )
|
|
#define RWSO_PPBUFCNTARG1 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG1)
|
|
#define RWSO_PPBUFCNTARG2 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG2)
|
|
#define RWSO_PPBUFCNTARG3 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG3)
|
|
#define RWSO_PPBUFCNTARG4 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG4)
|
|
#define RWSO_PPBUFCNTARG5 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG5)
|
|
#define RWSO_PPBUFCNTARG6 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG6)
|
|
#define RWSO_PPBUFCNTARG7 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG7)
|
|
#define RWSO_PPBUFCNTARG8 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG8)
|
|
#define RWSO_PPBUFCNTARG9 TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTARG9)
|
|
#define RWSO_PPBUFCNTULONG TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTULONG)
|
|
#define RWSO_PPBUFCNTUSHORT TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTUSHORT)
|
|
#define RWSO_PPBUFCNTULZERO TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, COPY_CNTULZERO)
|
|
#define RWSO_PPSTROBJFREE TORWSTYPE( GIVE_PPVOID, 0, GET_PPSTR, FREE_OBJMEM)
|
|
#define RWSO_PPSTRSOMFREE TORWSTYPE( GIVE_PPVOID, 0, GET_PPSTR, FREE_SOMMEM)
|
|
#define RWSO_PPBUFOBJFREE TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, FREE_OBJMEM)
|
|
#define RWSO_PPBUFSOMFREE TORWSTYPE( GIVE_PPVOID, 0, GET_PPBUF, FREE_SOMMEM)
|
|
#define RWSO_OPATH TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJPATH)
|
|
#define RWSO_OFTITLE TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSO_ONAME TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJNAME)
|
|
#define RWSO_OTITLE TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSO_OHNDL TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSO_OHWND TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJHWND)
|
|
#define RWSO_OPREC TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJPREC)
|
|
#define RWSO_OID TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJID)
|
|
#define RWSO_OFLDR TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSO_OICON TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJICON)
|
|
#define RWSO_OMINI TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_OBJMINI)
|
|
#define RWSO_CICON TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_CLSICON)
|
|
#define RWSO_CMINI TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_CLSMINI)
|
|
#define RWSO_CNAME TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_CLSNAME)
|
|
#define RWSO_SOMID TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_SOMID)
|
|
#define RWSO_SOMIDFREE TORWSTYPE( GIVE_PPVOID, 0, GET_CONV, CONV_SOMID+FREE_SOMMEM)
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Return ==
|
|
|
|
#define RWSR_ASIS TORWSTYPE( GIVE_VOID, 0, GET_ASIS, 0)
|
|
#define RWSR_VOID TORWSTYPE( GIVE_VOID, 0, GET_VOID, 0)
|
|
#define RWSR_OPATH TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJPATH)
|
|
#define RWSR_OFTITLE TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSR_ONAME TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJNAME)
|
|
#define RWSR_OTITLE TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSR_OHNDL TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSR_OHWND TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJHWND)
|
|
#define RWSR_OPREC TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJPREC)
|
|
#define RWSR_OID TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJID)
|
|
#define RWSR_OFLDR TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSR_OICON TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJICON)
|
|
#define RWSR_OMINI TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_OBJMINI)
|
|
#define RWSR_CICON TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_CLSICON)
|
|
#define RWSR_CMINI TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_CLSMINI)
|
|
#define RWSR_CNAME TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_CLSNAME)
|
|
#define RWSR_SOMID TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_SOMID)
|
|
#define RWSR_SOMIDFREE TORWSTYPE( GIVE_VOID, 0, GET_CONV, CONV_SOMID+FREE_SOMMEM)
|
|
#define RWSR_COPYICON TORWSTYPE( GIVE_VOID, 0, GET_COPYICON, 0)
|
|
#define RWSR_COPYMINI TORWSTYPE( GIVE_VOID, 0, GET_COPYMINI, 0)
|
|
#define RWSR_PSTR TORWSTYPE( GIVE_VOID, 0, GET_PSTR, 0)
|
|
#define RWSR_PBUF TORWSTYPE( GIVE_VOID, 0, GET_PBUF, 0)
|
|
#define RWSR_PBUFCNTARG1 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG1)
|
|
#define RWSR_PBUFCNTARG2 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG2)
|
|
#define RWSR_PBUFCNTARG3 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG3)
|
|
#define RWSR_PBUFCNTARG4 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG4)
|
|
#define RWSR_PBUFCNTARG5 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG5)
|
|
#define RWSR_PBUFCNTARG6 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG6)
|
|
#define RWSR_PBUFCNTARG7 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG7)
|
|
#define RWSR_PBUFCNTARG8 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG8)
|
|
#define RWSR_PBUFCNTARG9 TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTARG9)
|
|
#define RWSR_PBUFCNTULONG TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTULONG)
|
|
#define RWSR_PBUFCNTUSHORT TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTUSHORT)
|
|
#define RWSR_PBUFCNTULZERO TORWSTYPE( GIVE_VOID, 0, GET_PBUF, COPY_CNTULZERO)
|
|
#define RWSR_PPSTR TORWSTYPE( GIVE_VOID, 0, GET_PPSTR, 0)
|
|
#define RWSR_PPBUF TORWSTYPE( GIVE_VOID, 0, GET_PPBUF, 0)
|
|
#define RWSR_PSTROBJFREE TORWSTYPE( GIVE_VOID, 0, GET_PSTR, FREE_OBJMEM)
|
|
#define RWSR_PBUFOBJFREE TORWSTYPE( GIVE_VOID, 0, GET_PBUF, FREE_OBJMEM)
|
|
#define RWSR_PPSTROBJFREE TORWSTYPE( GIVE_VOID, 0, GET_PPSTR, FREE_OBJMEM)
|
|
#define RWSR_PPBUFOBJFREE TORWSTYPE( GIVE_VOID, 0, GET_PPBUF, FREE_OBJMEM)
|
|
#define RWSR_PSTRSOMFREE TORWSTYPE( GIVE_VOID, 0, GET_PSTR, FREE_SOMMEM)
|
|
#define RWSR_PBUFSOMFREE TORWSTYPE( GIVE_VOID, 0, GET_PBUF, FREE_SOMMEM)
|
|
#define RWSR_PPSTRSOMFREE TORWSTYPE( GIVE_VOID, 0, GET_PPSTR, FREE_SOMMEM)
|
|
#define RWSR_PPBUFSOMFREE TORWSTYPE( GIVE_VOID, 0, GET_PPBUF, FREE_SOMMEM)
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
// == Data Conversion ==
|
|
|
|
#define RWSC_OPATH_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_ASIS, 0)
|
|
#define RWSC_OPATH_OTITLE TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSC_OPATH_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_OPATH_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_OPATH_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_OPATH_OID TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJID)
|
|
#define RWSC_OPATH_OICON TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_OPATH_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_OPATH_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_OPATH_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_OPATH_CICON TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_OPATH_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJPATH, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_OFTITLE_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_ASIS, 0)
|
|
#define RWSC_OFTITLE_ONAME TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_OFTITLE_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_OFTITLE_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_OFTITLE_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_OFTITLE_OID TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJID)
|
|
#define RWSC_OFTITLE_OICON TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_OFTITLE_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_OFTITLE_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_OFTITLE_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_OFTITLE_CICON TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_OFTITLE_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJFQTITLE, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_OHNDL_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_ASIS, 0)
|
|
#define RWSC_OHNDL_OPATH TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJPATH)
|
|
#define RWSC_OHNDL_OFTITLE TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSC_OHNDL_ONAME TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_OHNDL_OTITLE TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSC_OHNDL_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_OHNDL_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_OHNDL_OID TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJID)
|
|
#define RWSC_OHNDL_OFLDR TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSC_OHNDL_OICON TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_OHNDL_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_OHNDL_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_OHNDL_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_OHNDL_CICON TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_OHNDL_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJHNDL, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_OHWND_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_ASIS, 0)
|
|
#define RWSC_OHWND_OPATH TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJPATH)
|
|
#define RWSC_OHWND_OFTITLE TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSC_OHWND_ONAME TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_OHWND_OTITLE TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSC_OHWND_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_OHWND_OPREC TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_OHWND_OID TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJID)
|
|
#define RWSC_OHWND_OFLDR TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSC_OHWND_OICON TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_OHWND_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_OHWND_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_OHWND_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_OHWND_CICON TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_OHWND_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJHWND, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_OPREC_OBJ TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_ASIS, 0)
|
|
#define RWSC_OPREC_OPATH TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJPATH)
|
|
#define RWSC_OPREC_OFTITLE TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSC_OPREC_ONAME TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_OPREC_OTITLE TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSC_OPREC_OHNDL TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_OPREC_OHWND TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_OPREC_OID TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJID)
|
|
#define RWSC_OPREC_OFLDR TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSC_OPREC_OICON TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_OPREC_OMINI TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_OPREC_CLASS TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_OPREC_CNAME TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_OPREC_CICON TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_OPREC_CMINI TORWSTYPE( GIVE_CONV, CONV_OBJPREC, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_SFTITLE_OBJ TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_ASIS, 0)
|
|
#define RWSC_SFTITLE_OPATH TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJPATH)
|
|
#define RWSC_SFTITLE_OFTITLE TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSC_SFTITLE_ONAME TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_SFTITLE_OHNDL TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_SFTITLE_OHWND TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_SFTITLE_OPREC TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_SFTITLE_OID TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJID)
|
|
#define RWSC_SFTITLE_OFLDR TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSC_SFTITLE_OICON TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_SFTITLE_OMINI TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_SFTITLE_CLASS TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_SFTITLE_CNAME TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_SFTITLE_CICON TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_SFTITLE_CMINI TORWSTYPE( GIVE_CONV, CONV_SHDFQTITLE, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_SHNDL_OBJ TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_ASIS, 0)
|
|
#define RWSC_SHNDL_OPATH TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJPATH)
|
|
#define RWSC_SHNDL_OFTITLE TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSC_SHNDL_ONAME TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_SHNDL_OTITLE TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSC_SHNDL_OHNDL TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_SHNDL_OHWND TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_SHNDL_OPREC TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_SHNDL_OID TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJID)
|
|
#define RWSC_SHNDL_OFLDR TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSC_SHNDL_OICON TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_SHNDL_OMINI TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_SHNDL_CLASS TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_SHNDL_CNAME TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_SHNDL_CICON TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_SHNDL_CMINI TORWSTYPE( GIVE_CONV, CONV_SHDHNDL, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_SPREC_OBJ TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_ASIS, 0)
|
|
#define RWSC_SPREC_OPATH TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJPATH)
|
|
#define RWSC_SPREC_OFTITLE TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSC_SPREC_ONAME TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_SPREC_OTITLE TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSC_SPREC_OHNDL TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_SPREC_OHWND TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_SPREC_OPREC TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_SPREC_OID TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJID)
|
|
#define RWSC_SPREC_OFLDR TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSC_SPREC_OICON TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_SPREC_OMINI TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_SPREC_CLASS TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_SPREC_CNAME TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_SPREC_CICON TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_SPREC_CMINI TORWSTYPE( GIVE_CONV, CONV_SHDPREC, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_PREV_OPATH TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJPATH)
|
|
#define RWSC_PREV_OFTITLE TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSC_PREV_ONAME TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_PREV_OTITLE TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSC_PREV_OHNDL TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_PREV_OHWND TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_PREV_OPREC TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_PREV_OID TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJID)
|
|
#define RWSC_PREV_OFLDR TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSC_PREV_OICON TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_PREV_OMINI TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_PREV_CLASS TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_PREV_CNAME TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_PREV_CICON TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_PREV_CMINI TORWSTYPE( GIVE_CONV, CONV_PREVIOUS, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_OBJ_OPATH TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJPATH)
|
|
#define RWSC_OBJ_OFTITLE TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJFQTITLE)
|
|
#define RWSC_OBJ_ONAME TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJNAME)
|
|
#define RWSC_OBJ_OTITLE TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJTITLE)
|
|
#define RWSC_OBJ_OHNDL TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJHNDL)
|
|
#define RWSC_OBJ_OHWND TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJHWND)
|
|
#define RWSC_OBJ_OPREC TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJPREC)
|
|
#define RWSC_OBJ_OID TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJID)
|
|
#define RWSC_OBJ_OFLDR TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJFLDR)
|
|
#define RWSC_OBJ_OICON TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJICON)
|
|
#define RWSC_OBJ_OMINI TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_OBJMINI)
|
|
#define RWSC_OBJ_CLASS TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSOBJ)
|
|
#define RWSC_OBJ_CNAME TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_OBJ_CICON TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_OBJ_CMINI TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_CLASS_CNAME TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSNAME)
|
|
#define RWSC_CLASS_CICON TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_CLASS_CMINI TORWSTYPE( GIVE_ASIS, 0, GET_CONV, CONV_CLSMINI)
|
|
#define RWSC_CNAME_CLASS TORWSTYPE( GIVE_CONV, CONV_CLSNAME, GET_ASIS, 0)
|
|
#define RWSC_CNAME_CICON TORWSTYPE( GIVE_CONV, CONV_CLSNAME, GET_CONV, CONV_CLSICON)
|
|
#define RWSC_CNAME_CMINI TORWSTYPE( GIVE_CONV, CONV_CLSNAME, GET_CONV, CONV_CLSMINI)
|
|
|
|
#define RWSC_NULL_SOMCLSMGR TORWSTYPE( GIVE_CONV, CONV_SOMCLSMGR, GET_ASIS, 0)
|
|
|
|
#define RWSC_ADDR_PSTR TORWSTYPE( GIVE_ASIS, 0, GET_PSTR, 0)
|
|
#define RWSC_ADDR_PBUF TORWSTYPE( GIVE_ASIS, 0, GET_PBUF, 0)
|
|
|
|
/****************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // RWS_H_INCLUDED
|
|
|
|
/****************************************************************************/
|
|
|