FreeRDPWrap_server_g.h 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. #ifndef __FREERDPWRAP_SERVER_G_H
  2. #define __FREERDPWRAP_SERVER_G_H
  3. #pragma once
  4. // This code is generated by spgen tool!
  5. #include "FreeRDPWrap_def_g.h"
  6. namespace FreeRDPWrap {
  7. class FreeRDPWrapSrv_ServerSessionBase : public CServerSessionBase
  8. {
  9. public:
  10. FreeRDPWrapSrv_ServerSessionBase()
  11. {
  12. /// override by user
  13. }
  14. virtual ~FreeRDPWrapSrv_ServerSessionBase()
  15. {
  16. /// override by user
  17. }
  18. virtual bool IsExclusive() { return false; }
  19. virtual bool IsSessionOverlap() { return true; }
  20. virtual ErrorCodeEnum GetMessageAttr(DWORD dwMessageID, DWORD dwSignature, bool &bOverlap)
  21. {
  22. ErrorCodeEnum Error = Error_Succeed;
  23. switch (dwMessageID) {
  24. case FreeRDPWrapSrv_Method_InviteRdpShare:
  25. if (dwSignature == FreeRDPWrapSrv_MethodSignature_InviteRdpShare) {
  26. bOverlap = true;
  27. } else {
  28. Error = Error_MethodSignatureFailed;
  29. }
  30. break;
  31. case FreeRDPWrapSrv_Method_CloseRdpShare:
  32. if (dwSignature == FreeRDPWrapSrv_MethodSignature_CloseRdpShare) {
  33. bOverlap = true;
  34. } else {
  35. Error = Error_MethodSignatureFailed;
  36. }
  37. break;
  38. case FreeRDPWrapSrv_Method_CreateProcessRunAs:
  39. if (dwSignature == FreeRDPWrapSrv_MethodSignature_CreateProcessRunAs) {
  40. bOverlap = true;
  41. } else {
  42. Error = Error_MethodSignatureFailed;
  43. }
  44. break;
  45. case FreeRDPWrapSrv_Method_DealWithFreeRdp:
  46. if (dwSignature == FreeRDPWrapSrv_MethodSignature_DealWithFreeRdp) {
  47. bOverlap = true;
  48. } else {
  49. Error = Error_MethodSignatureFailed;
  50. }
  51. break;
  52. case FreeRDPWrapSrv_Method_DealWithRDPWrap:
  53. if (dwSignature == FreeRDPWrapSrv_MethodSignature_DealWithRDPWrap) {
  54. bOverlap = true;
  55. } else {
  56. Error = Error_MethodSignatureFailed;
  57. }
  58. break;
  59. case FreeRDPWrapSrv_Method_AgentAssistant:
  60. if (dwSignature == FreeRDPWrapSrv_MethodSignature_AgentAssistant) {
  61. bOverlap = true;
  62. } else {
  63. Error = Error_MethodSignatureFailed;
  64. }
  65. break;
  66. default:
  67. Error = Error_MethodNotFound;
  68. break;
  69. }
  70. return Error;
  71. }
  72. int CheckMessageSignature(DWORD dwMessageID, DWORD dwSignature)
  73. {
  74. ErrorCodeEnum Error = Error_Succeed;
  75. switch (dwMessageID) {
  76. case FreeRDPWrapSrv_Method_InviteRdpShare:
  77. if (dwSignature != FreeRDPWrapSrv_MethodSignature_InviteRdpShare) {
  78. Error = Error_MethodSignatureFailed;
  79. }
  80. break;
  81. case FreeRDPWrapSrv_Method_CloseRdpShare:
  82. if (dwSignature != FreeRDPWrapSrv_MethodSignature_CloseRdpShare) {
  83. Error = Error_MethodSignatureFailed;
  84. }
  85. break;
  86. case FreeRDPWrapSrv_Method_CreateProcessRunAs:
  87. if (dwSignature != FreeRDPWrapSrv_MethodSignature_CreateProcessRunAs) {
  88. Error = Error_MethodSignatureFailed;
  89. }
  90. break;
  91. case FreeRDPWrapSrv_Method_DealWithFreeRdp:
  92. if (dwSignature != FreeRDPWrapSrv_MethodSignature_DealWithFreeRdp) {
  93. Error = Error_MethodSignatureFailed;
  94. }
  95. break;
  96. case FreeRDPWrapSrv_Method_DealWithRDPWrap:
  97. if (dwSignature != FreeRDPWrapSrv_MethodSignature_DealWithRDPWrap) {
  98. Error = Error_MethodSignatureFailed;
  99. }
  100. break;
  101. case FreeRDPWrapSrv_Method_AgentAssistant:
  102. if (dwSignature != FreeRDPWrapSrv_MethodSignature_AgentAssistant) {
  103. Error = Error_MethodSignatureFailed;
  104. }
  105. break;
  106. default:
  107. Error = Error_MethodNotFound;
  108. break;
  109. }
  110. return Error;
  111. }
  112. virtual void Handle_InviteRdpShare(SpReqAnsContext<FreeRDPWrapSrv_InviteRdpShare_Req, FreeRDPWrapSrv_InviteRdpShare_Ans>::Pointer ctx)
  113. {
  114. /// override by user
  115. }
  116. virtual void Handle_CloseRdpShare(SpReqAnsContext<FreeRDPWrapSrv_CloseRdpShare_Req, FreeRDPWrapSrv_CloseRdpShare_Ans>::Pointer ctx)
  117. {
  118. /// override by user
  119. }
  120. virtual void Handle_CreateProcessRunAs(SpReqAnsContext<FreeRDPWrapSrv_CreateProcessRunAs_Req, FreeRDPWrapSrv_CreateProcessRunAs_Ans>::Pointer ctx)
  121. {
  122. /// override by user
  123. }
  124. virtual void Handle_DealWithFreeRdp(SpReqAnsContext<FreeRDPWrapSrv_DealWithFreeRdp_Req, FreeRDPWrapSrv_DealWithFreeRdp_Ans>::Pointer ctx)
  125. {
  126. /// override by user
  127. }
  128. virtual void Handle_DealWithRDPWrap(SpReqAnsContext<FreeRDPWrapSrv_DealWithRDPWrap_Req, FreeRDPWrapSrv_DealWithRDPWrap_Ans>::Pointer ctx)
  129. {
  130. /// override by user
  131. }
  132. virtual void Handle_AgentAssistant(SpReqAnsContext<FreeRDPWrapSrv_AgentAssistant_Req, FreeRDPWrapSrv_AgentAssistant_Ans>::Pointer ctx)
  133. {
  134. /// override by user
  135. }
  136. virtual void OnRequest(CSmartPointer<ITransactionContext> pTransactionContext)
  137. {
  138. CAutoBuffer Buf;
  139. DWORD dwMessageID;
  140. DWORD dwMessageSignature;
  141. ErrorCodeEnum Error = pTransactionContext->GetReceiveBuffer(dwMessageID, dwMessageSignature, Buf);
  142. if (Error == Error_Succeed) {
  143. #ifdef DEBUG
  144. assert(CheckMessageSignature(dwMessageID, dwMessageSignature) == Error_Succeed);
  145. #else
  146. if (CheckMessageSignature(dwMessageID, dwMessageSignature) != Error_Succeed) {
  147. pTransactionContext->SendAnswer(Error_MethodSignatureFailed);
  148. return;
  149. }
  150. #endif
  151. switch (dwMessageID) {
  152. case FreeRDPWrapSrv_Method_InviteRdpShare:
  153. {
  154. SpReqAnsContext<FreeRDPWrapSrv_InviteRdpShare_Req,FreeRDPWrapSrv_InviteRdpShare_Ans>::Pointer ctx;
  155. ctx.Attach(new SpReqAnsContext<FreeRDPWrapSrv_InviteRdpShare_Req,FreeRDPWrapSrv_InviteRdpShare_Ans>(pTransactionContext));
  156. SpBuffer2Object(Buf, ctx->Req);
  157. Handle_InviteRdpShare(ctx);
  158. }
  159. break;
  160. case FreeRDPWrapSrv_Method_CloseRdpShare:
  161. {
  162. SpReqAnsContext<FreeRDPWrapSrv_CloseRdpShare_Req,FreeRDPWrapSrv_CloseRdpShare_Ans>::Pointer ctx;
  163. ctx.Attach(new SpReqAnsContext<FreeRDPWrapSrv_CloseRdpShare_Req,FreeRDPWrapSrv_CloseRdpShare_Ans>(pTransactionContext));
  164. SpBuffer2Object(Buf, ctx->Req);
  165. Handle_CloseRdpShare(ctx);
  166. }
  167. break;
  168. case FreeRDPWrapSrv_Method_CreateProcessRunAs:
  169. {
  170. SpReqAnsContext<FreeRDPWrapSrv_CreateProcessRunAs_Req,FreeRDPWrapSrv_CreateProcessRunAs_Ans>::Pointer ctx;
  171. ctx.Attach(new SpReqAnsContext<FreeRDPWrapSrv_CreateProcessRunAs_Req,FreeRDPWrapSrv_CreateProcessRunAs_Ans>(pTransactionContext));
  172. SpBuffer2Object(Buf, ctx->Req);
  173. Handle_CreateProcessRunAs(ctx);
  174. }
  175. break;
  176. case FreeRDPWrapSrv_Method_DealWithFreeRdp:
  177. {
  178. SpReqAnsContext<FreeRDPWrapSrv_DealWithFreeRdp_Req,FreeRDPWrapSrv_DealWithFreeRdp_Ans>::Pointer ctx;
  179. ctx.Attach(new SpReqAnsContext<FreeRDPWrapSrv_DealWithFreeRdp_Req,FreeRDPWrapSrv_DealWithFreeRdp_Ans>(pTransactionContext));
  180. SpBuffer2Object(Buf, ctx->Req);
  181. Handle_DealWithFreeRdp(ctx);
  182. }
  183. break;
  184. case FreeRDPWrapSrv_Method_DealWithRDPWrap:
  185. {
  186. SpReqAnsContext<FreeRDPWrapSrv_DealWithRDPWrap_Req,FreeRDPWrapSrv_DealWithRDPWrap_Ans>::Pointer ctx;
  187. ctx.Attach(new SpReqAnsContext<FreeRDPWrapSrv_DealWithRDPWrap_Req,FreeRDPWrapSrv_DealWithRDPWrap_Ans>(pTransactionContext));
  188. SpBuffer2Object(Buf, ctx->Req);
  189. Handle_DealWithRDPWrap(ctx);
  190. }
  191. break;
  192. case FreeRDPWrapSrv_Method_AgentAssistant:
  193. {
  194. SpReqAnsContext<FreeRDPWrapSrv_AgentAssistant_Req,FreeRDPWrapSrv_AgentAssistant_Ans>::Pointer ctx;
  195. ctx.Attach(new SpReqAnsContext<FreeRDPWrapSrv_AgentAssistant_Req,FreeRDPWrapSrv_AgentAssistant_Ans>(pTransactionContext));
  196. SpBuffer2Object(Buf, ctx->Req);
  197. Handle_AgentAssistant(ctx);
  198. }
  199. break;
  200. default:
  201. assert(0);
  202. break;
  203. }
  204. } else {
  205. pTransactionContext->SendAnswer(Error);
  206. }
  207. }
  208. };
  209. ///////////////////////////
  210. } // namespace FreeRDPWrap
  211. #endif // __FREERDPWRAP_SERVER_G_H