E
eng
Hi, i have the following legacy code i need to rework to remove the
macros as
Can i do this with templates??
#define DECLARE_IOCTL_TABLE() \
virtual bool IOCTLUser (DWORD data, DWORD code, \
PBYTE bufIn, DWORD lenIn, PBYTE bufOut, DWORD lenOut, DWORD *out)
#define BEGIN_IOCTL_TABLE() \
bool IOCTLUser (DWORD data, DWORD code, \
PBYTE bufIn, DWORD lenIn, PBYTE bufOut, DWORD lenOut, DWORD *out) \
{ \
switch (aCode) \
{
#define IOCTL_HANDLER(IOCTL_CODE, IOCTLHandler) \
case IOCTL_CODE: \
return IOCTLHandler (data, code, bufIn, lenIn, bufOut, aLenOut,
out); \
break
#define END_IOCTL_TABLE \
default: \
return IOCTLNotHandled (data, code, bufIn, lenIn,
bufOut, lenOut, out); \
break; \
} \
}
used as follows:
BEGIN_IOCTL_TABLE()
IOCTL_HANDLER(IOCTL_GET_DATA, IOCTLGetData);
END_IOCTL_TABLE
Thanks
macros as
Can i do this with templates??
#define DECLARE_IOCTL_TABLE() \
virtual bool IOCTLUser (DWORD data, DWORD code, \
PBYTE bufIn, DWORD lenIn, PBYTE bufOut, DWORD lenOut, DWORD *out)
#define BEGIN_IOCTL_TABLE() \
bool IOCTLUser (DWORD data, DWORD code, \
PBYTE bufIn, DWORD lenIn, PBYTE bufOut, DWORD lenOut, DWORD *out) \
{ \
switch (aCode) \
{
#define IOCTL_HANDLER(IOCTL_CODE, IOCTLHandler) \
case IOCTL_CODE: \
return IOCTLHandler (data, code, bufIn, lenIn, bufOut, aLenOut,
out); \
break
#define END_IOCTL_TABLE \
default: \
return IOCTLNotHandled (data, code, bufIn, lenIn,
bufOut, lenOut, out); \
break; \
} \
}
used as follows:
BEGIN_IOCTL_TABLE()
IOCTL_HANDLER(IOCTL_GET_DATA, IOCTLGetData);
END_IOCTL_TABLE
Thanks