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.

145 lines
4.4 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1995.
  5. //
  6. // File:
  7. // dscm.idl
  8. //
  9. // Contents:
  10. // Definition of private COM interface between ole32.dll
  11. // and the SCM.
  12. //
  13. // History:
  14. //
  15. //--------------------------------------------------------------------------
  16. [
  17. uuid(00000136-0000-0000-C000-000000000046),
  18. version(0.0),
  19. pointer_default(unique)
  20. #ifndef RAW
  21. ,object
  22. #endif
  23. ]
  24. interface IDSCM
  25. #ifndef RAW
  26. : IUnknown
  27. #endif
  28. {
  29. #ifndef DO_NO_IMPORTS
  30. import "iface.idl";
  31. import "wtypes.idl";
  32. import "objidl.idl";
  33. import "obase.idl";
  34. #endif
  35. #include "comhndl.h"
  36. COM_DEFINES(IDSCM)
  37. //
  38. // Clsid - CLSID to activate
  39. // pServerInfo - Location/Security info specified by client
  40. // pwszWinstaDesktop- Client's winsta\desktop
  41. // ClsContext - Class context requested
  42. // ProcessSignature - Client's process reference for rpcss
  43. // pEnvBlock - The optional client environment block.
  44. // EnvBlockSize - Chars (including 2 trailing nulls) in the env block.
  45. //
  46. typedef struct _ACTIVATION_INFO
  47. {
  48. GUID Clsid;
  49. [string] WCHAR *pwszServerName;
  50. COAUTHINFO * pAuthInfo;
  51. [string] WCHAR *pwszWinstaDesktop;
  52. DWORD ClsContext;
  53. ULONG64 ProcessSignature;
  54. #ifndef _CHICAGO_
  55. [size_is(EnvBlockLength)]
  56. WCHAR * pEnvBlock;
  57. DWORD EnvBlockLength;
  58. #endif //_CHICAGO_
  59. ULONG RestrictedSidCount;
  60. [size_is(RestrictedSidCount)]
  61. SID_AND_ATTRIBUTES * pRestrictedSids;
  62. } ACTIVATION_INFO;
  63. HRESULT SCMGetClassObject(
  64. COM_HANDLE
  65. [in] ACTIVATION_INFO * pActivationInfo,
  66. [in] IID * pIID,
  67. //
  68. // OR piggyback of ClientResolveOXID.
  69. //
  70. [in] long Apartment,
  71. [out] OXID * pOxidServer,
  72. [out] DUALSTRINGARRAY ** ppServerORBindings,
  73. [out] OXID_INFO * pOxidInfo,
  74. [out] MID * pLocalMidOfRemote,
  75. [out] DWORD * pDllServerModel,
  76. [out,string] WCHAR ** ppwszDllServer,
  77. // ClassFactory interface data.
  78. [out] MInterfacePointer ** ppIDClassFactory
  79. );
  80. HRESULT SCMCreateInstance(
  81. COM_HANDLE
  82. [in] ACTIVATION_INFO * pActivationInfo,
  83. [in] DWORD Interfaces,
  84. [in,size_is(Interfaces)] IID * pIIDs,
  85. //
  86. // OR piggyback of ClientResolveOXID.
  87. //
  88. [in] long Apartment,
  89. [out] OXID * pOxidServer,
  90. [out] DUALSTRINGARRAY ** ppServerORBindings,
  91. [out] OXID_INFO * pOxidInfo,
  92. [out] MID * pLocalMidOfRemote,
  93. [out] DWORD * pDllServerModel,
  94. [out,string] WCHAR ** ppwszDllServer,
  95. // Interface data and results.
  96. [out,size_is(Interfaces)] MInterfacePointer ** ppInterfaceData,
  97. [out,size_is(Interfaces)] HRESULT * pResults
  98. );
  99. HRESULT SCMGetPersistentInstance(
  100. COM_HANDLE
  101. [in] ACTIVATION_INFO * pActivationInfo,
  102. [in, string, unique] WCHAR * pwszPath,
  103. [in, unique] MInterfacePointer *pIFDStorage,
  104. [in] DWORD FileMode,
  105. #ifdef DFSACTIVATION
  106. [in] BOOL FileWasOpened,
  107. #endif
  108. [in] DWORD Interfaces,
  109. [in,size_is(Interfaces)] IID * pIIDs,
  110. //
  111. // OR piggyback of ClientResolveOXID.
  112. //
  113. [in] long Apartment,
  114. [out] OXID * pOxidServer,
  115. [out] DUALSTRINGARRAY ** ppServerORBindings,
  116. [out] OXID_INFO * pOxidInfo,
  117. [out] MID * pLocalMidOfRemote,
  118. [out] BOOL * pFoundInROT,
  119. [out] DWORD * pDllServerModel,
  120. [out,string] WCHAR ** ppwszDllServer,
  121. // Interface data and results.
  122. [out,size_is(Interfaces)] MInterfacePointer ** ppInterfaceData,
  123. [out,size_is(Interfaces)] HRESULT * pResults
  124. );
  125. }