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.

107 lines
4.8 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. const unsigned long MAX_REQUESTED_INTERFACES = 0x8000; // 32768
  27. const unsigned long MAX_REQUESTED_PROTSEQS = 0x8000; // 32768
  28. //
  29. // RemoteActivation is called to request interface pointer data for one or
  30. // more interface IIDs from an object server servicing the given CLSID.
  31. // This could result in the launching of a new instance of the server, or
  32. // connection to an already running instance.
  33. //
  34. // Note that the ResolveOxid parameters are included as well, to prevent
  35. // the necessity for a second RPC during a remote activation. However,
  36. // the client receives the OXID as an out param since it is not known
  37. // before connecting to the server.
  38. //
  39. error_status_t RemoteActivation(
  40. [in] handle_t hRpc,
  41. [in] ORPCTHIS *ORPCthis,
  42. [out] ORPCTHAT *ORPCthat,
  43. [in] GUID *Clsid,
  44. [in, string, unique] WCHAR *pwszObjectName,
  45. [in, unique] MInterfacePointer *pObjectStorage,
  46. [in] DWORD ClientImpLevel,
  47. [in] DWORD Mode,
  48. [in,range(1,MAX_REQUESTED_INTERFACES)]DWORD Interfaces,
  49. [in,unique,size_is(Interfaces)] IID *pIIDs,
  50. [in,range(0,MAX_REQUESTED_PROTSEQS)]unsigned short cRequestedProtseqs,
  51. [in, size_is(cRequestedProtseqs)]
  52. unsigned short aRequestedProtseqs[],
  53. [out] OXID *pOxid,
  54. [out] DUALSTRINGARRAY **ppdsaOxidBindings,
  55. [out] IPID *pipidRemUnknown,
  56. [out] DWORD *pAuthnHint,
  57. [out] COMVERSION *pServerVersion,
  58. [out] HRESULT *phr,
  59. [out,size_is(Interfaces)] MInterfacePointer **ppInterfaceData,
  60. [out,size_is(Interfaces)] HRESULT *pResults
  61. );
  62. }
  63. [
  64. uuid(000001A0-0000-0000-C000-000000000046),
  65. pointer_default(unique)
  66. ]
  67. interface IRemoteSCMActivator // <==> ISystemActivator
  68. {
  69. HRESULT DummyQueryInterfaceIRemoteSCMActivator(
  70. [in] handle_t rpc,
  71. [in] ORPCTHIS *orpcthis,
  72. [out] ORPCTHAT *orpcthat,
  73. [in] DWORD dummy );
  74. HRESULT DummyAddRefIRemoteSCMActivator(
  75. [in] handle_t rpc,
  76. [in] ORPCTHIS *orpcthis,
  77. [out] ORPCTHAT *orpcthat,
  78. [in] DWORD dummy );
  79. HRESULT DummyReleaseIRemoteSCMActivator(
  80. [in] handle_t rpc,
  81. [in] ORPCTHIS *orpcthis,
  82. [out] ORPCTHAT *orpcthat,
  83. [in] DWORD dummy );
  84. HRESULT RemoteGetClassObject(
  85. [in] handle_t rpc,
  86. [in] ORPCTHIS *orpcthis,
  87. [out] ORPCTHAT *orpcthat,
  88. [in,unique] MInterfacePointer *pActProperties,
  89. [out] MInterfacePointer **ppActProperties
  90. );
  91. HRESULT RemoteCreateInstance(
  92. [in] handle_t rpc,
  93. [in] ORPCTHIS *orpcthis,
  94. [out] ORPCTHAT *orpcthat,
  95. [in,unique] MInterfacePointer *pUnkOuter,
  96. [in,unique] MInterfacePointer *pActProperties,
  97. [out] MInterfacePointer **ppActProperties
  98. );
  99. }