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.

143 lines
3.9 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1993.
  5. //
  6. // File: scm.idl
  7. //
  8. // Contents: Definition of private RPC interface between compobj.dll
  9. // and the service controller.
  10. //
  11. // History: 21-Apr-93 Ricksa Created
  12. // 27-Dec-93 ErikGav TCHAR->WCHAR
  13. //
  14. //--------------------------------------------------------------------------
  15. [ uuid(412f241e-c12a-11ce-abff-0020af6e7a17),
  16. version(0.2),
  17. pointer_default(unique)
  18. ]
  19. interface ISCM
  20. {
  21. import "iface.idl";
  22. import "obase.idl";
  23. typedef [context_handle] void *PHPROCESS;
  24. typedef struct _RegOutput
  25. {
  26. DWORD dwSize;
  27. [size_is(dwSize)]
  28. DWORD RegKeys[];
  29. } RegOutput;
  30. typedef struct _RegInputEntry
  31. {
  32. CLSID clsid;
  33. OXID oxid;
  34. IPID ipid;
  35. DWORD dwFlags;
  36. } RegInputEntry;
  37. typedef struct _RegInput
  38. {
  39. DWORD dwSize;
  40. [size_is(dwSize)]
  41. RegInputEntry rginent[];
  42. } RegInput;
  43. typedef struct _RevokeEntry
  44. {
  45. CLSID clsid;
  46. DWORD dwReg;
  47. } RevokeEntry;
  48. typedef struct _RevokeClasses
  49. {
  50. DWORD dwSize;
  51. [size_is(dwSize)]
  52. RevokeEntry revent[];
  53. } RevokeClasses;
  54. //
  55. // Server to SCM methods.
  56. //
  57. HRESULT ServerRegisterClsid(
  58. [in] handle_t hRpc,
  59. [in] PHPROCESS phProcess,
  60. [in] RegInput * pregin,
  61. [out] RegOutput ** ppregout,
  62. [out] error_status_t * prpcstat);
  63. void ServerRevokeClsid(
  64. [in] handle_t hRpc,
  65. [in] PHPROCESS phProcess,
  66. [in] RevokeClasses * prevcls,
  67. [out] error_status_t * prpcstat);
  68. //
  69. // Client/Server to SCM methods.
  70. //
  71. void GetThreadID(
  72. [in] handle_t hRpc,
  73. [out] DWORD * pThreadID,
  74. [out] error_status_t *prpcstat);
  75. void UpdateActivationSettings(
  76. [in] handle_t hRpc,
  77. [out] error_status_t *prpcstat);
  78. // Register Drag/Drop
  79. HRESULT RegisterWindowPropInterface(
  80. [in] handle_t hRpc,
  81. [in] DWORD_PTR hWnd,
  82. [in] STDOBJREF *pStd,
  83. [in] OXID_INFO *pOxidInfo,
  84. [out] DWORD_PTR *pdwCookie,
  85. [out] error_status_t *prpcstat);
  86. HRESULT GetWindowPropInterface(
  87. [in] handle_t hRpc,
  88. [in] DWORD_PTR hWnd,
  89. [in] DWORD_PTR dwCookie,
  90. [in] BOOL fRevoke,
  91. [out] STDOBJREF *pStd,
  92. [out] OXID_INFO *pOxidInfo,
  93. [out] error_status_t *prpcstat);
  94. // To support the IP cache control functionality
  95. HRESULT EnableDisableDynamicIPTracking(
  96. [in] handle_t hRpc,
  97. [in] PHPROCESS phProcess,
  98. [in] BOOL fEnable,
  99. [out] error_status_t *prpcstat);
  100. HRESULT GetCurrentAddrExclusionList(
  101. [in] handle_t hRpc,
  102. [in] PHPROCESS phProcess,
  103. [out] DWORD* pdwNumStrings,
  104. [out, size_is(,*pdwNumStrings)]LPWSTR** pppszStrings,
  105. [out] error_status_t *prpcstat);
  106. HRESULT SetAddrExclusionList(
  107. [in] handle_t hRpc,
  108. [in] PHPROCESS phProcess,
  109. [in] DWORD dwNumStrings,
  110. [in, unique, size_is(dwNumStrings)]LPWSTR* ppszStrings,
  111. [out] error_status_t *prpcstat);
  112. // To support CoInvalidateRemoteMachineBindings
  113. HRESULT FlushSCMBindings(
  114. [in] handle_t hRpc,
  115. [in] PHPROCESS phProcess,
  116. [in,string] WCHAR* pszMachineName,
  117. [out] error_status_t *prpcstat);
  118. // To help support the new COM+ process recycling feature
  119. HRESULT RetireServer(
  120. [in] handle_t hRpc,
  121. [in] PHPROCESS phProcess,
  122. [in] GUID* pguidProcessIdentifier,
  123. [out] error_status_t *prpcstat);
  124. }