Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.4 KiB

  1. #include "rpcproxy.h"
  2. #include "dispex.h"
  3. /* [local] */ HRESULT STDMETHODCALLTYPE IDispatchEx_InvokeEx_Proxy(
  4. IDispatchEx __RPC_FAR * This,
  5. /* [in] */ DISPID id,
  6. /* [in] */ LCID lcid,
  7. /* [in] */ WORD wFlags,
  8. /* [in] */ DISPPARAMS __RPC_FAR *pdp,
  9. /* [unique][out][in] */ VARIANT __RPC_FAR *pvarRes,
  10. /* [unique][out][in] */ EXCEPINFO __RPC_FAR *pei,
  11. /* [unique][in] */ IServiceProvider __RPC_FAR *pspCaller)
  12. {
  13. // CLIENT side code.
  14. // Clear *pvarRes.
  15. if (NULL != pvarRes)
  16. memset(pvarRes, 0, sizeof(*pvarRes));
  17. // Clear *pei.
  18. if (NULL != pei)
  19. memset(pei, 0, sizeof(*pei));
  20. return IDispatchEx_RemoteInvokeEx_Proxy(This, id, lcid, wFlags, pdp,
  21. pvarRes, pei, pspCaller);
  22. }
  23. /* [call_as] */ HRESULT STDMETHODCALLTYPE IDispatchEx_InvokeEx_Stub(
  24. IDispatchEx __RPC_FAR * This,
  25. /* [in] */ DISPID id,
  26. /* [in] */ LCID lcid,
  27. /* [in] */ WORD wFlags,
  28. /* [in] */ DISPPARAMS __RPC_FAR *pdp,
  29. /* [unique][out][in] */ VARIANT __RPC_FAR *pvarRes,
  30. /* [unique][out][in] */ EXCEPINFO __RPC_FAR *pei,
  31. /* [unique][in] */ IServiceProvider __RPC_FAR *pspCaller)
  32. {
  33. // SERVER side code.
  34. // Clear *pvarRes.
  35. if (NULL != pvarRes)
  36. memset(pvarRes, 0, sizeof(*pvarRes));
  37. // Clear *pei.
  38. if (NULL != pei)
  39. memset(pei, 0, sizeof(*pei));
  40. return This->lpVtbl->InvokeEx(This, id, lcid, wFlags, pdp,
  41. pvarRes, pei, pspCaller);
  42. }