Source code of Windows XP (NT5)
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.

164 lines
3.7 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. PVOID ProcessSignature;
  25. CProcess * pProcess;
  26. CToken * pToken;
  27. COAUTHINFO * pAuthInfo;
  28. #if 1 // #ifndef _CHICAGO_
  29. BOOL UnsecureActivation;
  30. USHORT AuthnSvc;
  31. #endif
  32. ActivationType MsgType;
  33. GUID Clsid;
  34. WCHAR * pwszServer;
  35. WCHAR * pwszWinstaDesktop;
  36. WCHAR * pEnvBlock;
  37. DWORD EnvBlockLength;
  38. DWORD ClsContext;
  39. DWORD dwPID;
  40. DWORD dwProcessReqType;
  41. ORPCTHIS * ORPCthis;
  42. LOCALTHIS * Localthis;
  43. ORPCTHAT * ORPCthat;
  44. BOOL RemoteActivation;
  45. BOOL bClientImpersonating;
  46. DWORD Interfaces;
  47. IID * pIIDs;
  48. DWORD Mode;
  49. #ifdef DFSACTIVATION
  50. BOOL FileWasOpened;
  51. #endif
  52. WCHAR * pwszPath;
  53. MInterfacePointer * pIFDStorage;
  54. MInterfacePointer * pIFDROT;
  55. long Apartment;
  56. OXID * pOxidServer;
  57. DUALSTRINGARRAY ** ppServerORBindings;
  58. OXID_INFO * pOxidInfo;
  59. MID * pLocalMidOfRemote;
  60. USHORT ProtseqId;
  61. BOOL FoundInROT;
  62. BOOL *pFoundInROT;
  63. DWORD * pDllServerModel;
  64. WCHAR ** ppwszDllServer;
  65. MInterfacePointer **ppIFD;
  66. HRESULT * pResults;
  67. BOOL fComplusOnly;
  68. ActivationPropertiesIn *pActPropsIn;
  69. ActivationPropertiesOut *pActPropsOut;
  70. InstantiationInfo *pInstantiationInfo;
  71. IInstanceInfo *pInstanceInfo;
  72. IScmRequestInfo * pInScmResolverInfo;
  73. BOOL oldActivationCall;
  74. BOOL activatedRemote;
  75. BOOL IsLocalOxid;
  76. #if 0 // #ifdef _CHICAGO_
  77. const GUID * pGuidThreadId;
  78. DWORD TIDCaller;
  79. DWORD * pTIDCallee;
  80. #endif
  81. IComClassInfo* pComClassInfo;
  82. } ACTIVATION_PARAMS, *PACTIVATION_PARAMS;
  83. class CServerListEntry;
  84. HRESULT
  85. Activation(
  86. IN PACTIVATION_PARAMS pActParams
  87. );
  88. HRESULT ResolveORInfo(
  89. IN PACTIVATION_PARAMS pActParams
  90. );
  91. BOOL
  92. LookupObjectInROT(
  93. IN PACTIVATION_PARAMS pActParams,
  94. OUT HRESULT * phr
  95. );
  96. BOOL
  97. ActivateAtStorage(
  98. IN ACTIVATION_PARAMS * pActParams,
  99. IN CClsidData * pClsidData,
  100. IN HRESULT * phr
  101. );
  102. BOOL
  103. ActivateRemote(
  104. IN ACTIVATION_PARAMS * pActParams,
  105. IN CClsidData * pClsidData,
  106. IN HRESULT * phr
  107. );
  108. BOOL
  109. FindCompatibleSurrogate(
  110. IN CProcess * pProcess,
  111. IN WCHAR * pwszAppid,
  112. OUT CServerListEntry ** ppServerListEntry
  113. );
  114. void
  115. CheckLocalCall(
  116. IN handle_t hRpc
  117. );
  118. #if 0 // #ifdef _CHICAGO_
  119. void
  120. ScmStartListen();
  121. error_status_t
  122. ScmResolveClientOXID(
  123. OXID Oxid,
  124. DUALSTRINGARRAY *pdsaServerObjectResolverBindings,
  125. long fApartment,
  126. USHORT wProtseqId,
  127. OXID_INFO &OxidInfo,
  128. MID &LocalMidOfRemote
  129. );
  130. #endif
  131. #endif