14 bool HandleFun(UINT uMsg, SNS::SParamStream &ps) \
16 bool bHandled = false;
18#define FUN_HANDLER(x, fun) \
19 if (!bHandled && uMsg == x::FUN_ID) \
22 GetIpcHandle()->FromStream4Input(¶m, ps.GetBuffer()); \
23 DWORD dwPos = ps.GetBuffer()->Tell(); \
25 ps.GetBuffer()->Seek(SNS::IShareBuffer::seek_set, dwPos); \
26 GetIpcHandle()->ToStream4Output(¶m, ps.GetBuffer()); \
34#define CHAIN_MSG_MAP_2_IPC(ipc) \
37 BOOL bHandled = FALSE; \
38 lResult = (ipc)->OnMessage((ULONG_PTR)hWnd, uMsg, wParam, lParam, bHandled); \
47void toParamStream(SNS::SParamStream &ps, P1 &p1)
52void fromParamStream(SNS::SParamStream &ps, P1 &p1)
57#define PARAMS1(type, p1) \
58 void ToStream4##type(SNS::SParamStream &ps) \
60 toParamStream(ps, p1); \
62 void FromStream4##type(SNS::SParamStream &ps) \
64 fromParamStream(ps, p1); \
68template <
typename P1,
typename P2>
69void toParamStream(SNS::SParamStream &ps, P1 &p1, P2 &p2)
73template <
typename P1,
typename P2>
74void fromParamStream(SNS::SParamStream &ps, P1 &p1, P2 &p2)
79#define PARAMS2(type, p1, p2) \
80 void ToStream4##type(SNS::SParamStream &ps) \
82 toParamStream(ps, p1, p2); \
84 void FromStream4##type(SNS::SParamStream &ps) \
86 fromParamStream(ps, p1, p2); \
90template <
typename P1,
typename P2,
typename P3>
91void toParamStream(SNS::SParamStream &ps, P1 &p1, P2 &p2, P3 &p3)
95template <
typename P1,
typename P2,
typename P3>
96void fromParamStream(SNS::SParamStream &ps, P1 &p1, P2 &p2, P3 &p3)
101#define PARAMS3(type, p1, p2, p3) \
102 void ToStream4##type(SNS::SParamStream &ps) \
104 toParamStream(ps, p1, p2, p3); \
106 void FromStream4##type(SNS::SParamStream &ps) \
108 fromParamStream(ps, p1, p2, p3); \
112template <
typename P1,
typename P2,
typename P3,
typename P4>
113void toParamStream(SNS::SParamStream &ps, P1 &p1, P2 &p2, P3 &p3, P4 &p4)
115 ps << p1 << p2 << p3 << p4;
117template <
typename P1,
typename P2,
typename P3,
typename P4>
118void fromParamStream(SNS::SParamStream &ps, P1 &p1, P2 &p2, P3 &p3, P4 &p4)
120 ps >> p1 >> p2 >> p3 >> p4;
123#define PARAMS4(type, p1, p2, p3, p4) \
124 void ToStream4##type(SNS::SParamStream &ps) \
126 toParamStream(ps, p1, p2, p3, p4); \
128 void FromStream4##type(SNS::SParamStream &ps) \
130 fromParamStream(ps, p1, p2, p3, p4); \
134template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
135void toParamStream(SNS::SParamStream &ps, P1 &p1, P2 &p2, P3 &p3, P4 &p4, P5 &p5)
137 ps << p1 << p2 << p3 << p4 << p5;
139template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
140void fromParamStream(SNS::SParamStream &ps, P1 &p1, P2 &p2, P3 &p3, P4 &p4, P5 &p5)
142 ps >> p1 >> p2 >> p3 >> p4 >> p5;
145#define PARAMS5(type, p1, p2, p3, p4, p5) \
146 void ToStream4##type(SNS::SParamStream &ps) \
148 toParamStream(ps, p1, p2, p3, p4, p5); \
150 void FromStream4##type(SNS::SParamStream &ps) \
152 fromParamStream(ps, p1, p2, p3, p4, p5); \