#define CHECK_RC(rc, what)											\
	if (rc != XN_STATUS_OK)											\
	{																\
		printf("%s failed: %s\n", what, xnGetStatusString(rc));		\
	} else {														\
		printf("%s succeed: %s\n", what, xnGetStatusString(rc));	\
	}

#define BOOL_RC(rc, what)											\
if (rc != XN_STATUS_OK)												\
{																	\
	printf("%s failed: %s\n", what, xnGetStatusString(rc));			\
	return false;													\
}																	\
printf("%s succeed: %s\n", what, xnGetStatusString(rc));			\
return true;

#define SHOW_RC(rc, what)											\
	printf("%s status: %s\n", what, xnGetStatusString(rc));


#define CHECK_RC_ERR(rc, what, error)								\
{																	\
if (rc == XN_STATUS_NO_NODE_PRESENT)								\
{																	\
	XnChar strError[1024];											\
	errors.ToString(strError, 1024);								\
	printf("%s\n", strError);										\
}																	\
CHECK_RC(rc, what)													\
}
