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.

142 lines
3.5 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1997.
  5. //
  6. // activate.hxx
  7. //
  8. // Definitions of main data types and functions for dcom activation service.
  9. //
  10. //--------------------------------------------------------------------------
  11. #ifndef __ACTIVATE_HXX__
  12. #define __ACTIVATE_HXX__
  13. #define GUIDSTR_MAX (1+ 8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 12 + 1 + 1)
  14. extern SC_HANDLE g_hServiceController;
  15. typedef enum
  16. {
  17. GETCLASSOBJECT,
  18. CREATEINSTANCE,
  19. GETPERSISTENTINSTANCE
  20. } ActivationType;
  21. typedef struct _ACTIVATION_PARAMS
  22. {
  23. handle_t hRpc;
  24. CProcess * pProcess;
  25. CToken * pToken;
  26. COAUTHINFO * pAuthInfo;
  27. BOOL UnsecureActivation;
  28. USHORT AuthnSvc;
  29. unsigned long ulMarshaledTargetInfoLength;
  30. unsigned char * pMarshaledTargetInfo;
  31. ActivationType MsgType;
  32. GUID Clsid;
  33. WCHAR * pwszServer;
  34. WCHAR * pwszWinstaDesktop;
  35. WCHAR * pEnvBlock;
  36. DWORD EnvBlockLength;
  37. DWORD ClsContext;
  38. DWORD dwPID;
  39. DWORD dwProcessReqType;
  40. ORPCTHIS * ORPCthis;
  41. LOCALTHIS * Localthis;
  42. ORPCTHAT * ORPCthat;
  43. BOOL RemoteActivation;
  44. BOOL bClientImpersonating;
  45. DWORD Interfaces;
  46. IID * pIIDs;
  47. DWORD Mode;
  48. #ifdef DFSACTIVATION
  49. BOOL FileWasOpened;
  50. #endif
  51. WCHAR * pwszPath;
  52. MInterfacePointer * pIFDStorage;
  53. MInterfacePointer * pIFDROT;
  54. long Apartment;
  55. OXID * pOxidServer;
  56. DUALSTRINGARRAY ** ppServerORBindings;
  57. OXID_INFO * pOxidInfo;
  58. MID * pLocalMidOfRemote;
  59. USHORT ProtseqId;
  60. BOOL FoundInROT;
  61. BOOL *pFoundInROT;
  62. DWORD * pDllServerModel;
  63. WCHAR ** ppwszDllServer;
  64. MInterfacePointer **ppIFD;
  65. HRESULT * pResults;
  66. BOOL fComplusOnly;
  67. ActivationPropertiesIn *pActPropsIn;
  68. ActivationPropertiesOut *pActPropsOut;
  69. InstantiationInfo *pInstantiationInfo;
  70. IInstanceInfo *pInstanceInfo;
  71. IScmRequestInfo * pInScmResolverInfo;
  72. BOOL oldActivationCall;
  73. BOOL activatedRemote;
  74. BOOL IsLocalOxid;
  75. IComClassInfo* pComClassInfo;
  76. } ACTIVATION_PARAMS, *PACTIVATION_PARAMS;
  77. class CServerListEntry;
  78. HRESULT
  79. Activation(
  80. IN PACTIVATION_PARAMS pActParams
  81. );
  82. HRESULT ResolveORInfo(
  83. IN PACTIVATION_PARAMS pActParams
  84. );
  85. BOOL
  86. LookupObjectInROT(
  87. IN PACTIVATION_PARAMS pActParams,
  88. OUT HRESULT * phr
  89. );
  90. BOOL
  91. ActivateAtStorage(
  92. IN ACTIVATION_PARAMS * pActParams,
  93. IN CClsidData * pClsidData,
  94. IN HRESULT * phr
  95. );
  96. BOOL
  97. ActivateRemote(
  98. IN ACTIVATION_PARAMS * pActParams,
  99. IN CClsidData * pClsidData,
  100. IN HRESULT * phr
  101. );
  102. BOOL
  103. FindCompatibleSurrogate(
  104. IN CProcess * pProcess,
  105. IN WCHAR * pwszAppid,
  106. OUT CServerListEntry ** ppServerListEntry
  107. );
  108. void
  109. CheckLocalCall(
  110. IN handle_t hRpc
  111. );
  112. #endif