windows-nt/Source/XPSP1/NT/base/win32/fusion/inc/fusionpreprocessorstringize.h
2020-09-26 16:20:57 +08:00

34 lines
1.3 KiB
C

/*-----------------------------------------------------------------------------
Microsoft Fusion
Microsoft Confidential
Copyright Microsoft Corporation. All Rights Reserved.
@doc external
@module fusionpreprocessorstringize.h
@owner JayKrell
-----------------------------------------------------------------------------*/
#if !defined(VS_COMMON_INC_FUSION_PREPROCESSORSTRINGIZE_H_INCLUDED_) // {
#define VS_COMMON_INC_FUSION_PREPROCESSORSTRINGIZE_H_INCLUDED_
/*#pragma once ends up in .rgi, which is bad, so do not do it*/
#include "fusionpreprocessorpaste.h"
#define FusionpPrivatePreprocessorStringize(x) # x
/*-----------------------------------------------------------------------------
Name: FusionpPreprocessorStringize, FusionpPreprocessorStringizeW
@macro
These macros simply stringize their parameter, after evaluating it;
it is evaluated so that
define A B
FusionpPreprocessorStringize(A) -> "B" instead of "A"
FusionpPreprocessorStringizeW(A) -> L"B" instead of L"A"
@owner JayKrell
-----------------------------------------------------------------------------*/
#define FusionpPreprocessorStringize(x) FusionpPrivatePreprocessorStringize(x)
#define FusionpPreprocessorStringizeW(x) FusionpPreprocessorPaste(L, FusionpPrivatePreprocessorStringize(x))
#endif // }