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.

105 lines
4.5 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1996.
  5. //
  6. // File: remact.idl
  7. //
  8. // Synopsis: Activation interface implemented by object exporters.
  9. //
  10. // This is the interface that needs to be supported by hosts that support
  11. // remote connection requests and export objects. Only one instance of this
  12. // interface can be exported by the host.
  13. //
  14. // Note that this interface is tied closely to IObjectExporter because
  15. // RemoteActivation includes information otherwise retrieved from ResolveOXID.
  16. //
  17. //--------------------------------------------------------------------------
  18. [
  19. uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57),
  20. pointer_default(unique)
  21. ]
  22. interface IActivation
  23. {
  24. import "obase.idl";
  25. const unsigned long MODE_GET_CLASS_OBJECT = 0xffffffff;
  26. //
  27. // RemoteActivation is called to request interface pointer data for one or
  28. // more interface IIDs from an object server servicing the given CLSID.
  29. // This could result in the launching of a new instance of the server, or
  30. // connection to an already running instance.
  31. //
  32. // Note that the ResolveOxid parameters are included as well, to prevent
  33. // the necessity for a second RPC during a remote activation. However,
  34. // the client receives the OXID as an out param since it is not known
  35. // before connecting to the server.
  36. //
  37. error_status_t RemoteActivation(
  38. [in] handle_t hRpc,
  39. [in] ORPCTHIS *ORPCthis,
  40. [out] ORPCTHAT *ORPCthat,
  41. [in] GUID *Clsid,
  42. [in, string, unique] WCHAR *pwszObjectName,
  43. [in, unique] MInterfacePointer *pObjectStorage,
  44. [in] DWORD ClientImpLevel,
  45. [in] DWORD Mode,
  46. [in] DWORD Interfaces,
  47. [in,unique,size_is(Interfaces)] IID *pIIDs,
  48. [in] unsigned short cRequestedProtseqs,
  49. [in, size_is(cRequestedProtseqs)]
  50. unsigned short aRequestedProtseqs[],
  51. [out] OXID *pOxid,
  52. [out] DUALSTRINGARRAY **ppdsaOxidBindings,
  53. [out] IPID *pipidRemUnknown,
  54. [out] DWORD *pAuthnHint,
  55. [out] COMVERSION *pServerVersion,
  56. [out] HRESULT *phr,
  57. [out,size_is(Interfaces)] MInterfacePointer **ppInterfaceData,
  58. [out,size_is(Interfaces)] HRESULT *pResults
  59. );
  60. }
  61. [
  62. uuid(000001A0-0000-0000-C000-000000000046),
  63. pointer_default(unique)
  64. ]
  65. interface IRemoteSCMActivator // <==> ISystemActivator
  66. {
  67. HRESULT DummyQueryInterfaceIRemoteSCMActivator(
  68. [in] handle_t rpc,
  69. [in] ORPCTHIS *orpcthis,
  70. [out] ORPCTHAT *orpcthat,
  71. [in] DWORD dummy );
  72. HRESULT DummyAddRefIRemoteSCMActivator(
  73. [in] handle_t rpc,
  74. [in] ORPCTHIS *orpcthis,
  75. [out] ORPCTHAT *orpcthat,
  76. [in] DWORD dummy );
  77. HRESULT DummyReleaseIRemoteSCMActivator(
  78. [in] handle_t rpc,
  79. [in] ORPCTHIS *orpcthis,
  80. [out] ORPCTHAT *orpcthat,
  81. [in] DWORD dummy );
  82. HRESULT RemoteGetClassObject(
  83. [in] handle_t rpc,
  84. [in] ORPCTHIS *orpcthis,
  85. [out] ORPCTHAT *orpcthat,
  86. [in,unique] MInterfacePointer *pActProperties,
  87. [out] MInterfacePointer **ppActProperties
  88. );
  89. HRESULT RemoteCreateInstance(
  90. [in] handle_t rpc,
  91. [in] ORPCTHIS *orpcthis,
  92. [out] ORPCTHAT *orpcthat,
  93. [in,unique] MInterfacePointer *pUnkOuter,
  94. [in,unique] MInterfacePointer *pActProperties,
  95. [out] MInterfacePointer **ppActProperties
  96. );
  97. }