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

70 lines
1.7 KiB
C++

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
ForwardDeclarations.h
Abstract:
Forward declare lots of struct, class, and union types,
and pointer typedefs thereof.
Author:
Jay Krell (a-JayK) December 2000
Environment:
Revision History:
--*/
#pragma once
#include "Preprocessor.h"
/*-----------------------------------------------------------------------------
This forward declares NT style structs, so you can declare uses of pointers
to them in headers without including the header that defines them, and without
referring to them as "struct _FOO*" but "PFOO" or "FOO*" instead.
The header that defines them should not use this macro, but stick to the
consistent style
typedef struct _FOO
{
..
} FOO, *PFOO;
typedef const FOO* PCFOO;
-----------------------------------------------------------------------------*/
#define FORWARD_NT_STRUCT(x) \
struct PASTE(_,x); \
typedef struct PASTE(_,x) x; \
typedef x* PASTE(P,x); \
typedef const x* PASTE(PC,x)
#define FORWARD_NT_UNION(x) \
union PASTE(_,x); \
typedef union PASTE(_,x) x; \
typedef x* PASTE(P,x); \
typedef const x* PASTE(PC,x)
#define FORWARD_CLASS(x) \
class x; \
typedef x* PASTE(P,x); \
typedef const x* PASTE(PC,x)
FORWARD_NT_UNION(ACTCTXCTB_CALLBACK_DATA);
FORWARD_NT_STRUCT(ACTCTXCTB);
FORWARD_CLASS(ACTCTXCTB_INSTALLATION_CONTEXT);
FORWARD_NT_STRUCT(ACTCTXCTB_CLSIDMAPPING_CONTEXT);
FORWARD_NT_STRUCT(ACTCTXCTB_ASSEMBLY_CONTEXT);
FORWARD_NT_STRUCT(ACTCTXCTB_PARSE_CONTEXT);
FORWARD_NT_STRUCT(SXS_NODE_INFO);
FORWARD_NT_STRUCT(ACTCTXCTB_CBHEADER);
FORWARD_NT_STRUCT(ACTCTXCTB_CBPARSEENDING);
FORWARD_NT_STRUCT(ACTCTXCTB_CBPARSEBEGINNING);
FORWARD_NT_STRUCT(ASSEMBLY_IDENTITY);